我正在编写一个drupal模块。
在我的模块中,我有以下内容:
在我的.module
文件中,我有:
function mymodule_managment_menu(){
$items = array();
$items['management/edit'] = array(
'title' => 'Add Node',
'page callback' => 'display_add',
'access callback' => 'user_access',
'file' => 'file.inc',
);
return $items;
}
在我的file.inc中,我有:
function uc_am_display_edit()
{
global $user;
$node = array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'track', 'language' => '');
$output = drupal_get_form('track_node_form', $node);
return $output;
}
当我转到http://myhost/management/edit时,收到以下警告消息:
警告:call_user_func_array()
期望参数1是有效的
回调,函数'node_form'不
找到或函数名称无效
/var/www/includes/form.inc在线
378。
调试时,我进入form.inc:378,即:
$form = call_user_func_array(isset($callback) ? $callback : $form_id, $args);
我的$ callback ='node_form'。
但仍 undefined 。
当然,当我转到http://myhost/node/add/track时,我会得到我想要的正确设计的表格。
当我调试它时,我将抛出相同的代码路径,具有相同的变量值,并声明了node_form。
所以我的猜测是,我的模块在节点模块之前加载,但是由于节点模块是核心模块,因此编写它就令人怀疑。
试图将我的模块重量值增加到11-没有帮助。
请帮忙...
最佳答案
函数node_form在modules/node/node.pages.inc中定义。默认情况下不加载该文件。您必须在页面回调中使用module_load_include手动加载它。
关于drupal - 如何解决未找到函数'node_form'的警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4770414/