Я работаю над сайтом Drupal 7. Я создал собственный тип контента для работ. У меня много полей, и некоторые из них связаны с макетом страницы, например с конкретной страницей bg для каждой записи. Поэтому мне нужен собственный page.tpl для этого конкретного типа контента.
Поэтому я активировал и открыл модуль Theme Developer и щелкнул область тела, чтобы получить имя кандидата для этой конкретной записи страницы типа контента. и это дает мне экран ниже, который ничего не значит для меня: / Когда я щелкаю область узла, это нормально, это дает node - work.tpl.php, но мне нужно для страницы. Я попытался "page - work.tpl.php", это не сработало.
Что мне не хватает?
В template.php добавьте:
Вы можете опустить
str_replace()
; Проверьте, какая версия работает лучше для вас.Затем создайте файл шаблона с именем файла page –- [content_type] .tpl.php. (Замените [content_type] именем машины типа контента.)
См. Http://drupal.org/node/1089656#comment-4426790 .
источник
Если вам нужен также идентификатор узла, используйте это.
источник
Ребята из Drupal не рекомендуют иметь разные шаблоны для каждого типа контента. Вот почему вы не можете найти его
page--work.tpl.php
в списке файлов-кандидатов. Они чувствуют, что только файлы шаблона узла должны отличаться. Однако, если вы хотите взломать, идти вперед.Используйте псевдоним пути, чтобы установить путь в зависимости от типа контента. А затем вставьте этот код
в
phptemplate_preprocess_page(&$vars)
функциюtemplate.php
в папке темы.Вы можете немного изменить код, чтобы сделать его более эффективным.
источник