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 根据Drupal 7中的分类术语或id打印链接_Php_Drupal_Drupal 7_Drupal Theming - Fatal编程技术网

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

Php 根据Drupal 7中的分类术语或id打印链接,php,drupal,drupal-7,drupal-theming,Php,Drupal,Drupal 7,Drupal Theming,我在page.tpl.php上有一个链接列表,我希望在使用一个分类术语id的节点上显示一个链接。分类术语id为9 前 | | 有人能帮忙吗 谢谢 在主题的template.php中;使用(),您的代码应该是这样的 function [YOUR_THEME]_preprocess_page(&$vars) { if(isset($vars['node'])) { $node = $vars['node']; $nodeLanguage

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

  • |
  • |
有人能帮忙吗


谢谢

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

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 } ?>

  • 代码是关于检查当前页面是否是
    节点页面
    ,然后检查
    节点是否有您的分类字段引用
    (在这个代码示例中,我使用
    字段(您的字段)引用
    作为字段名),最后检查其值是否为
    9


    如果是这样,您将结果存储在一个变量中(我称之为
    found\u my\u term
    ),以便您可以在页面模板中使用。

    谢谢,穆罕默德·雷达。你的理解是正确的。我试过你的代码,但出于某种原因,它只显示“公共页面”。注:我更正了私人页面链接中缺少的“ID”。我不确定术语ID,但这是该术语的屏幕截图-。我可能错了?基本上术语“私人合作伙伴”在URL中有/content/PRIVATE/*,而“公共页面”中有/content/PRIVATE/*“不要。再次感谢你@莉莎;仅当您位于分类术语9页面上时,上面的代码才会显示到
    私人页面的链接
    您的站点\u URL/taxonomy/term/9
    哦,对不起。我放错了指示。我希望在所有使用分类术语“Partner PRIVATE”的页面上显示链接“PRIVATE PAGE”,如果没有,则显示“PUBLIC PAGE”。你还能帮我吗?我不擅长PHP。谢谢谢谢,穆罕默德·雷达。出于某种原因,我得到了这个错误“Parse error:syntax error,unexpected T_ENDIF in page.tpl.php”,再次感谢您的更改删除了错误,但不幸的是,代码没有按预期工作。它只是在整个网站上显示公共页面。我已经清除了系统的缓存。顺便说一句,我正在使用D7。Drupal有各种方法来控制对特定页面的访问,我不确定使用分类法是最好的方法。。。
    <?php if($found_my_term) { ?>
    <li><a href=">PRIVATE PAGE</a> </li>
    <?php } else { ?>
    <li><a href="">PUBLIC PAGE</a> </li>
    <?php } ?>