function form_builder_field_configure_submit in Form Builder 6
Same name and namespace in other branches
- 7.2 includes/form_builder.admin.inc \form_builder_field_configure_submit()
- 7 includes/form_builder.admin.inc \form_builder_field_configure_submit()
File
- includes/
form_builder.admin.inc, line 690 - form_builder.admin.inc Administrative interface for editing forms.
Code
function form_builder_field_configure_submit(&$form, &$form_state) {
$form_type = $form['#form_type'];
$form_id = $form['#form_id'];
$element_id = $form['#element_id'];
$element = $form['#element'];
// Allow each element to do any necessary submission handling.
foreach (form_builder_get_element_properties($form_type, $element['#form_builder']['element_type']) as $property => $property_settings) {
if (isset($property_settings['submit'])) {
foreach ($property_settings['submit'] as $function) {
if (function_exists($function)) {
$function($form, $form_state);
}
}
}
}
// Allow the element to be updated in a hard-coded fashion by altering the
// $form['#element'] item. Using this approach skips the property check.
$element = $form['#element'];
// Update the field according to the settings in $form_state['values'].
$saveable = form_builder_get_saveable_properties($form_type, $element);
foreach ($form_state['values'] as $property => $value) {
if (in_array($property, $saveable)) {
// Remove empty properties entirely.
if ($value === '' || is_null($value)) {
unset($element['#' . $property]);
}
else {
$element['#' . $property] = $value;
}
}
}
// Update the form builder cache.
form_builder_cache_field_save($form_type, $form_id, $element);
if (isset($_GET['js'])) {
// Option A: Use the destination variable to do a drupal_goto(). Allows
// other submit handlers to add on extra functionality.
// The destination variable takes precedence over $form_state['redirect'].
//$_REQUEST['destination'] = 'admin/build/form-builder/json/' . $form_type . '/' . $form_id . '/' . $element_id;
// Option B: Immediately print the JSON and exit. Faster and requires only
// one HTTP request instead of two. Other submit handlers must be before
// this on.
form_builder_field_json($form_type, $form_id, $element_id);
}
}