Подтема: темизация одного типа материала

Главные вкладки

Аватар пользователя megafanat megafanat 8 июля 2011 в 19:08

Создал подтему темы garland.
Скопировал в нее файлы:
logo.png
mysubtheme.css
screenshot.png

Создал файл mysubtheme.info
Подтема появилась в списке. Включил ее.

Дальше я хочу кастомизировать внешний вид нодов типа model.
Копирую файл node.tpl.php из базовой темы. Переименовываю его в node-model.tpl.php. Вношу в него необходимые изменения.
Жму кнопку "Сохранить настройки" на странице admin/build/themes. Обновляю страницу. И ничего не происходит. Друпал не видит моего файла node-model.tpl.php.

Теперь внимание, фокус: копирую в мою подтему оригинальный файл node.tpl.php. Не вношу в него никаких изменений! Жму кнопку "Сохранить настройки", обновляю страницу. Вуаля! Друпал видит мой файл node-model.tpl.php с внесенными в него изменениями.

Получается, чтобы в подтеме можно было кастомизировать вид одного типа материала, в этой же подтеме должен быть файл node.tpl.php для всех типов материалов, даже если он ничем не отличается от такого же в базовой теме.

Это ошибка, или так и должно быть? Если это так и должно быть, то почему я не встречал это замечание в руководствах по созданию подтем?

Комментарии

Аватар пользователя Lotar Lotar 9 июля 2011 в 1:06

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

Аватар пользователя chelwolf chelwolf 1 августа 2015 в 16:06

direqtor wrote:
Это не баг - это фича. :)

Смех-смехом, но это правда баг (https://www.drupal.org/node/279573#comment-2736592), о котором написано на официальном сайте в разделе о создании суб-тем (https://www.drupal.org/node/225125). В 7 версии баг исправлен.

Аватар пользователя chelwolf chelwolf 1 августа 2015 в 13:20

Проще всё тупо скопировать, в Drupal 6 это до ума не доведено, в Drupal 7 с этим попроще, но тоже не идеал. Фишка в том, что Drupal 6 не будет перехватывать шаблоны нод до тех пор, пока не увидит основной шаблон для них node.tpl.php, это я точно встречал в описаниях и видеокастах. Почему он его не берёт из базовой темы - вопрос хороший и логичный, он ещё почему-то не переносит настройки из info-файла.