Поймал глюк в друпале с node.tpl.php

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

Аватар пользователя Ant0 Ant0 8 ноября 2009 в 12:26

Все привет!
Напоролся на одну непонятность при разработке своей темы с нуля:
Если нет файла node.tpl.php то файл node-ТипМатериала.tpl.php не цепляется! Т.е. не работает.

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

Кто что думает по этому поводу?...

PS версия друпала 6.14 - если это важно.

Комментарии

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 8 ноября 2009 в 12:35

Да, я тоже столкнулся. Если рассуждать логически, то это довольно прозрачно: помещая файл node.tpl.php вы явно указываете движку, что с шаблонами материалов должна работать тема. Откуда друпал знает, какие вообще типы материалов придёт вам в голову создать?

Аватар пользователя Ant0 Ant0 9 ноября 2009 в 8:51

хм.. ну друпал УЖЕ знает, какие типы материалов у него УЖЕ ЕСТЬ!
ИМХО: было бы логичным каждый раз, при выводе материала проверять есть ли файл темизации этого материала.
А если учесть, что вся информация кешируется (иначе бы не пришлось постоянно кеш чистить), то и проверять каждый раз не нужно....

Аватар пользователя Ромка Ромка 8 ноября 2009 в 13:11

Скорее всего вы что-то не так делаете, например, шаблон неправильно назвали (для контента типа some-name шаблон должен называться node-some_name.tpl.php), также стоит почистить theme cache (на странице со списком тем нажать кнопку "Save configuration").

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 8 ноября 2009 в 13:15

Ромка wrote:
Скорее всего вы что-то не так делаете, например, шаблон неправильно назвали (для контента типа some-name шаблон должен называться node-some_name.tpl.php), также стоит почистить theme cache (на странице со списком тем нажать кнопку "Save configuration").

Нет, оно действительно не работает, если файл node.tpl.php не лежит в папке с темой.

Аватар пользователя Ant0 Ant0 8 ноября 2009 в 22:18

все правильно делал и перепроверял туеву хучу раз: и переименовывал и кеш чистил и тд и тп.
а засек так: положил в garland свой файлик - друпал тут же подхвотил его!
из гарланда положил node.tpl.php - и тоже все заработало как надо.

Аватар пользователя Ant0 Ant0 9 ноября 2009 в 8:48

ну без него как-то же работает!
должны быть (согласно документации):
page.tpl.php и Тема.info - остальное не обязательно....

Аватар пользователя adubovskoy adubovskoy 8 ноября 2009 в 14:18

да, есть такое.
аналогично и с block.tpl.php и т.п. если иносказательно, то "родитель должен быть". На самом деле это не проблема и не мешает - просто помнить что когда начинаете темизовать ноды или блоки или еще что - не забывать указывать эти tpl файлы.