Как можно организовать вывод тэгов только одного из нескольких словарей? print $terms выводит все тэги скопом, а хочется получить возможность управляемо выводить (например в тизере) тэги только одного из словарей. Или вывести их в разных местах на уровне тпл. Это реально?
Комментарии
Я функцию под себя писал в template.php. Потом ее использовал в шаблонах.
//Указываем ID словаря из которого будем выводить теги
//Запрос для вывода тегов
if($slovar_name):
$query = "SELECT v.vid, v.* FROM {vocabulary} v WHERE LOWER(v.name) = LOWER('$slovar_name')";
//получаем результат запроса
$sql = db_rewrite_sql($query, 'v', 'vid');
$result = db_query($sql);
$slovar_vid = db_fetch_object($result)->vid;
else: return "";
endif;
//Только таксономия не имеющая детей
$query = "SELECT t.*
FROM {term_data} t
LEFT JOIN {term_hierarchy} h ON t.tid = h.parent
WHERE t.vid = $slovar_vid and isnull(h.parent)
ORDER BY weight, name";
//получаем результат запроса
$sql = db_rewrite_sql($query);
$result = db_query($sql);
//получаем инфу о словаре
$vocabulary = taxonomy_vocabulary_load($slovar_vid);
//формируем теги для вывода
$out = '<div class="subs_title">'. $tag_title1 . $vocabulary->description . ':' . $tag_title2 . '</div><div class="subs_voc">';
while ($no = db_fetch_object($result)) {
if($no->description):
$opt['attributes']['title'] = $no->description;
else:
$opt['attributes']['title'] = $no->name;
endif;
if($fld='description'){
if($no->description){
$out .= $tip ? $dop . $no->description . t(' !term', array('!term' => l('>>', taxonomy_term_path($no), $opt))) . '</br>' : t(' !term', array('!term' => l($dop . $no->description, taxonomy_term_path($no), $opt)));}
else {
$out .= $tip ? $dop . $no->name . t(' !term', array('!term' => l('>>', taxonomy_term_path($no), $opt))) . '</br>' : t(' !term', array('!term' => l($dop . $no->name, taxonomy_term_path($no), $opt)));
}
}
else {
$out .= $tip ? $dop . $no->name . t(' !term', array('!term' => l('>>', taxonomy_term_path($no), $opt))) . '</br>' : t(' !term', array('!term' => l($dop . $no->name, taxonomy_term_path($no), $opt)));
}
}
$out .= '</div>';
return $out;
}
$slovar_name - Название словаря (единственный обязательный параметр)
$tag_title1 - Дописка при выводе перед термином
$tag_title2 - Дописка при выводе после термина
$dop - Тоже дописка, разделитель между терминами
$fld - "name" или "description" что будем печатать
$tip - False или True, меняет формат вывода.
О! Граца... грца... Пасиб, буду пробовать