public function ArgumentPluginBase::defaultArgumentForm in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php \Drupal\views\Plugin\views\argument\ArgumentPluginBase::defaultArgumentForm()
Provide a form for selecting the default argument when the default action is set to provide default argument.
1 call to ArgumentPluginBase::defaultArgumentForm()
- Date::defaultArgumentForm in core/
modules/ views/ src/ Plugin/ views/ argument/ Date.php - Add an option to set the default value to the current date.
1 method overrides ArgumentPluginBase::defaultArgumentForm()
- Date::defaultArgumentForm in core/
modules/ views/ src/ Plugin/ views/ argument/ Date.php - Add an option to set the default value to the current date.
File
- core/
modules/ views/ src/ Plugin/ views/ argument/ ArgumentPluginBase.php, line 553
Class
- ArgumentPluginBase
- Base class for argument (contextual filter) handler plugins.
Namespace
Drupal\views\Plugin\views\argumentCode
public function defaultArgumentForm(&$form, FormStateInterface $form_state) {
$plugins = Views::pluginManager('argument_default')
->getDefinitions();
$options = [];
$form['default_argument_skip_url'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Skip default argument for view URL'),
'#default_value' => $this->options['default_argument_skip_url'],
'#description' => $this
->t('Select whether to include this default argument when constructing the URL for this view. Skipping default arguments is useful e.g. in the case of feeds.'),
];
$form['default_argument_type'] = [
'#prefix' => '<div id="edit-options-default-argument-type-wrapper">',
'#suffix' => '</div>',
'#type' => 'select',
'#id' => 'edit-options-default-argument-type',
'#title' => $this
->t('Type'),
'#default_value' => $this->options['default_argument_type'],
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'default',
],
],
],
// Views custom key, moves this element to the appropriate container
// under the radio button.
'#argument_option' => 'default',
];
foreach ($plugins as $id => $info) {
if (!empty($info['no_ui'])) {
continue;
}
$plugin = $this
->getPlugin('argument_default', $id);
if ($plugin) {
if ($plugin
->access() || $this->options['default_argument_type'] == $id) {
$form['argument_default']['#argument_option'] = 'default';
$form['argument_default'][$id] = [
'#prefix' => '<div id="edit-options-argument-default-options-' . $id . '-wrapper">',
'#suffix' => '</div>',
'#id' => 'edit-options-argument-default-options-' . $id,
'#type' => 'item',
// Even if the plugin has no options add the key to the form_state.
'#input' => TRUE,
'#states' => [
'visible' => [
':input[name="options[default_action]"]' => [
'value' => 'default',
],
':input[name="options[default_argument_type]"]' => [
'value' => $id,
],
],
],
'#default_value' => [],
];
$options[$id] = $info['title'];
$plugin
->buildOptionsForm($form['argument_default'][$id], $form_state);
}
}
}
asort($options);
$form['default_argument_type']['#options'] = $options;
}