我在Drupal 6工作。

我有一个要求,当用户是一个博客页面上添加一个特定块。听起来很简单,但它已经快把我逼疯了。

当用户正在观看一个博客概述或个人博客条目要被示出的块的需要。

我最初以为所以才会出现我可以通过页面名称过滤它当页= /博客/ 。不幸的是,这仅适用于博客概述页面;个人博客条目页面都有自己的URL(默认为/节点/ 的,但将改为无论业主希望)。

多一点google搜索,我发现了约$节点 - >键入==“博客”,这应该拿起的事实,我在博客条目的网页,但似乎并没有工作。

在管理员/建造/块/配置页我有页可见性设置为PHP模式,和PHP代码,如下所示:

<?php
return ($node->type == 'blog');
?>

但似乎并没有工作,即使如果我在模板中的print_r($节点),它显示类型==博客。

我还添加strpos($ _ SERVER [“REQUEST_URI”,“博客”)到上述情况,但当然由于第一条件不工作,加入第二不会帮助。

这感觉就像应该有一个明显的答案,但我无法找到它。谁能帮我吗。感谢。

有帮助吗?

解决方案

您与上面的代码的问题,就是当你在运行模块的代码,它不会有可用的$节点变量。你需要做这样的事情,将其添加到博客节点。

<?php
    // This code checks the internal url, which for nodes always will be node/[nid].
    // Last condition: don't display the block on node edit forms etc.
    if (arg(0) == 'node' && is_numeric(arg(1)) && empty(arg(2))) {
      $node = node_load(arg(1));
      return $node->type == 'blog';
    }
?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top