如何将节点/%节点重定向到drupal中的自定义页面

时间:2011-03-17 08:54:42

标签: drupal

我希望将一种内容类型的节点/%节点页面重定向到其相关的另一种内容类型节点/%节点页面

3 个答案:

答案 0 :(得分:5)

使用hook_menu_alter(),更改node/%node的页面回调。在页面回调中,检查节点的类型以在节点上调用node_page_view或重定向到引用的节点。

MODULE_menu_alter(&$items) {
  $items['node/%node']['page callback'] = 'MODULE_node_page_view';
}

MODULE_node_page_view($node) {
  if ($node->type == MODULE_NODE_TYPE) {
    $referenced_node = MODULE_get_related_node($node);
    drupal_goto('node/'. $referenced_node->nid);
  }
  else {
    return node_page_view($node);
  }
}

答案 1 :(得分:2)

执行重定向的功能是drupal_goto()

例如,您可以通过在自定义模块中实现hook_init()来执行此操作,检查路径是否为node / something,加载节点以及是否为X类型,重定向。

答案 2 :(得分:-1)

这也可以通过将<?php drupal_goto($related_url); ?>放在主题文件夹中的node-yourcontenttype.tpl.php中来完成。