Если записать следующий код в template.php :
function get_node_vid_term_links($node,$vid) {
$links = array();
if (array_key_exists('taxonomy', $node)) {
foreach ($node->taxonomy as $term) {
if ($term->vid == $vid) {
$t_links[] = l($term->name,taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
}
}
}
$links = theme('links', $t_links);
return $links;
}
то следующий код в node.tpl.php -
<?php print get_node_vid_term_links($node,6) ?>
выведет внутри ноды список категорий из словаря с id=6
..
всё это работает в друпал 4.7 а вот в 5-й версии не работает!!
подскажите,что изменить в данном коде, чтобы такая функция заработала в друпале 5?
Комментарии
Посмотри здесь - http://drupal.org/node/64292
пока ничего не понятно
блин ну ведь очень нужная вещь.. вывод терминов одного конкретного словаря.. помогите, кто пхп знает..
ыыыы
итак.. решение найдено:
<?php
function get_node_vid_term_links($node,$vid) {
$links = array();
if (array_key_exists('taxonomy', $node)) {
foreach ($node->taxonomy as $term) {
if ($term->vid == $vid) {
$t_links['taxonomy_term_'. $term->tid] = array(
'title' => $term->name,
'href' => taxonomy_term_path($term),
'attributes' => array('rel' => 'tag' ,'title' => strip_tags($term->description)));
}
}
}
$links = theme('links', $t_links);
return $links;
}
?>
если кому интересно, конечно..
интересно, но не понял, то есть это код нужно вставить в отдельную страницу - и он должен работать?
<?php
function get_node_vid_term_links($node,$vid) {
$links = array();
if (array_key_exists('taxonomy', $node)) {
foreach ($node->taxonomy as $term) {
if ($term->vid == $vid) {
$t_links['taxonomy_term_'. $term->tid] = array(
'title' => $term->name,
'href' => taxonomy_term_path($term),
'attributes' => array('rel' => 'tag' ,'title' => strip_tags($term->description)));
}
}
}
$links = theme('links', $t_links);
return $links;
}
?>
приведённое выше нужно вставить в template.php
а следующим кодом выводятся термы заданного словаря:
<?php
print get_node_vid_term_links($node,6)
?>
циферка в конце означает id словаря..
а не проще, как тут сделать
Using PHP Snippet to Display Taxonomy Terms as PAGE of Links (not within nav menu)
http://drupal.org/node/121662
не проще... тут мы просто новую функцию добавляем, а там большим кодом выводим, который либо не выводит, либо запрос лишний делает.. вобщем показалось что так проще..
не, запрос он делает - переменные модуля объявлены как static
что?
Я хотел сказать, что сниппет, описанный здесь: http://drupal.org/node/121662, НЕ делает запросов.
Сорри за описку.