function ArgumentPluginBase::defaultSummaryForm
Same name in other branches
- 9 core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php \Drupal\views\Plugin\views\argument\ArgumentPluginBase::defaultSummaryForm()
- 8.9.x core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php \Drupal\views\Plugin\views\argument\ArgumentPluginBase::defaultSummaryForm()
- 10 core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php \Drupal\views\Plugin\views\argument\ArgumentPluginBase::defaultSummaryForm()
Provides a form for selecting summary options.
This is used when the default action displays a summary.
File
-
core/
modules/ views/ src/ Plugin/ views/ argument/ ArgumentPluginBase.php, line 672
Class
- ArgumentPluginBase
- Base class for argument (contextual filter) handler plugins.
Namespace
Drupal\views\Plugin\views\argumentCode
public function defaultSummaryForm(&$form, FormStateInterface $form_state) {
$style_plugins = Views::pluginManager('style')->getDefinitions();
$summary_plugins = [];
$format_options = [];
foreach ($style_plugins as $key => $plugin) {
if (isset($plugin['display_types']) && in_array('summary', $plugin['display_types'])) {
$summary_plugins[$key] = $plugin;
$format_options[$key] = $plugin['title'];
}
}
$form['summary'] = [
// Views custom key, moves this element to the appropriate container
// under the radio button.
'#argument_option' => 'summary',
];
$form['summary']['sort_order'] = [
'#type' => 'radios',
'#title' => $this->t('Sort order'),
'#options' => [
'asc' => $this->t('Ascending'),
'desc' => $this->t('Descending'),
],
'#default_value' => $this->options['summary']['sort_order'],
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'summary',
],
],
],
];
$form['summary']['number_of_records'] = [
'#type' => 'radios',
'#title' => $this->t('Sort by'),
'#default_value' => $this->options['summary']['number_of_records'],
'#options' => [
0 => $this->getSortName(),
1 => $this->t('Number of records'),
],
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'summary',
],
],
],
];
$form['summary']['format'] = [
'#type' => 'radios',
'#title' => $this->t('Format'),
'#options' => $format_options,
'#default_value' => $this->options['summary']['format'],
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'summary',
],
],
],
];
foreach ($summary_plugins as $id => $info) {
$plugin = $this->getPlugin('style', $id);
if (!$plugin->usesOptions()) {
continue;
}
if ($plugin) {
$form['summary']['options'][$id] = [
'#prefix' => '<div id="edit-options-summary-options-' . $id . '-wrapper">',
'#suffix' => '</div>',
'#id' => 'edit-options-summary-options-' . $id,
'#type' => 'item',
// Trick it into checking input to make #process run.
'#input' => TRUE,
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'summary',
],
':input[name="options[summary][format]"]' => [
'value' => $id,
],
],
],
'#default_value' => [],
];
$options[$id] = $info['title'];
$plugin->buildOptionsForm($form['summary']['options'][$id], $form_state);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.