Разрабатываю свой модуль drupal 7

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

Аватар пользователя lait1989 lait1989 11 марта 2013 в 16:35

Всем привет! Возник вопрос. Модуль разрабатываю впервые. Разрабатываю свой модуль с использованием entity api. Создаю несколько сущностей из модуля, работа с ними возможна только из админки. Необходимо реализовать работу модуля не на административных страницах. Через вывод формы модуля на определенной странице появляется ошибка

Fatal error: Call to undefined function entity_ui_form_submit_build_entity() in /home/ilya/sites/poputchic/www/sites/all/modules/tour_transfers/transfer.module on line 613.

на 613 строке следующее:
$transfer = entity_ui_form_submit_build_entity($form, $form_state);

Спасибо за помощь!

Комментарии

Аватар пользователя MaX0s MaX0s 11 марта 2013 в 16:41

Точно не подскажу, но вот тут - http://xandeadx.ru/blog/drupal/352 есть хороший мануальчик. И стоит обратить внимание на комментарии потому, что там есть исправления.
И вообще лучше этот сайт в заметки. Мне он и сейчас помогает. Smile

Аватар пользователя ser_house ser_house 12 марта 2013 в 1:26

Что-то не так у Вас получается. entity_ui_form_submit_build_entity совсем нечего делать в основном файле модуля. Там должны быть функции формы, её валидации и сохранения данных как шлюзы между ООП и функциональностью. Что-нибудь вроде этого:

function моя_entity_form($form, &$form_state, $моя_entity_obj) {
 
  // бла-бла-форма
 
  field_attach_form('моя_entity', $моя_entity_obj, $form, $form_state, entity_language('моя_entity', $моя_entity_obj));
 
  return $form;
}

function моя_entity_form_validate($form, &$form_state) {
  $моя_entity_obj = $form_state['моя_entity'];
 
  // бла-бла-validate
 
  field_attach_form_validate('моя_entity', $моя_entity_obj, $form, $form_state);
}

function моя_entity_form_submit($form, &$form_state) {
  $моя_entity_obj = &$form_state['моя_entity'];

  // бла-бла
 
  field_attach_submit('моя_entity', $моя_entity_obj, $form, $form_state);

  моя_entity_save($моя_entity_obj);

  drupal_set_message('моя_entity сохранен.');

  $form_state['redirect'] = // куды хочу
}

По сути, entity_ui_form_submit_build_entity нечего делать негде — entity_api сам позаботится и о ней и о нужных включениях.

Для работы с сущностью не в адмнике (всякие там overviewForm, overviewTable и тому подобное) кто мешает определить соответствующие пути в hook_entity_info и (если надо) в реализации EntityDefaultUIController::hook_menu своего UI контролера?