Хотелось бы видеть несколько последних публикаций на главной странице. Почему не сделано, например вот так:
<h1><?php z_h1(); ?></h1>
<?php z_content1(); ?>
<h1><?php z_h2(); ?></h1>
<?php z_content2(); ?>
<h1><?php z_h3(); ?></h1>
<?php z_content3(); ?>
Возможно есть иной способ? Подскажите?
Это бы позволило отображать три последние (или десять или сколько угодно) публикации на главной и таким образом можно было бы создать блог.
Кроме того, хотелось бы иметь ссылки Предыдущие публикации и Следующие публикации. Это возможно?
0
Несколько публикаций на главной
Автор
activizator
, 27.12.2008, 15:39
Сообщений в теме: 3
#1
Отправлено 27.12.2008, 15:39
#2
Отправлено 15.02.2009, 15:06
Я смотрю, в плане публикаций новостей или анонсов на гл.странице в автоматическом режиме, ничего не реализовано.
#3
Отправлено 16.02.2009, 05:23
Специального функционала для этого пока нет, но можно поступить следующим образом.
Создать отдельный шаблон для главной страницы, где вместо вывода содержимого будет примерно следующий PHP-код:
Этот код является отправной точкой для решения Вашей задачи,
т.к. не оформлен вывод информации о странице и описание берется из мета-тэгов страницы (getDescription).
В нем уже используется стандартное кэширование Zebrum Lite.
Создать отдельный шаблон для главной страницы, где вместо вывода содержимого будет примерно следующий PHP-код:
<?php $html = zengine::zcache()->get('mplist'); if (false === $html) { // Получаем список всех страниц в структуре сайта $items = array(); foreach (new RecursiveIteratorIterator(zengine::zsource()->getMenu()) as $item) { $items[] = $item; } // Сортируем страницы в порядке убывания по дате публикации $sorter = new zpagesorter('publish desc'); $sorter->sort($items); // Оставляем только 10 страниц начиная со второй страницы (первая всегда главная, т.к. у неё текущее время) $items = array_slice($items, 1, 10); // Выводим информацию о страницах $html = ''; foreach ($items as $item) { // Создаем объект страницы, т.к. $item - это пункт меню $page = zpage::load($item->uri); // Выводим информацию, которая $html .= $item->link . '<br />'; $html .= $page->getTitle() . '<br />'; $html .= $page->getDescription() . '<br /><br />'; } zengine::zcache()->put('mplist', $html); } echo $html; ?>
Этот код является отправной точкой для решения Вашей задачи,
т.к. не оформлен вывод информации о странице и описание берется из мета-тэгов страницы (getDescription).
В нем уже используется стандартное кэширование Zebrum Lite.
#4
Отправлено 09.05.2009, 17:35
А не подскажите как рандомную запись вывести?
UPD Вроде разобрался.
убить код $items = array_slice($items, 1, 10);
и добавить
$max_items=count($items);
$rand_item=mt_rand(1, $max_items);
и заменить $page = zpage::load($item->uri);
на $page = zpage::load($items[$rand_item]->uri);
Както так
UPD Вроде разобрался.
убить код $items = array_slice($items, 1, 10);
и добавить
$max_items=count($items);
$rand_item=mt_rand(1, $max_items);
и заменить $page = zpage::load($item->uri);
на $page = zpage::load($items[$rand_item]->uri);
Както так
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 скрытых пользователей