drupal - 如何修复未找到函数 'node_form' 的警告?

标签 drupal drupal-6 drupal-modules

我正在编写一个 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我收到以下警告消息:

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.

调试时我得到 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 - 没有帮助。 请帮忙...

最佳答案

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

关于drupal - 如何修复未找到函数 'node_form' 的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770414/

相关文章:

drupal-6 - Drupal6 - 导出批量节点

drupal - 在Drupal中,如何设置node-[content type].tpl.php显示404错误?

php - 如何在评论表上方添加免责声明?

php - 使用 API 将模块的数据暴露给 Views2

javascript - 在 Drupal 6 中实现精美的 CSS/Javascript 导航菜单的最简单方法?

android - 无法通过 webbrowser 从 drupal 站点下载 .apk

Drupal 在两个网站之间共享内容

php - 如何在 hook_form_alter 上添加权重

drupal-7 - Drupal 7 表单 API : Set visible state of form element based on OR instead of AND

php - Drupal,获取节点列表给出 403 禁止错误