Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php node.tpl中按词汇表列出的术语_Php_Drupal_Variables_Taxonomy - Fatal编程技术网

Php node.tpl中按词汇表列出的术语

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

我在template.php中创建了一个变量,让我们按词汇表打印术语。问题是,我希望能够传入一个词汇id来选择一个特定的词汇。我的代码如下所示:

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