Файлы темы или template.php - к чему Drupal обращается в первую очередь ?? [РЕШЕНО]

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

Аватар пользователя vestris vestris 6 января 2010 в 15:56

1. Есть файл template.php. Там определено использование шаблонов темы в зависимости от типа нод.
2. Есть page.tpl.php, где через include и в зависимости от нужных arg() подключаются *tpl.php.
3. Есть собственно файлы *.tpl.php. Из них часть подключается через переопределение в template.php, часть через назначение в page.tpl.php. Плюс page-front.tpl.php, которую друпал по умолчанию воспринимает как главную.

Подскажите пожалуйста порядок "восприятия". Если правильно понимаю, сначала идет template.php, затем page-front.tpl.php, затем page.tpl.php и node.tpl.php.

Для примера:

В page.tpl.php пишу: "если arg такой, делай то. else делай это". В данном примере "это" ограничивается не только условием if из page.tpl.php, но и установками template.php и друпала по умолчанию. Или не прав?

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 6 января 2010 в 16:01

Мне кажется, что с вашими if-else'ами теперь хрен разберёшь что и когда будет подключатся. А так, в документации была статья на тему что и когда используется и что над чем имеет приоритет.

Аватар пользователя vestris vestris 6 января 2010 в 16:08

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 6 января 2010 в 16:11

Если не было бы чётких рамок, то друпал бы работал через раз.
Я помню только порядок хуков и что page-node-123.tpl.php будет иметь преимущество над page.tpl.php при выводе ноды с номером 123

Аватар пользователя vestris vestris 6 января 2010 в 16:22

Вы, конечно, правы.
Вынужден был интуитивно искать порядок, нашел, но решил написать. Благодарю Вас за ответ!

page-node-123.tpl.php -
тут по-видимому, аналогично page-front.tpl.php. Т.е. получается сначала друпал читает template.php, потом эти вот tpl "по умолчанию", и лишь затем обращается к page.tpl.php.

Аватар пользователя adubovskoy adubovskoy 6 января 2010 в 16:50

логика простая, она же и в tpl.php файлах для views и прочем. Идет от большей детализации к меньшей. От частных случаев к общим. визуально - http://drupal.org/files/theme_tree_1.pdf - от кроны, к корням. вообще полезно будет прочесть http://drupal.org/theme-guide/6, множество таких вопросов отпадет)