节点添加/编辑后重定向用户


13

在用户创建或编辑节点之后,我想将用户重定向到自定义页面。

Answers:


6

您可以hook_form_alter用来添加自定义提交处理程序,在其中可以设置重定向路径。

有关表单重定向的更多详细信息,请参见FAPI


1
感谢您的回答 !我已经阅读了有关FAPI的信息,但仍然有一个问题要继续:我应该在哪里放置hook_form_alter函数?
ousneo 2011年

2
@ousneo在drupal 7中,您可以将其放在主题或您创建的自定义模块中。
googletorp

1
请参阅@Dmitry Vyal答案
Capi Etheriel 2012年

1
这是保存后进行重定向的模块。drupal.org/project/node_save_redirect
polyclick

1
虽然被接受,但答案太简短而无用。如何添加自定义提交处理程序真的很重要,这个答案对此没有任何说明。最好的答案恕我直言是@leymannx提供的(但请参阅有关编辑用例的评论)。
自由基

4

您可以创建一个规则,在用户创建或编辑特定内容类型时将其重定向到任何页面。当您添加规则时,选择“在创建新内容之后”,还添加条件“内容具有类型”。“您要执行的操作”部分将为您提供将用户重定向到您想要的任何页面的选项。

对于编辑节点后的重定向,只需创建一个新规则,然后选择“更新现有内容之后”作为您的第一个选项。


创建特定内容后,我使用“规则”进行重定向,但是用户现在没有任何反馈。我想向用户显示“您的内容已创建”。我该如何改善呢?
wallace740 2012年

1
在重定向操作之后添加另一个操作,以“在站点上显示可配置的消息”,然后从此处添加您的自定义消息。

我添加了另一个规则,但是我想我在自定义主题中缺少某些内容,因为该消息未显示在首页上。我正在使用“更好的消息”模块来在弹出窗口中显示此类消息!规则配置
wallace740 2012年

我的经验是,覆盖会破坏规则重定向,请注意。
Capi Etheriel

在我的情况下,此节点添加表单已嵌入面板内部。hook_form_alter没有抓住它。但是规则很有效!
Druvision 2014年

2

在执行此操作时,请确保还取消设置一个可能的现有目标,该目标通常在单击“编辑”按钮以编辑现有节点时添加到URL。

替换articleMYMODULE_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';
}

这适用于添加节点后的重定向,但不适用于编辑后的重定向。据我所知,在电话unsetdestination应该处理编辑的使用情况,但他们对我的Drupal第7位没有影响。
自由基

@FreeRadical –你是对的。我更新了答案,改为使用hook_form_BASE_FORM_ID_alter,该目标同时针对-添加和编辑。
leymannx



1

在Drupal 7中,您可以更改节点编辑表单以“附加”您自己的提交功能,在其中您可以更改节点删除确认表单的form_state以包括“ destination”参数...只是在自定义主题中做到了这一点。一直在发展为“七个”管理主题的子主题...

hook_form_FORM_ID_alter的文档

您可以将此钩子添加到模板/主题,而不仅仅是模块。

因此,在您主题的中template.php,添加以下表单alter hook:

function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
    $form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}

然后,瞧。删除节点后不再重定向到主页。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.