• урок
  • pantey

Разные ноды для разных типов материалов

09.07.2012

В нашей жизни всё больше появляются сайтов, которые организованы ни как блоги –посвящённые какой-то одной конкретной теме, а как порталы, которые предоставляют различный контент (информацию) по различным вопросам. Например – это может быть какой-то кулинарный портал, на котором не просто хранятся рецепты блюд, а так же может содержаться информация о калорийности каждого продукта, вывод новостей на сайте, поимённое представление всех поваров и так далее. Очевидно, что под «одну гребенку» вывода всей этой информации - сайт не подогнать. В Drupal за вывод контента, как мы знаем отвечает файл:

node.tpl.php

Который выводит весь контент на сайте именно по тому шаблону, который находится в данном файле. Далее я вам расскажу, каким образом возможно привязать различные шаблоны к различным типам содержимого.

Приступим, для начала создадим новый тип содержимого, идём вСтруктура->тип материалов->добавить тип материала

Заполняем форму и сохраняем, ничего сложно в этом думаю нет.

Далее для демонстрации необходимо создать хотя бы пару статей с новым «типом содержимого». Подробно останавливаться на этом думаю не стоит.

И как мы видим, все вновь созданные статьи по форме вывода информации ни чем не отличаются от формы вывода других типов содержимого.

Так же вверху располагается заголовок, внизу под ним состояние «опубликовано или не опубликовано», дата создания и автор. Далее, если есть вывод изображения, следом за ним контент тизера и в нижнем правом углу ссылка на полное содержимое статьи. Всё одинаково.

А теперь, давайте чуть изменим формат вывода «нового типа содержимого», например напишем в заголовке, что данная статья принадлежит к новому типу содержимого. Для этого в каталоге с темой нам необходимо скопировать файл

node.tpl.php

и переименовать его , как:

Drupal 6

node-название_типа_содержимого.tpl.php

Drupal 7

 node--название_типа_содержимого.tpl.php

В моём случае данный файл будет выглядеть, как:

node--drupalfly.tpl.php

Откроем его, и впишем, что нам необходимо, а именно надпись «Это новый тип содержимого drupalfly» и для наглядности выделим его красным цветом.

Полный список переменных для файла «node.tpl.php» - можно почитать вот здесь. Сохраняем, не забываем только сохранить его в формате UTF-8. Далее пересохраняем нашу тему и чистим кеш из админки. И смотрим результат. Если вы всё сделали правильно, то у вас должно получиться вот так:

На основе этого примера, я думаю не сложно разобраться дальше, как что-то добавить или убрать.

Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (4)

Profile picture for user Anton
Николай
04.11.2013

Привет. Я тут блин пробовал юзать так как написано в статье, чёт не получалось. Дело было в том что у вас тут неправильно указано название файла который должен быть, т.е. у вас тут показан один дефис, а надо два

node—название_типа_содержимого.tpl.php

вот так

node--название_типа_содержимого.tpl.php

Т.е. будет не так,

node—drupalfly.tpl.php

а так

node-—drupalfly.tpl.php

Спасибо) удачи)

Profile picture for user Anton
Иван
07.11.2014

Добрый вечер!
Сделал как написано у вас, но ничего не меняется...
Версия Drupal 6.
Помогите пожалуйста.

Profile picture for user pantey
pantey
07.11.2014

кэш сайта чистили?

Profile picture for user Anton
Иван
09.11.2014

Чистил, и не один раз. Но это не помогло.
Я уже просто не знаю в чем дело. А очень нужно сделать под некоторые типы материала свои шаблоны ноды.