You are here

function oa_subspaces_views_pre_view in Open Atrium Subspaces 7.2

Implements hook_views_pre_view().

File

./oa_subspaces.module, line 288

Code

function oa_subspaces_views_pre_view(&$view) {

  // If we are in a View where a specific group is being filtered for in an
  // exposed filter (as opposed to selecting '- Any -' or '- Active Space -').
  $style_setting = !empty($view->display_handler->options['pane_conf']['view_settings']) ? $view->display_handler->options['pane_conf']['view_settings'] : (!empty($view->display_handler->options['style_plugin']) ? $view->display_handler->options['style_plugin'] : NULL);
  $allowed_styles = variable_get('oa_subspaces_view_og_group_ref_styles', array(
    'table',
  ));
  if ($allowed_styles && $style_setting && in_array($style_setting, $allowed_styles) && !empty($view->display_handler->default_display->options['filters']['og_group_ref_target_id']['exposed'])) {
    $settings = _oa_subspaces_find_view_settings($view);
    $og_subspaces_view_all = $settings['og_subspaces_view_all'] && $settings['og_group_ref_target_id'] && oa_core_get_groups_by_parent($settings['og_group_ref_target_id']);
    $og_subspaces_view_parent = $settings['og_subspaces_view_parent'] && $settings['og_group_ref_target_id'] && oa_core_get_parents($settings['og_group_ref_target_id']);
    if ($og_subspaces_view_all || $og_subspaces_view_parent) {

      // If parent or children filtering is turned on (and there are any parents
      // or children to be found), then we add a field so we can see what group
      // the content is coming from.
      $view->display_handler->default_display->options['fields'] = array(
        'og_group_ref' => array(
          'id' => 'og_group_ref',
          'table' => 'og_membership',
          'field' => 'og_group_ref',
          'label' => 'Space',
          'settings' => array(
            'link' => 1,
          ),
        ),
      ) + $view->display_handler->default_display->options['fields'];
    }
  }
}