Php node.tpl中按词汇表列出的术语
我在template.php中创建了一个变量,让我们按词汇表打印术语。问题是,我希望能够传入一个词汇id来选择一个特定的词汇。我的代码如下所示:Php node.tpl中按词汇表列出的术语,php,drupal,variables,taxonomy,Php,Drupal,Variables,Taxonomy,我在template.php中创建了一个变量,让我们按词汇表打印术语。问题是,我希望能够传入一个词汇id来选择一个特定的词汇。我的代码如下所示: function xnalaraart_classic_print_terms($node, $vocabularies){ foreach($vocabularies as $vocabulary){ if($terms = taxonomy_node_get_terms_by_vocabulary($node, $vocab
function xnalaraart_classic_print_terms($node, $vocabularies){
foreach($vocabularies as $vocabulary){
if($terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid)){
$output .= '<div>';
$output .= '<ul class="links inline">';
foreach ($terms as $term){
$output .= '<li class="taxonomy_term_' . $term->tid . '">';
$output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</div>';
}
}
return $output;
}
我该如何编写它,以便将id传递给$vocabularies?我想你让这件事变得比实际情况更困难了。最后的功能见下文
function xnalaraart_classic_print_vocab_terms($node, $vid){
if($terms = taxonomy_node_get_terms_by_vocabulary($node, $vid)){
$output .= '<div>';
$output .= '<ul class="links inline">';
foreach ($terms as $term){
$output .= '<li class="taxonomy_term_' . $term->tid . '">';
$output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</div>';
}
return $output;
}
我希望能够根据node-type.tpl使用不同的词汇表ID。这就是为什么我希望能够将参数与$terms\u split一起发送。因此,在preprocess\u节点中,使用switch语句。switch($vars['node']->type){case'page':$vars['terms_split']=..($vars['node'],20);…有意义吗?是的,这可能是最好的解决方案。是否无法使用节点变量发送参数?例如$terms_split($vid)?我不确定你的确切意思。我对php不太在行,我只是想知道是否无法将词汇表id与node.tpl中的$terms\u split变量一起发送。
function xnalaraart_classic_print_vocab_terms($node, $vid){
if($terms = taxonomy_node_get_terms_by_vocabulary($node, $vid)){
$output .= '<div>';
$output .= '<ul class="links inline">';
foreach ($terms as $term){
$output .= '<li class="taxonomy_term_' . $term->tid . '">';
$output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</div>';
}
return $output;
}
$vars['terms_split'] = xnalaraart_classic_print_terms($vars['node'], 10); //Where 10 is the vocab ID