Drupal如何在表单提交后重定向节点表单

gaz*_*pko 4 php drupal drupal-7

在Drupal 7上发布节点时,我重定向到创建的特定节点.

当我正确发布节点时,我正在搜索重定向到主管理页面.

我试过把它放在template.php上:

function node_submit($form, &$form_state) {
  $form_state['redirect'] = 'admin';
}
Run Code Online (Sandbox Code Playgroud)

但提交时出错:

致命错误:无法在/var/www/XXX/sites/all/themes/XXX/template.php上重新声明node_submit()(之前在/var/www/XXX/modules/node/node.module:1004中声明) XX

小智 6

如果您想要做的只是更改用户在提交添加节点表单后重定向到的位置,则可以从特定链接更轻松地进行操作.

只需使您的链接看起来像这样:

/node/add/[CONTENT-TYPE]?destination=[URL-REDIRECT]
Run Code Online (Sandbox Code Playgroud)

这是我工作的一个例子:

/node/add/ic-competencies-toolkit-codes?destination=admin/survey-codes
Run Code Online (Sandbox Code Playgroud)


fot*_*lab 5

这对我有用:

function mymodule_form_FORM_ID_alter(&$form, $form_state){
    $form['actions']['submit']['#submit'][] = 'mymodule_redirect_callback';
}

function mymodule_redirect_callback($form, &$form_state){
    $form_state['redirect'] = '_path_';
}
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是:

$form['actions']['submit']['#submit'][] = 'some_function';
Run Code Online (Sandbox Code Playgroud)

会工作,但是

$form['#submit'][] = 'some_function';
Run Code Online (Sandbox Code Playgroud)

将不会