
Хочу сделать выплывающий блок снизу сайта, где будут размещены несколько случайных записей с миниатюрами.
Бьюсь уже второй день. Так как в PHP я разбираюсь на уровне скопировал вставил ![]()
Уже и с page-other-pages и с плагина случайных записей пробовал выдрать. Но знаний не хватает.
Может у кого есть код для вставки случайных записей, что бы он работал на главной странице? Желательно, что бы так же можно было вставить и миниатюры.
Помогите пожалуйста.
5 3898

Можно сделать. Как вариант вызывать виджет. Ибо виджеты можно выводить не только в боковом меню, а там допилка под потребности и подцепить js и css. Это я вижу как-то так. У кого еще какие варианты?
Сергей, у меня получился такой код:
$limit = 3; $thumb_width = 300; $thumb_height = 200; $CI = & get_instance(); $CI->db->select('mp.page_id, mp.page_title, mp.page_slug, mp.page_content, mm.meta_value img'); $CI->db->from('mso_page mp'); $CI->db->join('meta mm', 'mm.meta_id_obj = mp.page_id', 'left'); $CI->db->join('page_type', 'page_type.page_type_id = mp.page_type_id'); $CI->db->where('mp.page_date_publish < ', 'NOW()', false); $CI->db->where('mp.page_status', 'publish'); $CI->db->where('page_type.page_type_name', 'blog'); $CI->db->where('mm.meta_key', 'image_for_page'); $CI->db->order_by('mp.page_id', 'random'); $CI->db->limit($limit); $query = $CI->db->get(); #pr($CI->db->last_query()); if( is_object($query) && $query->num_rows() > 0 ) { $pages = $query->result_array(); foreach ($pages as $page) { #pr($page); $img = ''; # адрес картинки записи в мета image_for_page $img_url = isset($page['img']) ? $page['img'] : ''; $img_url = $img_url == '' ? mso_get_first_image_url($page['page_content'], true, $img_url) : $img_url; # пытаемся взять первую картинку из текста $img_url = $_SERVER['SERVER_ADDR'] == '127.0.0.1' ? ( parse_url($img_url, PHP_URL_SCHEME) != '' ? getinfo('site_url').substr(parse_url($img_url, PHP_URL_PATH), 1) : $img_url ) : $img_url; # для работы на локальном сервере $img_url = getinfo('site_url').substr(parse_url($img_url, PHP_URL_PATH), 1); # генерируем thumb if( $img = thumb_generate( $img_url, # адрес $thumb_width, # ширина $thumb_height, #высота '//placehold.it/'.$thumb_width.'x'.$thumb_height.'.png', # если нет картинки - показываем заглушку 'resize' ) ) { $img = '<img src="'. $img.'" alt="'.htmlspecialchars($page['page_title']).'" title="'.htmlspecialchars($page['page_title']).'" />'; } $page_url = getinfo('siteurl').'page/'.$page['page_slug']; ?> <div class="page"> <h2><?= $page['page_title']; ?></h2> <a href="<?= $page_url; ?>" title="<?= $page['page_title']; ?>"><?= $img; ?></a> </div> <? } }Код можно использовать в нужном тебе месте. По названиям переменных должно быть понятно что и где задавать, чтобы поменять настройки. Выдаваемую вёрстку само собой нужно подправить под твою задачу. Надеюсь, что вопросов не возникнет ;) У меня всё заработало.
ЗЫ: Нужно только учитывать, что в выборку попадут записи, у которых заполнено мета-поле с адресом картинки.
Огромнейшее спасибо! Выручил, так выручил!
И без всяких виджетов. Останется только свои опции прикрутить.
Низкий поклон!
Добавлю один важный момент - если вы ставили сайт и указывали свой префикс для базы данных вместо стандартного MSO, не забудьте заменить его в записи:
$CI->db->from('mso_page mp');подскажите, пожалуйста, нубу, что конкретно надо заменить в этом коде, а также куда его надо скопировать или вставить. нужен ли для этого плагин run-php??