You are here

function better_exposed_filters_exposed_form_plugin::_bef_get_settings in Better Exposed Filters 7.3

Returns an array of default or current existing values for BEF settings.

This helps us as we add new options and prevents a lot of.


   if (isset($settings['new_settings'])) { ... }

as there will be a default value at all positions in the settings array. Also updates legacy settings to their new locations via _bef_update_legacy_settings().

Return value

array Multi-dimensional settings array.

4 calls to better_exposed_filters_exposed_form_plugin::_bef_get_settings()
better_exposed_filters_exposed_form_plugin::exposed_form_alter in ./better_exposed_filters_exposed_form_plugin.inc
Tweak the exposed filter form to show Better Exposed Filter options.
better_exposed_filters_exposed_form_plugin::options_form in ./better_exposed_filters_exposed_form_plugin.inc
Provide a form to edit options for this plugin.
better_exposed_filters_exposed_form_plugin::pre_render in ./better_exposed_filters_exposed_form_plugin.inc
Pre render callback to append the 'no values found' text if input required options is enabled.
better_exposed_filters_exposed_form_plugin::query in ./better_exposed_filters_exposed_form_plugin.inc
Query callback, intervenes if no filters are applied and input is required.

File

./better_exposed_filters_exposed_form_plugin.inc, line 1963
Provides an Better Exposed Filters exposed form plugin for View 3.x.

Class

better_exposed_filters_exposed_form_plugin
Better exposed filter form plugin class.

Code

function _bef_get_settings() {

  // General, sort, pagers, etc.
  $defaults = array(
    'general' => array(
      'input_required' => FALSE,
      'text_input_required' => array(
        'text_input_required' => array(
          'value' => t('Select any filter and click on Apply to see results'),
          'format' => filter_default_format(),
        ),
      ),
      'allow_secondary' => FALSE,
      'secondary_label' => t('Advanced options'),
      'secondary_collapse_override' => 0,
    ),
    'sort' => array(
      'bef_format' => 'default',
      'advanced' => array(
        'collapsible' => FALSE,
        'collapsible_label' => '',
        'combine' => FALSE,
        'combine_param' => 'sort_bef_combine',
        'combine_rewrite' => '',
        'reset' => FALSE,
        'reset_label' => '',
        'is_secondary' => FALSE,
        'autosubmit' => FALSE,
      ),
    ),
    'pager' => array(
      'bef_format' => 'default',
      'is_secondary' => FALSE,
    ),
  );

  // Update legacy settings in the exposed form settings form. This
  // keep us from losing settings when an option is put into an
  // 'advanced options' fieldset.
  $current = $this
    ->_bef_update_legacy_settings($this->options['bef']);

  // Collect existing values or use defaults.
  $settings = $this
    ->_bef_set_defaults($defaults, $current);

  // Filter default values.
  $filter_defaults = array(
    'bef_format' => 'default',
    'more_options' => array(
      'bef_select_all_none' => FALSE,
      'bef_select_all_none_nested' => FALSE,
      'bef_collapsible' => FALSE,
      'is_secondary' => FALSE,
      'bef_filter_description' => '',
      'any_label' => '',
      'bef_term_description' => FALSE,
      'autosubmit' => FALSE,
      'tokens' => array(
        'list' => array(),
        'available' => array(),
      ),
      'rewrite' => array(
        'filter_rewrite_values' => '',
      ),
      'datepicker_options' => '',
    ),
    'slider_options' => array(
      'bef_slider_min' => 0,
      'bef_slider_max' => 99999,
      'bef_slider_step' => 1,
      'bef_slider_animate' => '',
      'bef_slider_orientation' => 'horizontal',
    ),
  );

  // Go through each exposed filter and collect settings.
  foreach ($this->display->handler
    ->get_handlers('filter') as $label => $filter) {
    if (!$filter->options['exposed']) {
      continue;
    }

    // Get existing values or use defaults.
    $filter_current = isset($this->options['bef'][$label]) ? $this->options['bef'][$label] : array();
    $settings[$label] = $this
      ->_bef_set_defaults($filter_defaults, $filter_current);
  }
  return $settings;
}