form_execute_handlers
function form_execute_handlers
form_execute_handlers($type, &$form, &$form_state)
Executes 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.
Parameters
$type: The type of handler to execute. 'validate' or 'submit' are the defaults used by Form API.
$form: An associative array containing the structure of the 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.
Related topics
File
- includes/form.inc, line 1494
- Functions for form and batch generation and processing.
Code
function form_execute_handlers($type, &$form, &$form_state) { $return = FALSE; // If there was a button pressed, use its handlers. if (isset($form_state[$type . '_handlers'])) { $handlers = $form_state[$type . '_handlers']; } // Otherwise, check for a form-level handler. elseif (isset($form['#' . $type])) { $handlers = $form['#' . $type]; } else { $handlers = array(); } foreach ($handlers as $function) { // Check 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_form_submit()). if ($type == 'submit' && ($batch = &batch_get()) && !isset($batch['id'])) { // Some previous submit handler has set a batch. To ensure correct // execution order, store the call in a special 'control' batch set. // See _batch_next_set(). $batch['sets'][] = array('form_submit' => $function); $batch['has_form_submits'] = TRUE; } else { $function($form, $form_state); } $return = TRUE; } return $return; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!form.inc/function/form_execute_handlers/7.x