Как узнать id родительского термина таксономии со страницы вывода нод термина этой таксономии?
Раздел 1
Категория 1
Категория 2
Раздел 2
Категория 3
Допустим, при просмотре материалов, принадлежащих к "категории" - нужно узнать к какому "разделу" оно принадлежит...
Нужно в зависимости от этого вывод шаблона подправить...
Комментарии
Тему переименуйте.
missclick был -)
Так понимаю, таксономию по умолчанию можно узнать только в node.tpl?
Что вы увидеть хотите - tid термина, vid словаря или еще какую штуку?
Короче, в нужном месте создаете переменную $node=node_load(arg(1)); затем массив таксономии $node->taxonomy и из него извлекаете, что вам в голову придет.
node_load() слишком жирно, уж лучше запросом термины дёргать
+ [ru-api=taxonomy_get_parents]сие[/ru-api] чудо для получения родительского термина
Запросов делать не нужно. Если мы находимся на стрнице термина, то объект термина уже загружен. Получить его можно так:
// --> $term->tid
}
UPDATE: туплю. пропустил про родительский термин. тогда как советовали выше - taxonomy_get_parents или свой запрос.
Спасибо!
В общем, получилось следующее, может, правда, косое, решение:
<?php
if(arg(0) == 'image'){
$parent_tid = db_result(db_query("SELECT parent FROM {term_hierarchy} WHERE tid = %d", arg(2)));
if($parent_tid == 6): ?>
Нужный HTML-код
<?php endif;} ?>
у меня адреса страниц стоят как image/tid/номер - этогалерея картинок. Поэтому arg(0)=image - а номер таксономии - в arg(2).
А вот $term->tid почему то не вывел значение...%)
см. [ru-api=menu_get_object] -- для $position значение по умолчанию - 1, а у ВАс - 2, т.е. надо menu_get_object('term',2)
http://api.drupal.org/api/function/template_preprocess_node/6
никто не мешает запихать это в какую-либо переменную и потом как же легко достать, например, запишете в variables['tax_term'] и будет у вас $tax_term в шаблоне. препроцессор можно в модуль обернуть, ну или куда-нить запихать.