You are here

function noderelationships_form_alter in Node Relationships 6

Implementation of hook_form_alter().

File

./noderelationships.module, line 369
This is the main script for the noderelationships module. It merely contains the implementation of hooks invoked by Drupal core, CCK, Views, etc. All common functions are externalized into several scripts that are included on demand.

Code

function noderelationships_form_alter(&$form, $form_state, $form_id) {

  // Alter CCK administration forms.
  if (in_array($form_id, array(
    'content_field_edit_form',
    'content_field_overview_form',
  ))) {

    // Delegate form manipulation to external script.
    module_load_include('inc', 'noderelationships');
    module_load_include('inc', 'noderelationships', 'noderelationships.admin');
    _noderelationships_cck_admin_forms_alter($form, $form_state, $form_id);
    return;
  }

  // Alter views ui / settings forms.
  if (strpos($form_id, 'views_ui_edit_') === 0 && isset($form_state['view']) && isset($form_state['view']->tag)) {
    if ($form_state['view']->tag == NODERELATIONSHIPS_BACKREF_VIEW_TAG || $form_state['view']->tag == NODERELATIONSHIPS_NODEREF_VIEW_TAG) {

      // Delegate form manipulation to external script.
      module_load_include('inc', 'noderelationships');
      module_load_include('inc', 'noderelationships', 'noderelationships.admin');
      _noderelationships_views_ui_form_alter($form, $form_state, $form_id, $form_state['view']->tag);
    }
    return;
  }

  // Alter views ui / clone view form.
  if ($form_id == 'views_ui_add_form' && isset($form['tag'])) {
    if ($form['tag']['#default_value'] == NODERELATIONSHIPS_BACKREF_VIEW_TAG || $form['tag']['#default_value'] == NODERELATIONSHIPS_NODEREF_VIEW_TAG) {

      // Delegate form manipulation to external script.
      module_load_include('inc', 'noderelationships');
      module_load_include('inc', 'noderelationships', 'noderelationships.admin');
      _noderelationships_views_ui_form_alter($form, $form_state, $form_id, $form['tag']['#default_value']);
    }
    return;
  }

  // Alter admin theme settings form.
  if ($form_id == 'system_admin_theme_settings') {
    module_load_include('inc', 'noderelationships', 'noderelationships.admin');
    _noderelationships_admin_theme_form_alter($form);
    return;
  }

  // Alter node form.
  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) {
    $type_name = $form['#node']->type;

    // Include common module functions.
    module_load_include('inc', 'noderelationships');

    // Obtain settings for nodereference extras for this type.
    $noderef_settings = noderelationships_settings_load($type_name, 'noderef');

    // Parent node processing only when we have settings for nodereference extras.
    if (!empty($noderef_settings['search_and_reference_view']) || !empty($noderef_settings['create_and_reference']) || !empty($noderef_settings['translate_and_reference']) && noderelationships_translation_supported_type($type_name)) {
      module_load_include('inc', 'noderelationships', 'noderelationships.pages');
      _noderelationships_parent_node_form_alter($form, $form_state, $type_name, $noderef_settings);
    }

    // Child node processing when the page request has been flagged to do so
    // from noderelationships_noderef_page().
    if (!empty($_GET['noderelationships_referrer_type']) && !empty($_GET['noderelationships_field_name'])) {
      module_load_include('inc', 'noderelationships', 'noderelationships.pages');
      _noderelationships_child_node_form_alter($form, $_GET['noderelationships_referrer_type'], $_GET['noderelationships_field_name']);
    }
    elseif (!empty($_GET['noderelationships_edit'])) {
      module_load_include('inc', 'noderelationships', 'noderelationships.pages');
      _noderelationships_child_edit_form_alter($form);
    }
    return;
  }
}