class QueryParameter
A query parameter argument default handler.
Plugin annotation
@ViewsArgumentDefault(
  id = "query_parameter",
  title = @Translation("Query parameter")
)
  
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
- class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase extends \Drupal\views\Plugin\views\PluginBase
- class \Drupal\views\Plugin\views\argument_default\QueryParameter implements \Drupal\Core\Cache\CacheableDependencyInterface extends \Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase
 
 
 - class \Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase extends \Drupal\views\Plugin\views\PluginBase
 
 - class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase
 
 - class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
 
Expanded class hierarchy of QueryParameter
Related topics
1 file declares its use of QueryParameter
- QueryParameterTest.php in core/
modules/ views/ tests/ src/ Unit/ Plugin/ argument_default/ QueryParameterTest.php  
File
- 
              core/
modules/ views/ src/ Plugin/ views/ argument_default/ QueryParameter.php, line 20  
Namespace
Drupal\views\Plugin\views\argument_defaultView source
class QueryParameter extends ArgumentDefaultPluginBase implements CacheableDependencyInterface {
  
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['query_param'] = [
      'default' => '',
    ];
    $options['fallback'] = [
      'default' => '',
    ];
    $options['multiple'] = [
      'default' => 'and',
    ];
    return $options;
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $form['query_param'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Query parameter'),
      '#description' => $this->t('The query parameter to use.'),
      '#default_value' => $this->options['query_param'],
    ];
    $form['fallback'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Fallback value'),
      '#description' => $this->t('The fallback value to use when the above query parameter is not present.'),
      '#default_value' => $this->options['fallback'],
    ];
    $form['multiple'] = [
      '#type' => 'radios',
      '#title' => $this->t('Multiple values'),
      '#description' => $this->t('Conjunction to use when handling multiple values. E.g. "?value[0]=a&value[1]=b".'),
      '#default_value' => $this->options['multiple'],
      '#options' => [
        'and' => $this->t('AND'),
        'or' => $this->t('OR'),
      ],
    ];
  }
  
  /**
   * {@inheritdoc}
   */
  public function getArgument() {
    $current_request = $this->view
      ->getRequest();
    // Convert a[b][c][d] into ['a', 'b', 'c', 'd'].
    $path = array_filter(preg_split('#(\\[|\\]\\[|\\])#', $this->options['query_param']));
    if ($current_request->query
      ->has($path[0])) {
      $query = $current_request->query
        ->all();
      $param = NestedArray::getValue($query, $path);
      if (is_array($param)) {
        $conjunction = $this->options['multiple'] == 'and' ? ',' : '+';
        $param = implode($conjunction, $param);
      }
      return $param;
    }
    else {
      // Otherwise, use the fixed fallback value.
      return $this->options['fallback'];
    }
  }
  
  /**
   * {@inheritdoc}
   */
  public function getCacheMaxAge() {
    return Cache::PERMANENT;
  }
  
  /**
   * {@inheritdoc}
   */
  public function getCacheContexts() {
    return [
      'url',
    ];
  }
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides | 
|---|---|---|---|---|---|
| ArgumentDefaultPluginBase::$argument | protected | property | The argument handler instance associated with this plugin. | ||
| ArgumentDefaultPluginBase::access | public | function | Determine if the administrator has the privileges to use this plugin. | ||
| ArgumentDefaultPluginBase::checkAccess | protected | function | Disables the given option if the user does not have access. | ||
| ArgumentDefaultPluginBase::getCacheTags | public | function | |||
| ArgumentDefaultPluginBase::setArgument | public | function | Sets the parent argument this plugin is associated with. | ||
| ArgumentDefaultPluginBase::submitOptionsForm | public | function | Provide the default form for submitting options. | Overrides PluginBase::submitOptionsForm | 1 | 
| ArgumentDefaultPluginBase::validateOptionsForm | public | function | Provide the default form for validating options. | Overrides PluginBase::validateOptionsForm | |
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | ||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | ||
| DependencySerializationTrait::__sleep | public | function | 2 | ||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | |
| MessengerTrait::$messenger | protected | property | The messenger. | 27 | |
| MessengerTrait::messenger | public | function | Gets the messenger. | 27 | |
| MessengerTrait::setMessenger | public | function | Sets the messenger. | ||
| PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | |
| PluginBase::$definition | public | property | Plugins' definition. | ||
| PluginBase::$displayHandler | public | property | The display object this plugin is for. | ||
| PluginBase::$options | public | property | Options for this plugin will be held here. | ||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | |
| PluginBase::$pluginId | protected | property | The plugin_id. | ||
| PluginBase::$renderer | protected | property | Stores the render API renderer. | 3 | |
| PluginBase::$usesOptions | protected | property | Denotes whether the plugin has an additional options form. | 8 | |
| PluginBase::$view | public | property | The top object of a view. | 1 | |
| PluginBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides DependentPluginInterface::calculateDependencies | 14 | 
| PluginBase::create | public static | function | Creates an instance of the plugin. | Overrides ContainerFactoryPluginInterface::create | 63 | 
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | |||
| PluginBase::destroy | public | function | Clears a plugin. | Overrides ViewsPluginInterface::destroy | 2 | 
| PluginBase::doFilterByDefinedOptions | protected | function | Do the work to filter out stored options depending on the defined options. | ||
| PluginBase::filterByDefinedOptions | public | function | Filter out stored options depending on the defined options. | Overrides ViewsPluginInterface::filterByDefinedOptions | |
| PluginBase::getAvailableGlobalTokens | public | function | Returns an array of available token replacements. | Overrides ViewsPluginInterface::getAvailableGlobalTokens | |
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | |
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | |
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | 
| PluginBase::getPluginId | public | function | Gets the plugin_id of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | |
| PluginBase::getProvider | public | function | Returns the plugin provider. | Overrides ViewsPluginInterface::getProvider | |
| PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | |
| PluginBase::globalTokenForm | public | function | Adds elements for available core tokens to a form. | Overrides ViewsPluginInterface::globalTokenForm | |
| PluginBase::globalTokenReplace | public | function | Returns a string with any core tokens replaced. | Overrides ViewsPluginInterface::globalTokenReplace | |
| PluginBase::INCLUDE_ENTITY | constant | Include entity row languages when listing languages. | |||
| PluginBase::INCLUDE_NEGOTIATED | constant | Include negotiated languages when listing languages. | |||
| PluginBase::init | public | function | Initialize the plugin. | Overrides ViewsPluginInterface::init | 6 | 
| PluginBase::isConfigurable | public | function | Determines if the plugin is configurable. | ||
| PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | ||
| PluginBase::pluginTitle | public | function | Return the human readable name of the display. | Overrides ViewsPluginInterface::pluginTitle | |
| PluginBase::preRenderAddFieldsetMarkup | public static | function | Moves form elements into fieldsets for presentation purposes. | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | |
| PluginBase::preRenderFlattenData | public static | function | Flattens the structure of form elements. | Overrides ViewsPluginInterface::preRenderFlattenData | |
| PluginBase::query | public | function | Add anything to the query that we might need to. | Overrides ViewsPluginInterface::query | 8 | 
| PluginBase::queryLanguageSubstitutions | public static | function | Returns substitutions for Views queries for languages. | ||
| PluginBase::setOptionDefaults | protected | function | Fills up the options of the plugin with defaults. | ||
| PluginBase::summaryTitle | public | function | Returns the summary of the settings in the display. | Overrides ViewsPluginInterface::summaryTitle | 6 | 
| PluginBase::themeFunctions | public | function | Provide a full list of possible theme templates used by this style. | Overrides ViewsPluginInterface::themeFunctions | 1 | 
| PluginBase::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | 
| PluginBase::unpackOptions | public | function | Unpacks options over our existing defaults. | Overrides ViewsPluginInterface::unpackOptions | |
| PluginBase::usesOptions | public | function | Returns the usesOptions property. | Overrides ViewsPluginInterface::usesOptions | 8 | 
| PluginBase::validate | public | function | Validate that the plugin is correct and can be saved. | Overrides ViewsPluginInterface::validate | 6 | 
| PluginBase::viewsTokenReplace | protected | function | Replaces Views' tokens in a given string. | 1 | |
| PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT | constant | Query string to indicate the site default language. | |||
| PluginBase::__construct | public | function | Constructs a PluginBase object. | Overrides PluginBase::__construct | 19 | 
| QueryParameter::buildOptionsForm | public | function | Provide the default form for setting options. | Overrides ArgumentDefaultPluginBase::buildOptionsForm | |
| QueryParameter::defineOptions | protected | function | Retrieve the options when this is a new access control plugin. | Overrides ArgumentDefaultPluginBase::defineOptions | |
| QueryParameter::getArgument | public | function | Return the default argument. | Overrides ArgumentDefaultPluginBase::getArgument | |
| QueryParameter::getCacheContexts | public | function | The cache contexts associated with this object. | Overrides CacheableDependencyInterface::getCacheContexts | |
| QueryParameter::getCacheMaxAge | public | function | The maximum age for which this object may be cached. | Overrides CacheableDependencyInterface::getCacheMaxAge | |
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | ||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | ||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | ||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | |
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | ||
| TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | |||
| TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | |||
| TrustedCallbackInterface::TRIGGER_WARNING | constant | Untrusted callbacks trigger E_USER_WARNING errors. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.