Как вывести форму добавления ноды в блоке?

Главные вкладки

Аватар пользователя vic vic 11 июля 2012 в 20:41

Доброго всем дня!

Создал тип материала consultation и теперь мне необходимо вывести форму добавления этого материла в блоке.
Пытаюсь делать так

function site_block_view($delta = '') {
  global $user;
  $block = array();

  switch ($delta) {
   
    case 'consultation_form':
      $node = (object) array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'consultation', 'language' => LANGUAGE_NONE);
      $form = drupal_get_form('consultation_node_form', $node);
      $block['subject'] = 'Задать вопрос';
      $block['content'] = drupal_render($form);
 
      break;
  }
   
  return $block;
}

Но форма не выводится, вылазит куча ошибок.

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'node_form' not found or invalid function name в функции drupal_retrieve_form() (строка 795 в файле /home/vic/sites/dima.ru/includes/form.inc).
Notice: Undefined index: #node в функции menu_form_node_form_alter() (строка 629 в файле /home/vic/sites/dima.ru/modules/menu/menu.module).
Notice: Trying to get property of non-object в функции menu_form_node_form_alter() (строка 629 в файле /home/vic/sites/dima.ru/modules/menu/menu.module).
Notice: Undefined index: #node в функции menu_form_node_form_alter() (строка 630 в файле /home/vic/sites/dima.ru/modules/menu/menu.module).
Notice: Trying to get property of non-object в функции menu_form_node_form_alter() (строка 630 в файле /home/vic/sites/dima.ru/modules/menu/menu.module).
Notice: Undefined index: node в функции pathauto_form_node_form_alter() (строка 463 в файле /home/vic/sites/dima.ru/sites/all/modules/pathauto/pathauto.module).
Notice: Trying to get property of non-object в функции pathauto_form_node_form_alter() (строка 464 в файле /home/vic/sites/dima.ru/sites/all/modules/pathauto/pathauto.module).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7539 в файле /home/vic/sites/dima.ru/includes/common.inc).

Как правильно вывести форму добавления ноды в блоке?

Комментарии

Аватар пользователя emzzy emzzy 11 июля 2012 в 21:39
function site_block_view($delta = '') {
  global $user;
  $block = array();
 
  switch ($delta) {
 
    case 'consultation_form':
module_load_include('inc', 'node', 'node.pages');
      $node = (object) array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'consultation', 'language' => LANGUAGE_NONE);
      $form = drupal_get_form('consultation_node_form', $node);
      $block['subject'] = 'Задать вопрос';
      $block['content'] = drupal_render($form);
 
      break;
  }
 
  return $block;
}
Аватар пользователя spectra spectra 18 июля 2013 в 10:01

<?php
global $user;
module_load_include('inc', 'node', 'node.pages');
$node = (object) array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => 'resume', 'language' => LANGUAGE_NONE);
$form = drupal_get_form('resume_node_form', $node);
$block = drupal_render($form);
print_r($block);
?>