improvements-2.x-dev/modules/improvements_views/src/Plugin/views/argument_default/ExtendedQueryParameter.php
modules/improvements_views/src/Plugin/views/argument_default/ExtendedQueryParameter.php
<?php namespace Drupal\improvements_views\Plugin\views\argument_default; use Drupal\Component\Utility\NestedArray; use Drupal\views\Plugin\views\argument_default\QueryParameter; class ExtendedQueryParameter extends QueryParameter { /** * {@inheritdoc} */ public function getArgument() { if (str_contains($this->options['query_param'], '[')) { $request = $this->view->getRequest(); $options_query_param_array = explode('[', str_replace(']', '', $this->options['query_param'])); $request_query_params = $request->query->all(); if (NestedArray::keyExists($request_query_params, $options_query_param_array)) { $param = NestedArray::getValue($request_query_params, $options_query_param_array); if (is_array($param)) { $conjunction = ($this->options['multiple'] == 'and') ? ',' : '+'; $param = implode($conjunction, $param); } return $param; } else { return $this->options['fallback']; } } else { return parent::getArgument(); } } }