Логотип

Документация по макросам и шаблонам UMI.CMS

Постановка задач

Предположим, у нас есть всего 3 ленты новостей: "Политические новости", "Новости экономики" и лента "Акции".

В административной части модуля "Новости" эта структура может быть отображена следующим образом:

Рисунок 8.1. Организация лент новостей

Организация лент новостей

В качестве примера мы выведем список последних новостей на главной странице сайта из одной, заранее выбранной ленты, с указанием даты, заголовка и анонса для каждой новости. Пусть это будет лента "Новости экономики".

На внутренних страницах мы отобразим другую ленту, оформленную по правилам, отличающимся от оформления главной страницы сайта. Пусть это будет лента "Акции".

Нам необходимо также оформить страницы архива всех новостей ленты и страницу полного текста новости.

Кроме того, мы предоставим посетителям сайта возможность оставлять свои мнения, осуществить подписку на rss-трансляцию новостей или подписку по e-mail. Для реализации этого мы воспользуемся макросами других модулей — модуля "Комментарии", "Шаблоны данных" и "Рассылки" соответственно.

Лента на главной странице сайта

Предположим, что блок с новостями на главной будет оформлен следующим образом:

Рисунок 8.2. Новости на главной (tpl-шаблонизатор)

Новости на главной (tpl-шаблонизатор)

Таким образом, мы выводим для отдельной новости:

  • дату публикации

  • название ленты

  • анонс с картинкой

  • ссылку на комментарии к новости с указанным количеством имеющихся комментариев

  • ссылку на добавление комментария

И для всей ленты новостей:

  • ссылку на архив новостей

  • ссылку на подписку по rss

  • поле для ввода электронного адреса для подписки по e-mail

Для подписки по e-mail нужно предусмотреть два варианта: а) подписывается незарегистрированный пользователь, тогда выводим форму ввода адреса e-mail б) подписывается зарегистрированный пользователь, тогда выводим список существующих подписок с возможностью выбрать ленту.

На главной странице будем выводить только 3 последних новости из ленты.

Лента на внутренних страницах сайта

Предположим, что блок с новостями на внутренних страницах будет оформлен следующим образом:

Рисунок 8.3. Новости на внутренних страницах (tpl-шаблонизатор)

Новости на внутренних страницах (tpl-шаблонизатор)

То есть для новостей из ленты "Акции" на внутренних страницах выведем только название ленты, заголовок и анонс.

Из этой ленты будем отображать только 1 последнюю новость.

Страница архива ленты новостей

Оформление списка новостей будет аналогично оформлению на главной странице сайта. Количество отображаемых новостей на странице будет задаваться из настроек модуля "Новости" (см. соответствующую главу из пользовательской документации).

Страница полного текста новости

Оформление полного текста новости реализуем следующим образом:

Рисунок 8.4. Полный текст новости (tpl-шаблонизатор)

Полный текст новости (tpl-шаблонизатор)

Таким образом, мы выводим на странице:

  • заголовок новости

  • полный текст новости

  • картинку для публикации

  • блок с похожими новостями

  • блок для добавления комментария