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

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

Аватар пользователя gumk gumk 27 августа 2010 в 23:58

Добрый день, не подскажете как получить массив формы создания ноды в своем модуле?
на странице http://shvetsgroup.com/ru/blog/multistep-registration

нашел следующий код:

<?php  // Создаем дополнительную форму ноды.
  
$node_form drupal_retrieve_form($type .'_node_form'$form_state$node);
  
drupal_prepare_form($type .'_node_form'$node_form$form_state);?>

но в form_alter он не работает

Комментарии

Аватар пользователя annya@drupal.org annya@drupal.org 28 августа 2010 в 3:08

Насколько я знаю форму в форме выводить невалидно. Есть определенный перечень элементов которые можно выводить в форме. Выведите сначала одну форму, потом вторую.

Аватар пользователя gumk gumk 28 августа 2010 в 11:30

не так не получиться, нужно убрать сабмит у одной формы и от нее повесить обработчик на сабмит другой, а если не будет массива с формой сделать это сложно, тем более что одна форма вешается к другой через form_alert, а дважды ее в одном модуле не написать

Аватар пользователя annya@drupal.org annya@drupal.org 29 августа 2010 в 1:38

«тем более что одна форма вешается к другой через form_alert». Так это Вы ж ее туда и цепляете.

<?php
my_module_form_alter
(&$form, &$form_state$form_id) {
  switch(
$form_id) {
    case 
'id_формы_№1':
        if (
$key array_search('название_обработчика_формы_№1'form[#submit])) {
          
unset($form[#submit][$key]);
        
}
      break;

    case 

'id_формы_№2':
      
$form[#submit][] = 'название_обработчика_формы_№1';
      
break;
  }
}
?>

Как-то так...