我想重定向陈词后我的状态,我试图用一个钩子,宣布但这是我所得到的:Drupal的:致命错误:不能重新声明> node_form_submit()(以前>在
function node_form_submit(&$form, $form_state) {
$form_state['redirect'] = 'contentManager/';
}
。
Fatal error: Cannot redeclare node_form_submit() (previously declared in drupal/modules/node/node.pages.inc:451) in drupal/sites/all/themes/bluemarine/template.php on line 31
我使用的模块名称“节点”为我钩我想这是错误的,但我不明白为什么
更新: 好吧,我不是开发一个新的模块。我在Bluemarine模板中添加了template.php函数。
function bluemarine_form_alter(&$form, $form_state) {
$form_state['redirect'] = 'contentManager/';
}
Bluemarine是我主题的名称..“contentManager”是我在后端创建的一个页面,其中包含所有节点的View。
该功能完全被忽略。
UPDATE2 好了,现在,这是我目前的template.php文件(我敢肯定,phptemplate_node_form调用)
function phptemplate_node_form($form) {
$form['#submit'][] = 'myFormSubmit';
}
function myFormSubmit() {
echo "hello";
die();
}
,则不会调用该函数myFormSubmit。
谢谢
所以,我有两个问题:(1)对于每个我想修改的模块,我都应该创建一个新模块。假设我想在3个不同的模块中更改3个小东西,我必须创建3个新模块。它是否正确 ? (2)如果我只想在提交表单后将用户转发到另一个页面,我应该创建一个新模块吗?我通常会对我的template.php文件(例如更改权重,默认折叠)做一些小的更改,但我想更改转发,我应该创建一个新模块? – aneuryzm 2010-06-24 13:18:45
如果您想要做的是更改表单,您可以使用一个hook_form_alter并根据$ form_id提供更改集。它会根据字段名称改变你想要的任何形式,例如你可以限制它包裹在if($ form_id =='node_form')中。 – Kevin 2010-06-24 13:24:11
所以换句话说,我想这个答案问题1,我可以改变不同模块的形式,从1个新的模块,提供不同的$ form_ids。如果我想更改表单转发,我没有其他选项,如果我只能创建一个新模块? – aneuryzm 2010-06-24 13:32:33