You are here

function og_subgroups_views_handler_filter_og_group_nid_override::value_form in Subgroups for Organic groups 6

File

modules/og_subgroups_views/includes/og_subgroups_views_handler_filter_og_group_nid_override.inc, line 60
This file overrides the og_views_handler_filter_og_group_nid handler in order to provide support for OG Subgroups.

Class

og_subgroups_views_handler_filter_og_group_nid_override
@file This file overrides the og_views_handler_filter_og_group_nid handler in order to provide support for OG Subgroups.

Code

function value_form(&$form, &$form_state) {
  if (!$this
    ->select_type_is_hierarchical_select()) {
    parent::value_form($form, $form_state);
  }
  else {
    $optional = $this->options['expose']['optional'];
    $view_name = $this->view->name;
    $filter_id = $this->options['id'];
    $display_id = _og_subgroup_hs_get_display_id_for_filter($this->view, $filter_id);
    $identifier = $this->options['expose']['identifier'];
    $default_value = !empty($this->view->exposed_input) ? $this->view->exposed_input[$identifier] : array();

    // Basic settings for the form item.
    $form['value']['#type'] = 'hierarchical_select';
    $form['value']['#default_value'] = $default_value;
    $form['value']['#required'] = !(bool) $optional;
    $form['value']['#config'] = array(
      'module' => 'og_subgroups_hs',
      'params' => array(
        'nid' => NULL,
        'optional' => (bool) $optional,
      ),
      'special_items' => array(
        OG_SUBGROUPS_HS_ANY_OPTION => array(
          'none',
          'exclusive',
        ),
      ),
      'render_flat_select' => 1,
      'path' => "og_subgroups_hs_views_json/{$view_name}/{$display_id}",
      'resizable' => 0,
    );

    // When not exposed: settings form.
    if (empty($form_state['exposed'])) {
      $default_value = isset($this->value) && !empty($this->value) ? $this->value : array();
      $form['value']['#config']['render_flat_select'] = 0;
      $form['value']['#config']['params']['optional'] = 0;
      $form['value']['#config']['special_items'] = array();
      $form['value']['#default_value'] = $default_value;

      // Add the dropbox to the HS widget in the filter settings form.
      $form['value']['#config']['dropbox'] = array(
        'status' => 1,
        'title' => t('Groups to filter by'),
      );
    }
  }
}