我需要在不同的网址上显示街区。
Block1
Should be displayed on:
branches/taxonomytermlevel1
But not on
branches/taxonomytermlevel1/taxonomytermlevel2
Block2
Should be displayed on
branches/taxonomytermlevel1/taxonomytermlevel2
But not on
branches/taxonomytermlevel1术语/分类学术语1/分类学术语2是变量(某些分类列表中的元素)。
做这件事最简单的方法是什么?我认为块显示可见性设置中的php脚本将是诀窍,所以我尝试了一些代码,但没有成功。
我现在的一些代码是:
<?php
if (empty(arg(3))) {
return TRUE;
}else {
return FALSE;
}
?>有什么建议吗?
发布于 2016-08-15 08:41:12
有另一种方法可以回答您的问题,而不需要在块设置中使用PHP :您可以使用规则块可见度模块。以下是其项目页面的引文:
规则块可见性模块允许使用规则组件来控制块可见性。这为Drupal管理员和开发人员提供了极大的灵活性,除了Drupal提供的默认可见性选项之外,还可以控制在其网站上显示块的时间。一般的想法是,如果你可以用规则来做,你可以用它来控制块的可见性,所以可能性是无限的。只需为一个多月前注册的用户显示一个区块?也许你有一个街区,必须只显示在上午8点至下午5点,在工作日?如何根据当前天气情况显示或隐藏块呢?所有这些都可以通过使用规则块可见性来完成。
根据上面的“如果您可以使用规则进行操作,您可以使用它来控制块的可见性”,您已经将问题简化为让规则“检查当前页面的路径”(以便在适当的页面上显示适当的菜单块)。
有关如何使用此模块的说明,请参阅我对"当节点有多条路径时,如何通过url显示块?“的回答。它包括一些规则组件(规则导出格式),您应该用变体替换这些组件,使其与您的特定问题相匹配。
因此,有了2条(类似的)规则,对于这两个块中的每一个,您应该能够让它工作起来。
要真正“确定规则中的路径结构”(如在此答案下面的附加注释中),您可能需要使用正则表达式来使用规则条件。类似于规则中的规则条件,我将其包含在对"如何自动跳过中间重定向?“的回答中。
使用正则表达式可以提供更多的情况(在规则块可见度模块之上),在这些情况下,这个解决方案可以工作。如果您不熟悉正则表达式(不明显.),那么也许您也想看看我对"如何抑制使用Drupal设置的核心drupal警告或错误消息_设置_给网站用户的信息?“的回答。
这种方法也不需要启用PHP过滤器(您应该尽可能避免这种情况).
https://drupal.stackexchange.com/questions/211537
复制相似问题