Форма создания материала в модальном окне с возвратом аргумента

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

Аватар пользователя svaroha svaroha 23 мая 2011 в 14:27

Добрый день.
Есть:
ноды 'clinic', 'doctor', 'department'. Все с дополнительными CCK полями.
нода 'clinic' содержит в себе 2 ССК поля с типом 'doctor' и 'department'.
Необходимо:
Как сделать так, чтобы при вводе новой ноды 'clinic' можно было нажать на ссылку "Добавить доктора", "Добавить отделение", и в модальном окне (или же в заготовленный div id="add-doctor") вывелась форма создания ноды типа "Доктор" или "Отделение". Потом, при правильном заполнении нового "Доктора" в еще открытую форму создания "Больницы" передался аргумент 'nid' свежесозданной ноды доктор.
Было бы очень хорошо для общего развития сделать все это своим модулем с хуками темизации и с чистым аяксом, а не использовать дополнительные модули вида modalframe, popups, dialog, jquery_ui_dialog.

Комментарии

Аватар пользователя m.rad m.rad 23 мая 2011 в 15:05

на ссылку вам через АХАХ надо вешать drupal_get_form('нужная форма')

ссылок не дам, сам изучал по куче различных мануалов забугорских

очень много для понимания сыграло видео луллаботов
http://rutracker.org/forum/viewtopic.php?t=3172237
9 часть думаю будет вам полезно для начала, если раньше не работали с АХАХ

Аватар пользователя svaroha svaroha 23 мая 2011 в 15:16

Хорошо....
получается, что ахах должен вызывать типа такую функцию??

function doctor_add(&$form_state) {
module_load_include('inc', 'node', 'node.pages');

$type = 'doctor';
$node = new stdClass();
$node = array(
    'uid' => $GLOBALS['user']->uid,
    'name' => (isset($GLOBALS['user']->name) ? $GLOBALS['user']->name : ''),
    'type' => $type,
    'language' => ''
);

//dpm($form1);
$output = drupal_get_form('doctor_node_form', $node);
echo $output;
//return $form;
}

А как вернуть аргумент обратно? аргумент -это nid новосозданной ноды доктор.

Аватар пользователя svaroha svaroha 23 мая 2011 в 15:28

Да проблема в том, что читал...и про форм апи, и про ахах...не могу просто понять в общем, какие функции использовать и что за чем должно вызываться. И с какого конца подойти к решению этой проблемы.

Аватар пользователя xxandeadxx xxandeadxx 23 мая 2011 в 15:32

вешаете обработчик на ссылку "Добавить доктора"

по наступлению события подгружаете с помощью ajax страницу с формой

в полученных данных находите форму по её id

показываете в окне

Аватар пользователя svaroha svaroha 23 мая 2011 в 15:35

"xxandeadxx" wrote:
вешаете обработчик на ссылку "Добавить доктора"

по наступлению события подгружаете с помощью ajax страницу с формой

в полученных данных находите форму по её id

показываете в окне


А можно хоть чуточку поподробней?? особенно, не понимаю, каким образом получить форму по ее id?

Аватар пользователя xxandeadxx xxandeadxx 23 мая 2011 в 15:51

"xxandeadxx" wrote:
вешаете обработчик на ссылку "Добавить доктора"

http://api.jquery.com/click/

"xxandeadxx" wrote:
по наступлению события подгружаете с помощью ajax страницу с формой

http://api.jquery.com/jQuery.get/

"xxandeadxx" wrote:
в полученных данных находите форму по её id

http://api.jquery.com/category/selectors/

"xxandeadxx" wrote:
показываете в окне

http://jqueryui.com/demos/dialog/