作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
无论是自定义的区块,还是通过编写模块实现的区块,我们都可以在后台对其进行配置,导航到“首页 » 管理 » 结构 » 区块”,在这里找到“Powered by Drupal”区块,点击它的配置链接,我们就可以看到一个典型的区块配置页面,如图所示:
区块配置选项截图
在这里,可配置的有三项:区块标题、区域、可见性。自定义区块还包括区块描述、区块内容两部分。在区块标题中,可以在这里输入想要显示的标题,如果不想输出区块标题,可以输入<none>,留空则表示使用默认标题。区域设置里面可以配置这个区块在主题中所属的区域,如果留空则表示在该主题下面不显示。可见性设置,又分为基于页面路径的可见性设置、基于用户角色的可见性设置、基于内容类型的可见性设置、基于用户的可见性设置。
基于页面路径的可见性设置:在这里可以配置区块显示在哪些页面,或者不显示在哪些页面。此处可以使用通配符,支持路径别名。结合Pathauto模块和这里的选项,可以方便的控制区块的显示。
假如我们创建一个book节点类型,为所有该类型的节点设置别名为:book/item/nid的形式,book相关的列表页面使用books/tid的形式。那么假如我们想将一个区块只显示在book的节点页面和列表页面,那么我们可以选择“只在下列页面”,然后在下面的文本域中输入:
book/item/*
books*
如果启用PHP filter模块,还可以使用PHP代码来控制区块的可见性。在基于页面路径的可见性设置中,选择PHP代码方式。然后在下面的文本域中输入PHP代码。当显示一个页面时,Drupal将运行这里的php代码片段,来判定该区块是否显示。每段代码都应该返回TRUE或FALSE,来指示区块对于特定请求是否可见。
比如将区块显示给登录用户的PHP代码:
<?php
global $user;
return (bool) $user->uid;
?>
基于内容类型的可见性设置:这里可以选择区块显示在哪些内容类型的节点页面下。还拿前面的例子来说,我们想在book类型的节点页面显示该区块,那么只需要在这里选择book内容类型即可。
特定角色可见性设置:管理员可以选择,区块对哪些特定角色的用户可见。如果想将区块显示给登录用户,只需要在这里选择“注册用户”即可。这和前面所给PHP代码,功能上是一致的。
基于用户的可见性设置:管理员可以允许个人用户在他们的帐户设置中,自己设定特定区块的可见性。用户可以在个人账户的编辑页面,来修改区块的可见性。