在Drupal 7上发布节点时,我会重定向到创建的特定节点。
当我正确发布节点时,我正在搜索重定向到主管理页面。
我试过把它放在template.php上:
function node_submit($form, &$form_state) {
$form_state['redirect'] = 'admin';
}
但提交时出错:
致命错误:无法在/ var / www / XXX / sites / all / themes / XXX / template中重新声明node_submit()(之前在/var/www/XXX/modules/node/node.module:1004中声明)。 php在线xx
答案 0 :(得分:6)
如果您要做的只是更改用户在提交添加节点表单后重定向到的位置,则可以从特定链接更轻松地进行操作。
只需让您的链接看起来像这样:
/node/add/[CONTENT-TYPE]?destination=[URL-REDIRECT]
以下是我开始工作的一个例子:
/node/add/ic-competencies-toolkit-codes?destination=admin/survey-codes
答案 1 :(得分: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_';
}
需要注意的一点是:
$form['actions']['submit']['#submit'][] = 'some_function';
会奏效,但
$form['#submit'][] = 'some_function';
不会
答案 2 :(得分:4)
您可以使用hook_form_alter()来执行此操作。
function YOUR_MODULE_form_alter(&$form, &$form_state, $form_id)
{
if ($form_id == "CONTENT_TYPE_node_form") {
$form['#redirect'] = "node";
}
}
希望这有效。
答案 3 :(得分:4)
或者,如果您不想编写代码,请尝试使用规则模块:http://drupal.org/project/rules
添加新规则并将“React on Event”设置为“保存新内容后”。
将操作设置为:“系统:页面重定向”并正确填写字段。
如果您希望将此规则引入代码,可以将它们导出到模块中!
答案 4 :(得分:1)
在Drupal 7中,这是正确的方法:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if($form_id === 'myform_id'){
$form['#submit'][] = '_mymodule_redirect_callback';
}
function _mymodule_redirect_callback($form, &$form_state) {
$form_state['redirect'] = 'http://www.google.ch';
}
答案 5 :(得分:1)
重定向评论表单或节点表单的最简单方法
case 'my_node_form':
$form['#action'] .= '?destination=well-done';
break;
请注意“。”在$ form ['#action']
之后你需要追加而不是替换!