form_execute_handlers
includes/form.inc, строка 744
- Версии
- 6
form_execute_handlers($type, &$form, &$form_state)
A helper function used to execute custom validation and submission handlers for a given form. Button-specific handlers are checked first. If none exist, the function falls back to form-level handlers.
Параметры
$type
The type of handler to execute. 'validate'
or 'submit'
are the
defaults used by Form API.
$form
Ассоциативный массив, содержащий структуру формы
$form_state
A keyed array containing the current state of the form. If the user
submitted the form by clicking a button with custom handler functions
defined, those handlers will be stored here.
Связанные темы
Код
<?php
function form_execute_handlers($type, &$form, &$form_state) {
$return = FALSE;
if (isset($form_state[$type .'_handlers'])) {
$handlers = $form_state[$type .'_handlers'];
}
elseif (isset($form['#'. $type])) {
$handlers = $form['#'. $type];
}
else {
$handlers = array();
}
foreach ($handlers as $function) {
if (function_exists($function)) {
// Check to see if a previous _submit handler has set a batch, but
// make sure we do not react to a batch that is already being processed
// (for instance if a batch operation performs a drupal_execute()).
if ($type == 'submit' && ($batch =& batch_get()) && !isset($batch['current_set'])) {
// Some previous _submit handler has set a batch. We store the call
// in a special 'control' batch set, for execution at the correct
// time during the batch processing workflow.
$batch['sets'][] = array('form_submit' => $function);
}
else {
$function($form, $form_state);
}
$return = TRUE;
}
}
return $return;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии