Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Drupal 6 Drupal6:如何将分类术语打印为CSS主体类?_Drupal 6 - Fatal编程技术网

Drupal 6 Drupal6:如何将分类术语打印为CSS主体类?

Drupal 6 Drupal6:如何将分类术语打印为CSS主体类?,drupal-6,Drupal 6,在Drupal6中,如何将分类术语打印为CSS主体类 我发现这段代码可以让您将Drupal内容的几乎每个方面作为一个主体类打印出来,但它不包括分类术语: 能够将分类术语作为主体类打印出来对于主题化过程是至关重要的,所以我很惊讶没有现成的解决方案 通过在页面预处理函数中执行print\r($vars)或dpm($vars)或使用模块,检查哪些变量传递到页面模板。dpm的使用要求您安装devel模块 您会发现一些主题会将$taxonomy作为变量传递到page.tpl.php。如果不是这样,您可以

在Drupal6中,如何将分类术语打印为CSS主体类

我发现这段代码可以让您将Drupal内容的几乎每个方面作为一个主体类打印出来,但它不包括分类术语:


能够将分类术语作为主体类打印出来对于主题化过程是至关重要的,所以我很惊讶没有现成的解决方案

通过在页面预处理函数中执行
print\r($vars)
dpm($vars)
或使用模块,检查哪些变量传递到页面模板。dpm的使用要求您安装devel模块

您会发现一些主题会将
$taxonomy
作为变量传递到page.tpl.php。如果不是这样,您可以在
$node
变量中找到分类术语,该变量也可以在page.tpl.php的某些主题中找到


(以上内容适用于我基于fusion的主题acquia marina)。一旦你有了这些分类术语,你就可以很容易地在你的身体类中打印出来。

经过大量的努力,我找到了一个非常简单的方法来做到这一点

在上,有一个片段,可用于将应用于每个页面的分类术语打印为文本

唯一的问题是,代码片段将打印taxonmy术语中的任何空格或标点符号,这对body classess没有好处

但是,通过添加str_replace命令,可以去掉所有空格和标点符号

我肯定还有其他人想将taxonmy术语打印为body类,所以为了省去他们的麻烦,下面是我添加str_replace命令时使用的代码

将以下内容放入template.php中:

function getTerm($label, $vid, $link) {
    $node = node_load(array('nid'=>arg(1)));
    foreach((array)$node->taxonomy as $term){
        if ($term->vid == $vid){
            if ($link){
                $link_set[] = l($term->name, taxonomy_term_path($term));
            } else {
                $link_set[] = $term->name;
            }
        }
    }
    if (!empty($link_set)){
        $label = ($label) ? "<strong>$label </strong>" : "";
        $link_set = $label.implode(', ', $link_set);
    }
   $link_set = str_replace(' ', '_', $link_set);
  $link_set = str_replace('&', 'and', $link_set); 
  $link_set = strtolower($link_set);

 return $link_set;
}
函数getTerm($label、$vid、$link){
$node=node_加载(数组('nid'=>arg(1));
foreach((数组)$node->taxonomy as$term){
如果($term->vid==$vid){
如果($link){
$link_set[]=l($term->name,taxonomy_term_path($term));
}否则{
$link_set[]=$term->name;
}
}
}
如果(!空($link_set)){
$label=($label)?“$label”:”;
$link\u set=$label.intlode(“,”,$link\u set);
}
$link\u set=str\u replace(“,”,$link\u set);
$link\u set=str\u replace(“&”,“and”,“link\u set”);
$link\u set=strtolower($link\u set);
返回$link_set;
}
将以下内容放在Page.tpl.php中:

<body class="taxonomy-<? print getTerm(false, 1, false);?>">