You are here

function noderelationships_admin_settings_backref_submit in Node Relationships 6

Submit handler for the back reference settings form.

File

./noderelationships.admin.inc, line 578
Implementation of the administration pages of the module.

Code

function noderelationships_admin_settings_backref_submit($form, &$form_state) {
  $form_values = $form_state['values'];
  $settings = noderelationships_settings_load($form['#noderelationships-type']);

  // Move form values to settings array.
  $settings['backref'] = array(
    'regions' => array(),
  );
  foreach (array_keys(noderelationships_get_back_reference_regions()) as $region) {
    foreach ($form_values['back_reference_region'] as $relation_key => $relation_region) {
      if ($region == $relation_region) {
        if (!isset($settings['backref']['regions'][$region])) {
          $settings['backref']['regions'][$region] = array();
        }
        $settings['backref']['regions'][$region][$relation_key] = array(
          'weight' => $form_values['weight'][$relation_key],
          'back_reference_view' => $form_values['back_reference_view'][$relation_key],
        );
      }
    }
  }

  // Update settings and clear caches if changes exist.
  if (noderelationships_settings_save($form['#noderelationships-type'], $settings)) {
    noderelationships_cache_clear_all();
  }
  drupal_set_message(t('The settings have been saved.'));
}