如何修复函数“node_form”的警告没有找到吗?

发布于 2024-10-13 02:58:04 字数 1371 浏览 3 评论 0原文

我正在写一个 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'。 但它仍然没有定义。 当然,当我转到 http://myhost/node/add/track 时,我得到了正确设计的我想要的形式。 当我调试它时,我会抛出相同的代码路径,具有相同的变量值,并声明node_form。 所以我的猜测是我的模块是在节点模块之前加载的,但只是这样写就让人怀疑,因为节点模块是核心模块。 尝试将我的模块权重值增加到 11 - 没有帮助。 请帮忙...

I am writing a drupal module.
In my module i have the following:

In my .module file I have:

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;
}

in my file.inc i have:

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;
}

when i go to http://myhost/management/edit i get the following warnning message:

warning: call_user_func_array()
expects parameter 1 to be a valid
callback, function 'node_form' not
found or invalid function name in
/var/www/includes/form.inc on line
378.

when debugging i get to form.inc:378 which is:

  $form = call_user_func_array(isset($callback) ? $callback : $form_id, $args);

where my $callback = 'node_form'.
but still it is not defined.
of course, when i go to http://myhost/node/add/track i get the properly designed form i want.
when i debug it, i go throw thte same path of code, with the same variables value, and node_form is declared.
so my guess here is that my module is loaded before the node module, but just writing that makes doubt it, since the node module is a core module.
tried to increase my module weight value to 11 - didnt help.
please help...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里寻她 2024-10-20 02:58:04

函数 node_formmodules/node/node.pages 中定义。公司。默认情况下不加载该文件。您必须使用 module_load_include 手动加载它在您的页面回调中。

The function node_form is defined in modules/node/node.pages.inc. That file is not loaded by default. You have to load it manually using module_load_include in your page callback.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文