Drupal 6, Создать форму в узле, которая сохраняет данные в другой тип контента (cck) - PullRequest
1 голос
/ 19 мая 2011

Мне нужно создать форму в представлении (а не в edit ) типа содержимого A. В этой форме необходимо отправить данные в тип содержимого B.

Я заметил, что node/<nodeID/edit - это «действие» формы, которое позволяет вам редактировать узел.Но если я добавлю то же действие в мою форму на A, это покажет мне страницу узла редактирования B.

Моя форма проста:

<form action="xxx">
  <input type="text" name="cck_field_to_be_added_in_B" value="foobar">
</form>

Установка действия xxx isn 'Достаточно, потому что FAPI требует form_id и других вещей ... Итак, как я могу построить форму, которая является "правильной" и отправляет данные точным способом?

Любая идея?

---- РЕДАКТИРОВАТЬ ----

Используя решение rimian, это сработало.Вот детали:

Мне нужна была форма в виде узла, созданного с помощью CCK.Итак, у меня есть мой модуль с двумя функциями:

function getForm(){ 
    return drupal_get_form('buildForm');

}

function buildIngredientsForm(){
    $form[]... //bla bla bla build the form
    return $form;
}

Поскольку я хочу это внутри содержимого cck, я могу «взломать» систему тем CCK.Здесь объясните, как: http://drupal.org/node/206980

Теперь, когда вы захотите отобразить свою форму, просто наберите print mymodule.getForm();, и магия завершена.

С уважением, Сеголас

1 Ответ

1 голос
/ 19 мая 2011

Добавьте еще один обратный вызов в массив функций, которые вызываются при отправке формы редактирования узла. Вам нужно будет понять основы API форм. Это не так уж сложно.

Это выглядит примерно так:

$form['#submit'][] = 'my_function';

Тогда ..

function my_function() {
  //do stuff to the other node
}

См:
http://api.drupal.org/api/drupal/includes--form.inc/group/form_api
http://drupal.org/project/examples

...