首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Drupal页面调用第一个钩子

Drupal页面调用第一个钩子
EN

Stack Overflow用户
提问于 2013-07-09 22:14:42
回答 1查看 156关注 0票数 0

当页面被调用时,我想根据路径检查调用,我想用一些参数将用户重定向到frontpage。我将在一个块中使用这些参数来向访问者显示额外的信息。

我应该使用什么钩子,这样drupal才能做最少的不必要的工作?

EN

回答 1

Stack Overflow用户

发布于 2013-07-09 22:48:44

1) template_preprocess_page函数在这里是合适的钩子。

2)另一种选择是使用Rules模块。

事件: Drupal正在初始化(使用hook_init)条件:执行自定义php代码(检查路径参数)操作:页面重定向,其他规则操作(如消息)

我建议向用户显示一个Drupal消息,而不是一个块。除非用户已经登录,并且块中显示的参数确实存在于数据库中,因此您可以使用views模块来创建该块。

这是一个规则的导出,如果分类术语页面显示属于词汇表'4‘,则重定向。将其导入到您的规则中以查看结果。

代码语言:javascript
运行
复制
{ "rules_taxonomy_redirect_business" : {
    "LABEL" : "Taxonomy redirect - Business",
    "PLUGIN" : "reaction rule",
    "TAGS" : [ "redirect", "taxonomy" ],
    "REQUIRES" : [ "php", "rules" ],
    "ON" : [ "init" ],
    "IF" : [
      { "php_eval" : { "code" : "$check1 = (arg(0)==\u0027taxonomy\u0027)\u0026\u0026(arg(1)==\u0027term\u0027);\r\n$check2 = (arg(3)!=\u0027edit\u0027);\r\n\r\nif (arg(2)) {\r\n$tid = arg(2);\r\n$vid = db_query(\u0027SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid\u0027, array(\u0027:tid\u0027 =\u003E $tid))-\u003EfetchField();\r\n$check3 = ($vid == \u00274\u0027);\r\n}\r\n\r\nreturn ($check1)\u0026\u0026($check2)\u0026\u0026($check3);" } }
    ],
    "DO" : [
      { "redirect" : { "url" : "\u003C?php\r\n$tid = arg(2);\r\nreturn \u0027business?cat%5B%5D=\u0027 . $tid;\r\n?\u003E" } }
    ]
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17550581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档