public function ExposedFormPluginBase::getCacheContexts in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php \Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase::getCacheContexts()
The cache contexts associated with this object.
These identify a specific variation/representation of the object.
Cache contexts are tokens: placeholders that are converted to cache keys by the @cache_contexts_manager service. The replacement value depends on the request context (the current URL, language, and so on). They're converted before storing an object in cache.
Return value
string[] An array of cache context tokens, used to generate a cache ID.
Overrides CacheableDependencyInterface::getCacheContexts
See also
\Drupal\Core\Cache\Context\CacheContextsManager::convertTokensToKeys()
File
- core/
modules/ views/ src/ Plugin/ views/ exposed_form/ ExposedFormPluginBase.php, line 350
Class
- ExposedFormPluginBase
- Base class for Views exposed filter form plugins.
Namespace
Drupal\views\Plugin\views\exposed_formCode
public function getCacheContexts() {
$contexts = [];
if ($this->options['expose_sort_order']) {
// The sort order query arg is just important in case there is an exposed
// sort order.
$has_exposed_sort_handler = FALSE;
/** @var \Drupal\views\Plugin\views\sort\SortPluginBase $sort_handler */
foreach ($this->displayHandler
->getHandlers('sort') as $sort_handler) {
if ($sort_handler
->isExposed()) {
$has_exposed_sort_handler = TRUE;
}
}
if ($has_exposed_sort_handler) {
$contexts[] = 'url.query_args:sort_order';
}
}
// Merge in cache contexts for all exposed filters to prevent display of
// cached forms.
foreach ($this->displayHandler
->getHandlers('filter') as $filter_handler) {
if ($filter_handler
->isExposed()) {
$contexts = Cache::mergeContexts($contexts, $filter_handler
->getCacheContexts());
}
}
return $contexts;
}