如何节点/%节点重定向到自定义页面在Drupal

问题描述:

我想重定向一个内容类型的节点/%节点页,其相关的其他内容类型节点/%节点页如何节点/%节点重定向到自定义页面在Drupal

的功能做一个重定向是drupal_goto()

例如,您可以通过在自定义模块中实现hook_init()来做到这一点,检查路径是否为node/something,加载节点,如果是X类型,则重定向。

使用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); 
    } 
} 

这也可能通过把<?php drupal_goto($related_url); ?>在一个节点yourcontenttype.tpl.php在你的主题文件夹来完成。

+0

这只是主题,没有重定向。 – Haza 2011-03-18 02:16:56

+0

糟糕,我的代码丢失了。现在修复。 – Thomas4019 2011-03-18 02:28:21

+1

模板文件在这里可以处理...模板。他们不应该有任何处理网站“生活”的代码。重定向不是显示某些数据的一种方式。 – Haza 2011-03-18 02:32:06