You are here

function flexiform_manage_form_fields_form_submit in Flexiform 7

Submit handler for the flexiform_manage_form_fields_form

File

./flexiform.admin.inc, line 1114
Model type editing UI.

Code

function flexiform_manage_form_fields_form_submit($form, &$form_state) {
  $form_values = $form_state['values']['fields'];
  $flexiform = $form_state['#flexiform'];
  $elements = $form_state['#elements'];
  $element_path = '';
  foreach ($form_values as $element_namespace => $values) {
    if (in_array($element_namespace, $form['#elements'])) {
      $element = $elements[$element_namespace];
      $element
        ->setWeight($values['weight']);
      $flexiform
        ->updateElement($element);
    }
  }

  // Add an element to the form.
  $settings = array();
  if (!empty($form_values['_add_element']['field'])) {
    $values = $form_values['_add_element'];
    $settings['element_name'] = $values['field'];
    $settings['entity_namespace'] = $values['entity'];
    $element = FlexiformElement::createElement($flexiform, $settings);
    $element
      ->setWeight($values['weight']);
    $element
      ->setLabel($values['label']);
    $flexiform
      ->addElement($element);

    // Send the User to the Instance Settings page
  }

  // Sort out additional settings.
  $flexiform->settings['redirect'] = $form_state['values']['additional_settings']['redirect'];
  $flexiform->settings['buttons'] = $form_state['values']['additional_settings']['buttons'];
  $flexiform->settings['ajax'] = $form_state['values']['additional_settings']['ajax'];
  if (module_exists('honeypot')) {
    $flexiform->settings['honeypot'] = $form_state['values']['additional_settings']['honeypot'];
  }
  $flexiform
    ->save();
  drupal_set_message(t('Your settings have been saved'));
}