Answers:
您可以hook_form_alter
用来添加自定义提交处理程序,在其中可以设置重定向路径。
有关表单重定向的更多详细信息,请参见FAPI。
您可以创建一个规则,在用户创建或编辑特定内容类型时将其重定向到任何页面。当您添加规则时,选择“在创建新内容之后”,还添加条件“内容具有类型”。“您要执行的操作”部分将为您提供将用户重定向到您想要的任何页面的选项。
对于编辑节点后的重定向,只需创建一个新规则,然后选择“更新现有内容之后”作为您的第一个选项。
在执行此操作时,请确保还取消设置一个可能的现有目标,该目标通常在单击“编辑”按钮以编辑现有节点时添加到URL。
替换article
在MYMODULE_form_article_node_form_alter
与您的内容类型的机器名。
/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
function MYMODULE_form_article_node_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#submit'][] = '_MYMODULE_node_form_redirect';
}
/**
* Submit callback.
*/
function _MYMODULE_node_form_redirect($form, &$form_state) {
// Unset destination first.
unset($_GET['destination']);
unset($_REQUEST['edit']['destination']);
$form_state['redirect'] = 'FOO/BAR';
}
unset
中destination
应该处理编辑的使用情况,但他们对我的Drupal第7位没有影响。
该文档的内容不是很清楚,但是您应该修改$_GET['destination']
变量,而不是$_REQUEST
或$form_state['redirect']
。
在Drupal 7中,您可以更改节点编辑表单以“附加”您自己的提交功能,在其中您可以更改节点删除确认表单的form_state以包括“ destination”参数...只是在自定义主题中做到了这一点。一直在发展为“七个”管理主题的子主题...
您可以将此钩子添加到模板/主题,而不仅仅是模块。
因此,在您主题的中template.php
,添加以下表单alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
然后,瞧。删除节点后不再重定向到主页。
此处的解决方案http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#comment-18139
<?php
function FORM_NAME_form_submit($form, &$form_state) {
$form_state['redirect'] = array(
// $path
'path/to/redirect/to',
// $options
array('query' => array('key' => 'value')),
// $http_response_code
302,
);
}
?>