drupal_execute

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

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

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

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

Например:

// Зарегистрировать нового пользователя
$values['name'] = 'robo-user';
$values['mail'] = 'robouser@example.com';
$values['pass'] = 'password';
drupal_execute('user_register', $values);

// Создать новую ноду
$node = array('type' => 'story');
$values['title'] = 'My node';
$values['body'] = 'This is the body text!';
$values['name'] = 'robo-user';
drupal_execute('story_node_form', $values, $node);

Параметры

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

$form_values Массив значений, эмулирующий данные, возвращенные заполненной пользователем формой.

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

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

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

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

Код

<?php
function drupal_execute($form_id, $form_values) {
  $args = func_get_args();

  $form_id = array_shift($args);
  $form_values = array_shift($args);
  array_unshift($args, $form_id);

  if (isset($form_values)) {
    $form = call_user_func_array('drupal_retrieve_form', $args);
    $form['#post'] = $form_values;
    return drupal_process_form($form_id, $form);
  }
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

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