Простое создание «модуля» новостей на CMS Drupal

Обычная потребность любого корпоративного сайта — иметь колонку новостей, а часто и не одну — к новостям компании могут прибавиться новости в отрасли, новости поставщиков, партнеров и так далее. Drupal позволяет легко реализовать вышеописанное и здесь мы рассмотрим один из самых простейших и легких в смысле потребляемых на сервере ресурсов способ, без подключения лишних модулей.

Drupal в своей базовой конфигурации изначально настроен на вывод анонсов добавляемых материалов на главной странице, однако это вряд ли кого-нибудь устроит на корпоративном сайте: на главной все же принято размещать другие вещи. Поэтому наши новости будут выводиться на отдельной странице, а их анонс — первые 3-5 заголовков с датами могут быть размещены уже где угодно, или в одной из боковых колонок, или под основным материалом на главной.

Первым шагом мы создадим новый тип материала с машинным названием «news». По структуре он ничем не будет отличаться от обычной страницы.

Вторым шагом сделаем копию файла шаблона нода node.tpl.php внутри каталога с используемой на сайте темой и переименуем его node-news.tpl.php (этот синтаксис верен для 6-ой версии, в 7-ой версии Drupal название файла должно будет содержать два тире перед news: node—news.tpl.php).

Внутри файла по большому счету достаточно будет внести всего два изменения: отключить вывод переменной $submitted (или ограничить ее вывод только для администратора) и добавить новую строку для вывода отформатированной даты, извлекаемой из поля, хранящего метку времени создания материала, например, таким образом:

<div classnews-date«><?php print date(«d.m.Y«, $node->created) ?></div>

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

Дальше нам не обойтись без модуля Views (часто переводится как «Представления»), который необходим здесь для создания блока с анонсами новостей. Вообще говоря, без этого модуля обойдется лишь редкий сайт на Drupal, ибо практически всегда требуется организовать вывод на страницах сайта тех или иных материалов, отобранных по разным критериям и различным способом представленных.

С помощью этого модуля мы создаем представление, извлекающее данные только типа news с установленным атрибутом «Опубликовано» и отсортированные по дате в порядке убывания. Внутри представления можно создавать так называемое «Отображения» в виде страницы, блока, ленты и т.д. Используя установленные критерии выборки по-умолчанию, создаем отображение типа Блок для вывода анонсов новостей:

Далее мы могли бы внутри того же представления создать новое «отображение» типа Страница, определить его URL и создать соответствующий пункт в меню, однако сделаем немного проще: используем для постраничного вывода новостей стандартный механизм таксономии. В этом случае нам будет проще в случае необходимости править шаблон, содержащий HTML-кода новости, расположенный в файле node.tpl.php.

Для этого создадим новый словарь Новости, допускающий добавление в него только новостей и требующий обязательного выбора таксономии (категории), добавим в него таксономии Новости и News (если нам нужны новости на английском языке):

После адрес таксономии и будет адресом для вывода новостей, можно будет присвоить ему псевдоним news:

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

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

 

 

Понравилась статья? Поделитесь ссылкой в соцсетях:
blog comments powered by Disqus