You are here

class views_navigation_plugin_display_extender_views_navigation in Views navigation 7

Class views_navigation_plugin_display_extender_views_navigation.

Hierarchy

Expanded class hierarchy of views_navigation_plugin_display_extender_views_navigation

1 string reference to 'views_navigation_plugin_display_extender_views_navigation'
views_navigation_views_plugins in ./views_navigation.module
Implements hook_views_plugins().

File

views/views_navigation_plugin_display_extender_views_navigation.inc, line 11
Function to return plugin Display Extender entity view.

View source
class views_navigation_plugin_display_extender_views_navigation extends views_plugin_display_extender {

  /**
   * Function to alter the options definition form.
   */
  public function options_definition_alter(&$options) {
    $options['views_navigation'] = [
      'default' => FALSE,
      'translatable' => FALSE,
      'bool' => TRUE,
    ];
    $options['views_navigation_cycle'] = [
      'default' => FALSE,
      'translatable' => FALSE,
      'bool' => TRUE,
    ];
    $options['views_navigation_back'] = [
      'default' => FALSE,
      'translatable' => FALSE,
      'bool' => TRUE,
    ];
    $options['views_navigation_title'] = [
      'default' => FALSE,
      'translatable' => FALSE,
      'bool' => TRUE,
    ];
    $options['views_navigation_seo_first'] = [
      'default' => FALSE,
      'translatable' => FALSE,
      'bool' => TRUE,
    ];
  }

  /**
   * Function for return options form.
   */
  public function options_form(&$form, &$form_state) {
    switch ($form_state['section']) {
      case 'views_navigation':
        $form['#title'] .= t('Views navigation');
        $form['views_navigation'] = [
          '#type' => 'checkbox',
          '#title' => t('Add navigation links on entity pages accessed from this view'),
          '#default_value' => $this->display
            ->get_option('views_navigation'),
        ];
        $views_navigation_selector = ':input[name="views_navigation"]';
        $views_navigation_states = [
          'invisible' => [
            $views_navigation_selector => [
              'checked' => FALSE,
            ],
          ],
        ];
        $form['views_navigation_cycle'] = [
          '#type' => 'checkbox',
          '#title' => t('Cycling navigation (link to the first on the last entity)'),
          '#default_value' => $this->display
            ->get_option('views_navigation_cycle'),
          '#states' => $views_navigation_states,
        ];
        $form['views_navigation_back'] = [
          '#type' => 'checkbox',
          '#title' => t('Add a back link on entity pages accessed from this view'),
          '#default_value' => $this->display
            ->get_option('views_navigation_back'),
        ];
        $views_navigation_back_selector = ':input[name="views_navigation_back"]';
        $views_navigation_back_states = [
          'invisible' => [
            $views_navigation_back_selector => [
              'checked' => FALSE,
            ],
          ],
        ];
        $form['views_navigation_title'] = [
          '#type' => 'checkbox',
          '#title' => t("Use the view's title in back link text"),
          '#default_value' => $this->display
            ->get_option('views_navigation_title'),
          '#states' => $views_navigation_back_states,
        ];
        $form['views_navigation_seo_first'] = [
          '#type' => 'checkbox',
          '#title' => t('Improve SEO at the cost of performance'),
          '#description' => t('This will notably use entity labels for link texts. Can be SQL-greedy, to be avoided for big result sets.'),
          '#default_value' => $this->display
            ->get_option('views_navigation_seo_first'),
          '#states' => $views_navigation_states,
        ];
        break;
    }
  }

  /**
   * Submit callback for the options form.
   */
  public function options_submit(&$form, &$form_state) {
    switch ($form_state['section']) {
      case 'views_navigation':
        $this->display
          ->set_option('views_navigation', $form_state['values']['views_navigation'] ? TRUE : FALSE);
        $this->display
          ->set_option('views_navigation_cycle', $form_state['values']['views_navigation_cycle'] ? TRUE : FALSE);
        $this->display
          ->set_option('views_navigation_back', $form_state['values']['views_navigation_back'] ? TRUE : FALSE);
        $this->display
          ->set_option('views_navigation_title', $form_state['values']['views_navigation_title'] ? TRUE : FALSE);
        $this->display
          ->set_option('views_navigation_seo_first', $form_state['values']['views_navigation_seo_first'] ? TRUE : FALSE);
        break;
    }
  }

