如何节点/%节点重定向到自定义页面在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在你的主题文件夹来完成。
这只是主题,没有重定向。 – Haza 2011-03-18 02:16:56
糟糕,我的代码丢失了。现在修复。 – Thomas4019 2011-03-18 02:28:21
模板文件在这里可以处理...模板。他们不应该有任何处理网站“生活”的代码。重定向不是显示某些数据的一种方式。 – Haza 2011-03-18 02:32:06