Перейти к содержимому


Последние статьи на главной


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 prestige

prestige

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 27.09.2009, 22:07

Есть ли какойнибуть код, чтобы на главной странице выводились последние 5 статей целиком или хотябы ссылочки на них, в зависимости от даты публикации естественно.

#2 prestige

prestige

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 28.09.2009, 00:50

Временно использую схему с добавлением шаблона главной, если есть другие способы прошу напишите.
Вопрос как в данном коде сделать проверку на кол-во символов в статье, и чтобы выводилось не более 500 символов к примеру:
вот код:
<?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 .= '<a href="' . $item->link . '">';
		   $html .= $page->getTitle() . '</a><br />';
		   $html .= $page->getBody() . '<br />';
   }
   zengine::zcache()->put('mplist', $html);
}
echo $html;
?>

Это слегка измененный код, Главного администратора: zebrum

#3 zebrum

zebrum

    Администратор

  • Главные администраторы
  • PipPipPip
  • 636 сообщений

Отправлено 28.09.2009, 10:57

Можно заменить:
$html .= $page->getBody() . '<br />';

на вот это:
// Получаем текст без HTML-оформления
$body = $page->getProperty('body');
// Считаем, что текст задан в кодировке UTF-8
if (mb_strlen($body, 'utf-8') > 500) {
	$body = mb_substr($body, 0, 500, 'utf-8');
}
$html .= '<p>' . $body . '</p>';

В приведенном выше коде предполагается использование кодировки UTF-8 и текст страницы не содержит HTML-тэгов, т.к. отсекание на 500-м символе может привести к ошибкам верстки и некорректному отображению страницы.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей