在 Drupal 7 中,我向用户页面的内容区域添加了一个块。我通过指定来做到这一点
user/*
在可见性设置 -> 页面 -> 在特定页面上显示块 -> 仅列出的页面设置。
但是,由于通配符接受任何内容,现在该块出现在用户的编辑页面上。
是否有单个数字通配符,例如
user/%integer
我可以在这里使用,以便该块仅出现在用户视图页面上?
如何在 Drupal 7 的用户编辑页面上隐藏此块?
在 Drupal 7 中,我向用户页面的内容区域添加了一个块。我通过指定来做到这一点
user/*
在可见性设置 -> 页面 -> 在特定页面上显示块 -> 仅列出的页面设置。
但是,由于通配符接受任何内容,现在该块出现在用户的编辑页面上。
是否有单个数字通配符,例如
user/%integer
我可以在这里使用,以便该块仅出现在用户视图页面上?
如何在 Drupal 7 的用户编辑页面上隐藏此块?
您可以尝试启用 PHP 过滤器模块,以便您可以在阻止可见性设置页面输入 php。在那里你可以检查参数,如
<?php
if(arg(0) == 'user' && arg(2) != 'edit' )
return true;
else
return false
?>
这些天,有另一种可用的替代方案......它不需要启用 PHP 过滤器(您应该尽可能避免)......只需使用规则块可见性模块。这是其项目页面的引用:
规则块可见性模块允许使用规则组件来控制块可见性。除了 Drupal 提供的默认可见性选项外,这为 Drupal 管理员和开发人员在控制何时应在其网站上显示块方面提供了极大的灵活性。
一般的想法是,如果你可以使用规则来做到这一点,你就可以用它来控制块的可见性,所以可能性是无限的。
只需要为一个多月前注册的用户显示一个块吗?
也许您有一个只能在工作日上午 8 点到下午 5 点之间显示的块?
根据当前天气状况显示或隐藏一个块怎么样?
所有这些都可以通过使用规则块可见性来完成。
有了这个,并且根据上面的“如果你可以使用规则来做到这一点,你可以使用它来控制块可见性”,你已经将你的问题减少到让规则拦截有人使用类似 URL 的情况/user/*/edit
(在此处替换*
为任何)的允许值uid
。如果您不熟悉如何使用Rules执行此操作,请查看我对“如何使模块的权限更细化? ”问题的回答(并注意示例中包含的 regex-expression我在那里包含的规则)。