drupal_execute

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/form.inc, строка 292

Версии
5
drupal_execute($form_id, $form_values)
6
drupal_execute($form_id, &$form_state)

Извлекает форму по form_id, заполняет ее значениями из $form_state['values'], обрабатывает, и возвращает ошибки обработки этой формы. Эта функция — аналог drupal_get_form(), используемый для программной работы с формами.

// Зарегистрировать нового пользователя
$form_state = array();
$form_state['values']['name'] = 'robo-user';
$form_state['values']['mail'] = 'robouser@example.com';
$form_state['values']['pass'] = 'password';
$form_state['values']['op'] = t('Create new account');
drupal_execute('user_register', $form_state);
// Создать новую ноду
$form_state = array();
module_load_include('inc', 'node', 'node.pages');
$node = array('type' => 'story');
$form_state['values']['title'] = 'My node';
$form_state['values']['body'] = 'This is the body text!';
$form_state['values']['name'] = 'robo-user';
$form_state['values']['op'] = t('Save');
drupal_execute('story_node_form', $form_state, (object)$node);

Параметры

$form_id Уникальная строка, идентифицирующая форму. Если существует функция с таким же именем, она вызывается для формирования соответствующей формы. Модули, которые генерируют несколько одинаковых (или очень похожих) форм, используя разные $form_id могут реализовать функцию hook_forms(), которая связывает разные значения $form_id с соответствующей функцией-конструктором формы. Примеры можно найти в node_forms(), search_forms() и user_forms().

$form_state Ассоциативный массив, содержащий текущее состояние формы. Наиболее важным в этом массиве является $form_state['values'] — массив, элементами которого на форме эмулируется пользовательский ввод в переменной $_POST.

... Любые дополнительные аргументы будут переданы всем функциям, которые вызывает в процессе работы drupal_execute(), в том числе уникальной функции-конструктор формы. Например, форме node_edit требуется, чтобы при вызове ей с помощью этого дополнительного параметра был передан объект ноды.

Возвращаемое значение

Ошибки валидации формы, если такие были обнаружены.

Связанные темы

Код

<?php
function drupal_execute($form_id, &$form_state) {
  $args = func_get_args();
  $form = call_user_func_array('drupal_retrieve_form', $args);
  $form['#post'] = $form_state['values'];
  drupal_prepare_form($form_id, $form, $form_state);
  drupal_process_form($form_id, $form, $form_state);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему