drupal_get_form不会打印添加节点表单

时间:2010-04-13 12:58:49

标签: forms drupal

我试图让drupal_get_form('ccknode_node_form')工作,但没有打印。
我试过例如drupal_get_form('user_register'),这样可行。

我确定这是一个非常简单的问题,但我真的需要帮助 由于
/安德斯

3 个答案:

答案 0 :(得分:2)

node_form位于node.pages.inc,这是您所缺少的。如果你添加

module_load_include('inc', 'node', 'node.pages');

应该修复它。

答案 1 :(得分:0)

我也遇到了drupal_get_form的问题,但下面的代码将返回html格式。问题区域可能无法调用正确的node_form。


function get_author_form() {
  //return node_form(NULL,NULL);
  //return drupal_get_form('author_form');
  return author_ajax_form('author');
}

 function author_ajax_form($type) {
  global $user;
  module_load_include('inc', 'node', 'node.pages');

  $types = node_get_types();
  $type = isset($type) ? str_replace('-', '_', $type) : NULL;
  // If a node type has been specified, validate its existence.
  if (isset($types[$type]) && node_access('create', $type)) {
    // Initialize settings:
    $node = array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => $type, 'language' => 'bbb','bbb' => 'TRUE');
    $output = drupal_get_form($type .'_node_form', $node);
  }

  return $output;
}

答案 2 :(得分:0)

嗨@ andersandersson666,

正如@googletorp所说,你需要在节点模块中包含node.pages,因为他们说:

module_load_include('inc', 'node', 'node.pages');

然后,您需要在Drupal 7中使用新函数来获取表单:

$theFormHTMLified = drupal_render(node_add("ccknode"));

现在您可以打印或返回$theFormHTMLified

希望有所帮助