You are here

function oa_core_form_node_form_alter in Open Atrium Core 7.2

Implements hook_form_FORM_ID_alter() node_form.

File

./oa_core.module, line 557

Code

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

  // Modify label on Panelizer layout field.
  if (isset($form['panelizer'])) {
    $form['panelizer']['page_manager']['name']['#title'] = t('Select Layout');
  }

  // This is a workaround for og not defaulting based on subgroups, only user direct groups.
  // Handling this for both normal users and admin users.
  $fields = array(
    OA_SPACE_FIELD,
  );
  if (empty($form['#node']->clone_from_original_nid)) {
    $fields[] = OA_PARENT_SPACE;
  }
  foreach ($fields as $field_name) {
    if (!empty($form['#node']->{$field_name}[LANGUAGE_NONE][0]['target_id']) && isset($form[$field_name][LANGUAGE_NONE][0]['default']) && empty($form[$field_name][LANGUAGE_NONE][0]['default']['#default_value']) && ($group = node_load($form['#node']->{$field_name}[LANGUAGE_NONE][0]['target_id'])) && (!isset($form[$field_name][LANGUAGE_NONE][0]['admin']['#default_value']) || strpos($form[$field_name][LANGUAGE_NONE][0]['admin']['#default_value'], $group->title . ' (' . $group->nid . ')') !== FALSE && in_array($group->nid, oa_core_get_groups_by_user(NULL, 'node')))) {
      $form[$field_name][LANGUAGE_NONE][0]['default']['#default_value'] = $group->title . ' (' . $group->nid . ')';
      $form[$field_name][LANGUAGE_NONE][0]['default']['#init'][$group->nid] = $form[$field_name][LANGUAGE_NONE][0]['default']['#default_value'];
      if (isset($form[$field_name][LANGUAGE_NONE][0]['admin'])) {
        $form[$field_name][LANGUAGE_NONE][0]['admin']['#default_value'] = '';
        $form[$field_name][LANGUAGE_NONE][0]['admin']['#init'] = array();
      }
    }
  }
  if (isset($form['field_oa_space_type']) && !isset($form['#node']->nid)) {

    // Creating a new space node, so limit space types
    $options = oa_core_get_allowed_space_terms();
    if (isset($options)) {
      $form['field_oa_space_type'][LANGUAGE_NONE]['#options'] = $options;
    }
  }
}