You are here

function _noderelationships_nodereference_settings_form_submit in Node Relationships 6

Submit handler for nodereference field settings form.

1 string reference to '_noderelationships_nodereference_settings_form_submit'
_noderelationships_cck_admin_forms_alter in ./noderelationships.admin.inc
Alter CCK administration forms.

File

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

Code

function _noderelationships_nodereference_settings_form_submit($form, &$form_state) {

  // Get rid of information about back references that are no longer enabled.
  $form_values = $form_state['values'];
  $nodetype = $form_values['type_name'];
  $field_name = $form_values['field_name'];
  $referenceable_types = !empty($form_values['referenceable_types']) ? array_filter($form_values['referenceable_types']) : array();
  $back_references = noderelationships_settings_list("relation_type = 'backref' AND related_type = '%s' AND field_name = '%s'", $nodetype, $field_name);
  $types_to_sync = array();
  foreach ($back_references as $back_reference) {
    if (!isset($referenceable_types[$back_reference->type_name])) {
      noderelationships_settings_delete("relation_type = 'backref' AND type_name = '%s' AND field_name = '%s'", $back_reference->type_name, $field_name);
      if (!isset($types_to_sync[$back_reference->type_name])) {
        $types_to_sync[$back_reference->type_name] = $back_reference->type_name;
      }
    }
  }

  // Synchronize back reference settings with back reference fields.
  noderelationships_cck_backref_sync_fields($types_to_sync);
}