[РЕШЕНО] Как для нод, имеющих терминиы таксономии, сделать шаблон

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

Аватар пользователя Erly Erly 28 августа 2010 в 21:19

Господа!

Возникла надобность, для нод с конкретным термином таксономии сделать свой шаблон вроде node-[term_N].tpl.php. Так что бы для ноды данного термина и тизер и основной текст выводились не так как выводятся для остальных нод.

Убил на это весь день. Sad
Вот это:
http://drupal.org/node/135130
http://ru-ru.facebook.com/note.php?note_id=136666859690511
http://www.drupal.ru/node/29482
читал...

Так что же это получается? Что нет решения данной проблемы?

Т.е. если мы хотим делать отдельный шаблон, то надо создавать новый тип материала? И к нему подвязывать шаблон?

Комментарии

Аватар пользователя Ch Ch 28 августа 2010 в 21:49

в node.tpl.php проверять $node->taxonomy и использовать соответствующий html код для нод с определенным термином

Аватар пользователя Erly Erly 29 августа 2010 в 0:14

Спасибо большое!!!!!!!! Помогло.
Сделал вот так:

<?php 

if ( isset($node->taxonomy[89])  ) {
      include(
'node-taxonomy.tpl.php') ;
      return ;
   }
 
?>

где taxonomy[89] нужный мне термин

Аватар пользователя ooa3 ooa3 29 августа 2010 в 0:33

Можно подключить отдельный файл для подключения node-taxonomy.tpl.php через функцію phptemplate_preprocess_page() из файла template.php так намного верней будет.

Аватар пользователя Erly Erly 29 августа 2010 в 11:05

"ooa3" wrote:
Можно подключить отдельный файл для подключения node-taxonomy.tpl.php через функцію phptemplate_preprocess_page() из файла template.php так намного верней будет.

Я сделал вот так:

<?php
function phptemplate_preprocess_page(&$vars) {
  if (isset(
$vars['node']) && ( isset($vars['node']->taxonomy[89])) ) {
       
$vars['template_files'][] = 'node-taxonomy-89';
     }

}

?>

но тогда файл node-taxonomy-89.tpl.php ципляется не как шаблон ноды, а как шаблон всей страницы.
В какой переменной мне надо присвоить node-taxonomy-89, чтобы он циплялся только как шаблон ноды?

Аватар пользователя Erly Erly 7 сентября 2010 в 23:13

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Очевидно же — hook_preprocess_node. Остальное не меняйте.

Спасибо огромное - фунфциклирует Smile !!!!!!!!!!!!!!!