drupal_get_form не будет печатать форму добавления узла - PullRequest
3 голосов
/ 13 апреля 2010

Я пытаюсь заставить drupal_get_form ('ccknode_node_form') работать, но ничего не печатается.
Я пробовал, например, drupal_get_form ('user_register'), и это работает.

Я уверен, что это очень простая проблема, но мне очень нужна помощь с этим.
Спасибо
/ Anders

Ответы [ 3 ]

2 голосов
/ 13 апреля 2010

node_form находится в node.pages.inc, что вам не хватает. Если вы добавите

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

это должно исправить.

0 голосов
/ 08 декабря 2012

Привет @ andersandersson666,

Как сказал @googletorp, вам нужно включить файл node.pages из модуля узла, как они сказали:

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

Затем вам нужно использовать новую функцию в Drupal 7, чтобы получить форму:

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

Теперь вы можете распечатать или вернуть $theFormHTMLified.

Надеюсь, это поможет

0 голосов
/ 12 мая 2010

У меня также есть проблемы с 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...