You are here

function _oa_subspaces_find_view_settings in Open Atrium Subspaces 7.2

Finding the active current configuration for each is a pane in the ***.

4 calls to _oa_subspaces_find_view_settings()
oa_subspaces_form_views_content_views_panes_content_type_edit_form_alter in ./oa_subspaces.module
Implements hook_form_FORM_ID_alter().
oa_subspaces_form_views_exposed_form_alter in ./oa_subspaces.module
Implements hook_form_FORM_ID_alter().
oa_subspaces_views_pre_view in ./oa_subspaces.module
Implements hook_views_pre_view().
oa_subspaces_views_query_alter in ./oa_subspaces.module
Implements hook_views_query_alter().

File

./oa_subspaces.module, line 230

Code

function _oa_subspaces_find_view_settings($view = NULL, $form_state = NULL) {
  $find = array(
    'og_subspaces_view_all',
    'og_subspaces_view_parent',
    'oa_section_ref_target_id',
    'og_group_ref_target_id',
    'og_group_ref_target_id_mine',
  );
  $return = array();
  foreach ($find as $key) {

    // check for a form key that always returns a value
    // otherwise checkboxes (like og_subspaces_view_all) cannot be unchecked
    // because they don't return any result in $_GET from browser
    if (isset($_GET['og_group_ref_target_id'])) {
      $return[$key] = isset($_GET[$key]) ? $_GET[$key] : NULL;
    }
    elseif (isset($_POST['exposed'][$key])) {
      $return[$key] = $_POST['exposed'][$key];
    }
    elseif ($form_state && isset($form_state['values']['exposed'][$key])) {
      $return[$key] = $form_state['values']['exposed'][$key];
    }
    elseif ($form_state && isset($form_state['values'][$key])) {
      $return[$key] = $form_state['values'][$key];
    }
    elseif ($form_state && isset($form_state['input'][$key])) {
      $return[$key] = $form_state['input'][$key];
    }
    elseif ($form_state && isset($form_state['conf']['exposed'][$key])) {
      $return[$key] = $form_state['conf']['exposed'][$key];
    }
    elseif ($view && isset($view->exposed_raw_input[$key])) {
      $return[$key] = $view->exposed_raw_input[$key];
    }
    elseif ($view && isset($view->exposed_input[$key])) {
      $return[$key] = $view->exposed_input[$key];
    }
    elseif ($view && isset($view->display_handler->options['pane_conf'][$key])) {
      $return[$key] = $view->display_handler->options['pane_conf'][$key];
    }
    else {
      $return[$key] = FALSE;
    }
    if ($return[$key] === 'All' || !is_numeric($return[$key])) {
      $return[$key] = FALSE;
    }
  }
  if (!empty($return['og_group_ref_target_id_mine'])) {
    $return['og_group_ref_target_id'] = FALSE;
    $return['og_subspaces_view_all'] = FALSE;
    $return['og_subspaces_view_parent'] = FALSE;
  }
  elseif (isset($return['og_group_ref_target_id']) && (empty($return['og_group_ref_target_id']) || $return['og_group_ref_target_id'] == OA_SPACE_CURRENT)) {
    if ($group = oa_core_get_space_context()) {
      $return['og_group_ref_target_id'] = $group;
    }
  }
  return $return;
}