Php Drupal-使用自定义url\u重写\u入站更改匿名用户的目的地?
是否可以将匿名用户(或者更具体地说,没有“成员”角色的用户)从特定菜单项重定向到我选择的备用节点,可能使用自定义url\U重写\U入站 这将使我能够为成员和非成员提供两个版本的特定页面(这是一个特定于站点的东西!)Php Drupal-使用自定义url\u重写\u入站更改匿名用户的目的地?,php,drupal,Php,Drupal,是否可以将匿名用户(或者更具体地说,没有“成员”角色的用户)从特定菜单项重定向到我选择的备用节点,可能使用自定义url\U重写\U入站 这将使我能够为成员和非成员提供两个版本的特定页面(这是一个特定于站点的东西!) 干杯。您可以为该链接创建一个自定义菜单处理程序,然后在运行该处理程序的函数中,您可以创建如下内容 if (user->role == 'access granted') { // do stuff } else { drupal_goto('anonymouspage
干杯。您可以为该链接创建一个自定义菜单处理程序,然后在运行该处理程序的函数中,您可以创建如下内容
if (user->role == 'access granted') {
// do stuff
} else {
drupal_goto('anonymouspage');
}
使用
custom\u url\u rewrite\u inbound()
进行此操作类似于使用大锤调整扭曲图片的角度-可以这样做,但操作繁琐且有造成某些损坏的风险;)
更好的解决方案取决于您想要准确实现什么,以及您需要多长时间(即多少个节点)完成一次,因此您应该更详细地解释您的场景。一些可能的办法包括:
- 使用两个版本的数据/字段“丰富”节点,并根据用户角色调整实际输出
- 如果使用CCK,则可以为此使用字段权限设置
- 您还可以通过自定义节点模板在主题层中进行一些调整
- 另一种方法是通过自定义模块中的hook_nodeapi()(操作“视图”),根据用户角色从内容数组中删除条目
- 根据用户角色提供到其他节点的显式重定向(您的显式问题)
- 通过
将标准节点页回调替换为自定义回调。在其中,您检查角色。如果没有问题,只需调用标准回调,否则发出一个hook\u menu\u alter()
(如果可能,基于一些通用逻辑)drupal_goto()
- 如果“特殊”情况很少,您也可以通过
执行此操作,再次对操作“view”作出反应,但您需要确保仅对节点页面视图执行此操作,而不是仅在节点与其他节点一起显示为摘要时执行此操作hook_nodeapi()
- 在自定义模块中实现
,检查路径(hook_init()
或arg()
)和角色,根据需要发出$\u GET['q']
。(注意缓存页面-如果需要覆盖这些页面,请使用drupal_goto()
)李>hook\u boot()
- 通过
等等我相信还有更多的选择,因此您可能希望提供有关您的问题/目标/场景的更多详细信息,以便提供更精确的建议。您希望整个内容有所不同吗?如果只想隐藏节点的某些部分,则可以执行重定向以外的操作。另外,您是否希望每个节点都有一个备用节点,或者整个站点都有一个帐户?我想一个解决方案是将相关文本添加到CCK字段中,并对非成员隐藏该文本(同时保持正文可见)。不过,我很想知道重定向是否可行——这将帮助我更了解Drupal:)