根据Drupal 7中的分类术语或id打印链接

时间:2014-01-28 07:10:20

标签: php drupal drupal-7 drupal-theming

我在page.tpl.php上有一个链接列表,我希望在使用一个分类术语id的节点上显示一个链接。分类学术语id是9.

实施例。

<ul class="top-menu-new upper-menu-new">
<li> <a>NEWS</a>&nbsp;&nbsp;|&nbsp;&nbsp;  </li>
<li> <a href="">BLOG</a>&nbsp;&nbsp;|&nbsp;&nbsp;  </li>
<li> <a href="">FAQ</a>&nbsp;&nbsp; | &nbsp;&nbsp;</li>

<?php if the node is using taxonomy term id 9
<li><a href=">PRIVATE PAGE</a> </li>
<?php else: ?>
<li><a href="">PUBLIC PAGE</a> </li>
<?php endif; ?>

有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在你的主题中template.php;使用template_preprocess_page(),您的代码应该是那样的

function [YOUR_THEME]_preprocess_page(&$vars)
{
    if(isset($vars['node']))
    {
        $node = $vars['node'];
        $nodeLanguage = "und"; // or use any language
        if(isset($node->field_YOUR_FIELD_REFERENCE[$nodeLanguage]))
        {
            foreach($node->field_YOUR_FIELD[$nodeLanguage] as $key => $val)
            {
                if($val['tid'] == "9")
                    $vars['found_my_term'] = true;
            }
        }
    }
}

然后,在您的网页模板中page.tpl.php

<?php if($found_my_term) { ?>
<li><a href=">PRIVATE PAGE</a> </li>
<?php } else { ?>
<li><a href="">PUBLIC PAGE</a> </li>
<?php } ?>

代码是关于检查当前页面是否为node page,然后检查node has your taxonomy field reference(在此代码示例中我使用field_YOUR_FIELD_REFERENCE作为字段名称),最后检查它是否具有值9

如果是这样,您将结果存储在变量中(我称为found_my_term),以便您可以在页面模板中使用。