function WizardPluginBase::buildSorts

Same name in other branches
  1. 8.9.x core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildSorts()
  2. 10 core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildSorts()
  3. 11.x core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php \Drupal\views\Plugin\views\wizard\WizardPluginBase::buildSorts()

Builds the form structure for selecting the view's sort order.

By default, this adds a "sorted by [date]" filter (when it is available).

1 call to WizardPluginBase::buildSorts()
WizardPluginBase::buildForm in core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
Form callback to build other elements in the "show" form.

File

core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php, line 655

Class

WizardPluginBase
Base class for Views wizard plugins.

Namespace

Drupal\views\Plugin\views\wizard

Code

protected function buildSorts(&$form, FormStateInterface $form_state) {
    $sorts = [
        'none' => $this->t('Unsorted'),
    ];
    // Check if we are allowed to sort by creation date.
    $created_column = $this->getCreatedColumn();
    if ($created_column) {
        $sorts += [
            $created_column . ':DESC' => $this->t('Newest first'),
            $created_column . ':ASC' => $this->t('Oldest first'),
        ];
    }
    if ($available_sorts = $this->getAvailableSorts()) {
        $sorts += $available_sorts;
    }
    // If there is no sorts option available continue.
    if (!empty($sorts)) {
        $form['displays']['show']['sort'] = [
            '#type' => 'select',
            '#title' => $this->t('sorted by'),
            '#options' => $sorts,
            '#default_value' => isset($created_column) ? $created_column . ':DESC' : 'none',
        ];
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.