如何使用drupal template.php进行基于分类的css样式?

时间:2011-03-29 13:51:55

标签: css drupal taxonomy

我期待实施基于CSS样式的分类术语;特别是对于我想要添加当前术语的body标签。

目前,这是我到目前为止所拥有的:

function _phptemplate_variables($hook, $vars = array()) {
    global $node;
    switch ($hook) {
        case 'page':            die ('test');
            $vars['body_class'] = '';
            if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
                $vars['body_class'] = 'theme'.arg(2);
            }
            if (arg(0) == 'node' && is_numeric(arg(1))) {
                $node = node_load(arg(1));
                if (is_array($node->taxonomy)) {
                    foreach ($node->taxonomy as $term) {
                        $vars['body_class'] .= 'theme'.$term->tid;
                    }
                }
            }

            if (drupal_is_front_page()) {
                $vars['body_class'] .= ' front';
            }
            break;
    }
    return $vars; 
}

我认为代码没问题,但它永远不会被调用(参见我的'die'函数);使用简单的phptemplate引擎和最小的drupal6安装。

我在这里错过了什么显而易见的事情?

3 个答案:

答案 0 :(得分:1)

/**
 * Override or insert PHPTemplate variables into the templates.
 */
function phptemplate_preprocess_page(&$vars) {
  //
}

/**
 * Override or insert PHPTemplate variables into the templates.
 */
function phptemplate_preprocess_node(&$vars) {
  //
}

答案 1 :(得分:0)

好吧,多年前我们写了这个http://openconcept.ca/blog/jmlane/taxonomy_specific_css

我需要更新Drupal 6或7,但是校长仍然适用。

答案 2 :(得分:0)

对于Drupal 7,更优雅的解决方案可能是使用Context module。有关详细信息和说明,请参阅以下帖子。

Context模块允许为特定的Drupal页面创建任意上下文,例如基于分类学术语。这些背景可以引发某些反应,例如添加带有所选分类术语的CSS类。