В этом уроке мы разберем, как создать новый раздел сайта на примере раздела новостей.

Стоит сразу заметить, что в ZCMF версиях, начиная с 2011_12_25 раздел новостей уже присутствует и все, что требуется - это только заменить соответствующие шаблоны(все шаблоны находятся в папке application/modules/default/views/scripts ).

Зайдем в раздел админки "Сайт->Ленты" и добавим новую ленту, предварительно авторизовавшись под пользователем "root".

Заполним форму добавления следующим образом:

  • Название: Новости
  • Идентификатор ленты: news
  • Название элемента ленты: Новость*
  • Дата: Дата*
  • Краткое описание: Краткое описание*
  • Полное описание: Текст новости*
  • Постраничность: 10
  • Сортировка по полю: Дата
  • Направление сортировки: Обратное
  • Шаблон списка: news/list
  • Шаблон элемента: news/card

Остальные поля оставим пустыми и нажмем "Сохранить".

Стоит отметить один момент: Добавление звездочки к названию поля делает это поле обязательным.

Теперь в списке лент мы увидим ленту Новости. Справа от названия ленты есть ссылка элементы. Нажмем на нее и добавим несколько новостей:

раздел новостей в админке

Теперь нам надо добавить шаблоны для вывода списка новостей и для вывода одной новости.

Для этого создадим два файла:

application/modules/default/views/scripts/bands/news/list.phtml

Copy Source | Copy HTML
  1.             <div class="news">
  2.  
  3. <?php foreach ($this->items as $item):?>
  4.  
  5.                 <div class="item">
  6.  
  7.                     <h3><?php echo $item->title?></h3>
  8.                     <span class="date"><?php echo date('d-m-Y',strtotime($item->date))?></span>
  9.                     <?php echo $item->description?>
  10.                     <a href="<?php echo $item->card_url?>">Читать далее...</a>
  11.                 </div>
  12.  
  13. <?php endforeach;?>
  14.  
  15.             </div>
  16.  
  17. <?php echo $this->paginationControl($this->items,'Sliding','paginator.phtml')?>

application/modules/default/views/scripts/bands/news/card.phtml

Copy Source | Copy HTML
  1. <div class="news">
  2.  
  3.     <div class="item">
  4.         <h2><?php echo $this->item->title?></h2>
  5.         <span class="date"><?php echo date('d-m-Y',strtotime($this->item->date))?></span>
  6.         <?php echo $this->item->text?>
  7.         <a href="<?php echo $this->list_url?>">Вернуться в список.</a>
  8.     </div>
  9.  
  10. </div>

На этом наш раздел новостей готов. Правда просто?

Но нам еще надо добавить раздел новостей в меню сайта. Перейдем в раздел админки "Меню" и сделаем это:

Добавление пункта меню "Новости"

Остались последние штрихи. Для того, чтобы на нашем сайте новости выглядели более привлекательно, добавим в файл css/style.css следующий код:

Copy Source | Copy HTML
  1. .news .item {
  2.     padding: 0 0 40px 0;
  3. }
  4. .news .item .date {
  5.     color: #004F8B;
  6.     font-size: .8em;
  7. }
  8.  
  9. .news .item h3 {
  10. font: normal 1.5em Georgia, "Times New Roman", Times, serif;
  11. color: #004F8B;
  12. letter-spacing: 1px;
  13. background: url('../img/h2-bg.gif') no-repeat 0 53%;
  14. padding-left: 25px;
  15. margin-bottom: 7px;
  16. }
  17.  
  18. .paginate {
  19.     text-align: center;
  20. }
  21. .paginate a {
  22.     padding: 2px 4px;
  23.     border: 1px solid #004F8B;
  24.     background: #ACF;
  25.     text-decoration: none;
  26. }
  27. .paginate a.active {
  28.     background: #69B;
  29. }

И на последок отмечу один момент. Наши новости уже отображаются постранично. Для того, чтобы появился постраничный навигатор достаточно, добавить новостей больше, чем было указано в параметре "Постраничность" при создании ленты новостей в админке.