====== Шаг5. Финальные штрихи (сортировка, отображение новости целиком, пять свежих новостей на главной странице) ====== ===== Сортировка новостей при отображении ===== Тег шаблонизатора поддерживает установку порядка сортировки записей прямо из шаблона, например: Есть еще один способ задания сортировки - это изменить класс News: class News extends lmbActiveRecord { protected $_default_sort_params = array('date' => 'DESC'); } Атрибут класс lmbActiveRecord :: $_default_sort_params позволяет указать параметры сортировки, которые будут применяться по-умолчанию, если не указаны другие параметры. Если бы мы указали в шаблоне другие параметры сортировки, тогда значение $_default_sort_params будет игнорироваться. ===== Новости на главной странице ===== Знание способа установки сортировки позволит нам вывести последние несколько новостей на главной странице. Для этого создадим в папке template/main_page/ шаблон display.html следующего содержания:

Main page

{$date} {$title}
{$annotation} more...

all news...
Обратите внимание на новый атрибут тега **limit**. При помощи этого атрибута, а также **offset**, где это необходимо, можно указывать ограничения на размер выборки объектов из базы данных. На главной странице мы будем выводить только 3 самые свежие новости. При помощи строки more... мы вывели ссылки на страницы с подробным описание новости. Теперь осталось только добавить контроллер главной страницы src/controller/MainPageController.class.php: ===== Страница детального описания новости ===== Для создания страницы детального описания новости нам необходимо будет создать еще один шаблон template/news/detail.html:

{$title}

Date : {$date}
{$content|raw}
Обратите внимание на атрибут **first** тега , который указывает что необходимо получить не список объектов, а только один объект. В качестве контейнера данных, который будет принимать загруженный объект новости выступает тег . При помощи тега [[limb3_2007_4:ru:packages:wact:tags:fetch_tags:fetch_parameter_tag|]] мы задаем дополнительные параметры для тега , в частности, указываем идентификатор записи, который необходимо загрузить. Значение идентификатора объекта новости мы берем из глобального контейнера (при помощи модификатора # в выражении {$#request.id}) данных шаблона, в котором по-умолчанию в переменной request находится все данные, что пришли в запросе к приложению. Также надо сделать возможность детального просмотра на странице списка всех новостей, для этого подкорректируем шаблон template/news/display.html: [...] {$annotation} more... [...] ===== Что дальше? ===== * [[.step6|Шаг6. Создание RSS-feed новостной ленты]] - покажет как работать с шаблонизатором напрямую без помощи тега * [[.step7|Шаг7. Рекомендации по дальнейшему изучению]] - дает список разделов, к изучению которых можно приступать после выполнения данного руководства.