我想在创建新内容之后重定向用户,而不是将其指向内容的“查看”页面。如何在创建新内容后重定向Drupal用户
我见过提到使用hook_alter或其他东西,但我对drupal真的很陌生,甚至不知道这意味着什么?
谢谢!
我想在创建新内容之后重定向用户,而不是将其指向内容的“查看”页面。如何在创建新内容后重定向Drupal用户
我见过提到使用hook_alter或其他东西,但我对drupal真的很陌生,甚至不知道这意味着什么?
谢谢!
正如你所说,你是Drupal的新手,我建议看看Rules module。您可以添加一个触发器来保存/更新内容,并添加一个操作,将用户重定向到特定页面。
但是,您可以在使用form_alter钩子的轻量级自定义模块中做同样的事情。
首先,找到表单的表单ID。对于节点形式,它是[node-type] _node_form。 然后,您可以添加一个新的提交功能,在表单提交时执行。在这个提交处理程序中,设置重定向路径。
请参阅this guide on a basic how-to on creating a module。 你的模块代码会是这样的初级讲座:
<?php
function mymodule_mytype_node_form_alter(&$form, &$form_state) {
$form['#submit'][] = 'mymodule_node_submit_do_redirect';
}
function mymodule_node_submit_do_redirect($form, &$form_state) {
$form_state['redirect'] = 'my_custom_destination';
}
一个非常非常简单的方法是设置在节点形式的URL目的地。 例如,如果您打开http://example.com/node/add/mytype?destination=my_custom_destination
,您将被重定向到该URL而不是节点视图页面。
感谢您的快速响应!非常有帮助=) – UpsetPopcorn
不知何故,它不适用于我:(。每个功能已达到,但重定向不会发生。 –
如果您以这种方式添加提交处理程序,它将无法正常工作,您需要确保您添加提交处理程序到正确的位置,并且通常以行为'$ form ['actions'] ['submit'] ['#submit'] [] =“handler_name” – Ziftman