  /**
   * Function for options summary.
   */
  public function options_summary(&$categories, &$options) {
    $options['views_navigation'] = [
      'category' => 'other',
      'title' => t('Views navigation'),
      'desc' => t('Add navigation links on entity pages accessed from this view.'),
    ];
    if ($this->display
      ->get_option('views_navigation')) {
      if ($this->display
        ->get_option('views_navigation_cycle')) {
        $value = t('Cycling navigation');
      }
      else {
        $value = t('Linear navigation');
      }
      if ($this->display
        ->get_option('views_navigation_seo_first')) {
        $value .= ', ' . t('SEO first');
      }
      else {
        $value .= ', ' . t('performance first');
      }
      if ($this->display
        ->get_option('views_navigation_back')) {
        $value .= ' + ' . t('Back link');
        if ($this->display
          ->get_option('views_navigation_title')) {
          $value .= t(" with view's title");
        }
      }
    }
    else {
      if ($this->display
        ->get_option('views_navigation_back')) {
        $value = t('Back link');
        if ($this->display
          ->get_option('views_navigation_title')) {
          $value .= t(" with view's title");
        }
      }
      else {
        $value = t('None');
      }
    }
    $options['views_navigation']['value'] = $value;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
views_navigation_plugin_display_extender_views_navigation::options_definition_alter public function Function to alter the options definition form. Overrides views_plugin_display_extender::options_definition_alter
views_navigation_plugin_display_extender_views_navigation::options_form public function Function for return options form. Overrides views_plugin_display_extender::options_form
views_navigation_plugin_display_extender_views_navigation::options_submit public function Submit callback for the options form. Overrides views_plugin_display_extender::options_submit
views_navigation_plugin_display_extender_views_navigation::options_summary public function Function for options summary. Overrides views_plugin_display_extender::options_summary
views_object::$definition public property Handler's definition.
views_object::$options public property Except for displays, options for the object will be held here. 1
views_object::altered_option_definition function Collect this handler's option definition and alter them, ready for use.
views_object::construct public function Views handlers use a special construct function. 4
views_object::destroy public function Destructor. 2
views_object::export_option public function 1
views_object::export_options public function
views_object::export_option_always public function Always exports the option, regardless of the default value.
views_object::options Deprecated public function Set default options on this object. 1
views_object::option_definition public function Information about options for all kinds of purposes will be held here. 13
views_object::set_default_options public function Set default options.
views_object::set_definition public function Let the handler know what its full definition is.
views_object::unpack_options public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
views_object::unpack_translatable public function Unpack a single option definition.
views_object::unpack_translatables public function Unpacks each handler to store translatable texts.
views_object::_set_option_defaults public function
views_plugin::$display public property The current used views display.
views_plugin::$plugin_name public property The plugin name of this plugin, for example table or full.
views_plugin::$plugin_type public property The plugin type of this plugin, for example style or query.
views_plugin::$view public property The top object of a view. Overrides views_object::$view 1
views_plugin::additional_theme_functions public function Provide a list of additional theme functions for the theme info page.
views_plugin::plugin_title public function Return the human readable name of the display.
views_plugin::summary_title public function Returns the summary of the settings in the display. 8
views_plugin::theme_functions public function Provide a full list of possible theme templates used by this style.
views_plugin::validate public function Validate that the plugin is correct and can be saved. 3
views_plugin_display_extender::defaultable_sections public function Static member function to list which sections are defaultable and what items each section contains.
views_plugin_display_extender::init public function
views_plugin_display_extender::options_validate public function Validate the options form. Overrides views_plugin::options_validate
views_plugin_display_extender::pre_execute public function Set up any variables on the view prior to execution.
views_plugin_display_extender::query public function Inject anything into the query that the display_extender handler needs. Overrides views_plugin::query