class SearchPluginBase
Same name in other branches
- 9 core/modules/search/src/Plugin/SearchPluginBase.php \Drupal\search\Plugin\SearchPluginBase
- 8.9.x core/modules/search/src/Plugin/SearchPluginBase.php \Drupal\search\Plugin\SearchPluginBase
- 11.x core/modules/search/src/Plugin/SearchPluginBase.php \Drupal\search\Plugin\SearchPluginBase
Defines a base class for plugins wishing to support search.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
- class \Drupal\search\Plugin\SearchPluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\search\Plugin\SearchInterface, \Drupal\Core\Cache\RefinableCacheableDependencyInterface uses \Drupal\Core\Cache\RefinableCacheableDependencyTrait
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
Expanded class hierarchy of SearchPluginBase
2 files declare their use of SearchPluginBase
- HelpSearch.php in core/
modules/ help/ src/ Plugin/ Search/ HelpSearch.php - UserSearch.php in core/
modules/ user/ src/ Plugin/ Search/ UserSearch.php
File
-
core/
modules/ search/ src/ Plugin/ SearchPluginBase.php, line 16
Namespace
Drupal\search\PluginView source
abstract class SearchPluginBase extends PluginBase implements ContainerFactoryPluginInterface, SearchInterface, RefinableCacheableDependencyInterface {
use RefinableCacheableDependencyTrait;
/**
* The keywords to use in a search.
*
* @var string
*/
protected $keywords;
/**
* Array of parameters from the query string from the request.
*
* @var array
*/
protected $searchParameters;
/**
* Array of attributes - usually from the request object.
*
* @var array
*/
protected $searchAttributes;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition);
}
/**
* {@inheritdoc}
*/
public function setSearch($keywords, array $parameters, array $attributes) {
$this->keywords = (string) $keywords;
$this->searchParameters = $parameters;
$this->searchAttributes = $attributes;
return $this;
}
/**
* {@inheritdoc}
*/
public function getKeywords() {
return $this->keywords;
}
/**
* {@inheritdoc}
*/
public function getParameters() {
return $this->searchParameters;
}
/**
* {@inheritdoc}
*/
public function getAttributes() {
return $this->searchAttributes;
}
/**
* {@inheritdoc}
*/
public function isSearchExecutable() {
// Default implementation suitable for plugins that only use keywords.
return !empty($this->keywords);
}
/**
* {@inheritdoc}
*/
public function getType() {
return NULL;
}
/**
* {@inheritdoc}
*/
public function buildResults() {
$results = $this->execute();
$built = [];
foreach ($results as $result) {
$built[] = [
'#theme' => 'search_result',
'#result' => $result,
'#plugin_id' => $this->getPluginId(),
];
}
return $built;
}
/**
* {@inheritdoc}
*/
public function searchFormAlter(array &$form, FormStateInterface $form_state) {
// Empty default implementation.
}
/**
* {@inheritdoc}
*/
public function suggestedTitle() {
// If the user entered a search string, truncate it and append it to the
// title.
if (!empty($this->keywords)) {
return $this->t('Search for @keywords', [
'@keywords' => Unicode::truncate($this->keywords, 60, TRUE, TRUE),
]);
}
// Use the default 'Search' title.
return $this->t('Search');
}
/**
* {@inheritdoc}
*/
public function buildSearchUrlQuery(FormStateInterface $form_state) {
// Grab the keywords entered in the form and put them as 'keys' in the GET.
$keys = trim($form_state->getValue('keys'));
$query = [
'keys' => $keys,
];
return $query;
}
/**
* {@inheritdoc}
*/
public function getHelp() {
// This default search help is appropriate for plugins like NodeSearch
// that use the SearchQuery class.
$help = [
'list' => [
'#theme' => 'item_list',
'#items' => [
$this->t('Search looks for exact, case-insensitive keywords; keywords shorter than a minimum length are ignored.'),
$this->t('Use upper-case OR to get more results. Example: cat OR dog (content contains either "cat" or "dog").'),
$this->t('You can use upper-case AND to require all words, but this is the same as the default behavior. Example: cat AND dog (same as cat dog, content must contain both "cat" and "dog").'),
$this->t('Use quotes to search for a phrase. Example: "the cat eats mice".'),
$this->t('You can precede keywords by - to exclude them; you must still have at least one "positive" keyword. Example: cat -dog (content must contain cat and cannot contain dog).'),
],
],
];
return $help;
}
/**
* {@inheritdoc}
*/
public function usesAdminTheme() {
return $this->pluginDefinition['use_admin_theme'];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
CacheableDependencyTrait::$cacheContexts | protected | property | Cache contexts. | ||
CacheableDependencyTrait::$cacheMaxAge | protected | property | Cache max-age. | ||
CacheableDependencyTrait::$cacheTags | protected | property | Cache tags. | ||
CacheableDependencyTrait::getCacheContexts | public | function | 4 | ||
CacheableDependencyTrait::getCacheMaxAge | public | function | 4 | ||
CacheableDependencyTrait::getCacheTags | public | function | 4 | ||
CacheableDependencyTrait::setCacheability | protected | function | Sets cacheability; useful for value object constructors. | ||
PluginInspectionInterface::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | 6 | |
PluginInspectionInterface::getPluginId | public | function | Gets the plugin ID of the plugin instance. | 2 | |
RefinableCacheableDependencyTrait::addCacheableDependency | public | function | 1 | ||
RefinableCacheableDependencyTrait::addCacheContexts | public | function | |||
RefinableCacheableDependencyTrait::addCacheTags | public | function | |||
RefinableCacheableDependencyTrait::mergeCacheMaxAge | public | function | |||
SearchInterface::execute | public | function | Executes the search. | 4 | |
SearchPluginBase::$keywords | protected | property | The keywords to use in a search. | ||
SearchPluginBase::$searchAttributes | protected | property | Array of attributes - usually from the request object. | ||
SearchPluginBase::$searchParameters | protected | property | Array of parameters from the query string from the request. | ||
SearchPluginBase::buildResults | public | function | Executes the search and builds render arrays for the result items. | Overrides SearchInterface::buildResults | 1 |
SearchPluginBase::buildSearchUrlQuery | public | function | Builds the URL GET query parameters array for search. | Overrides SearchInterface::buildSearchUrlQuery | 1 |
SearchPluginBase::create | public static | function | Creates an instance of the plugin. | Overrides ContainerFactoryPluginInterface::create | 3 |
SearchPluginBase::getAttributes | public | function | Returns the currently set attributes (from the request). | Overrides SearchInterface::getAttributes | |
SearchPluginBase::getHelp | public | function | Returns the searching help. | Overrides SearchInterface::getHelp | 1 |
SearchPluginBase::getKeywords | public | function | Returns the currently set keywords of the plugin instance. | Overrides SearchInterface::getKeywords | |
SearchPluginBase::getParameters | public | function | Returns the current parameters set using setSearch(). | Overrides SearchInterface::getParameters | |
SearchPluginBase::getType | public | function | Returns the search index type this plugin uses. | Overrides SearchInterface::getType | 2 |
SearchPluginBase::isSearchExecutable | public | function | Verifies if the values set via setSearch() are valid and sufficient. | Overrides SearchInterface::isSearchExecutable | 2 |
SearchPluginBase::searchFormAlter | public | function | Alters the search form when being built for a given plugin. | Overrides SearchInterface::searchFormAlter | 1 |
SearchPluginBase::setSearch | public | function | Sets the keywords, parameters, and attributes to be used by execute(). | Overrides SearchInterface::setSearch | 1 |
SearchPluginBase::suggestedTitle | public | function | Provides a suggested title for a page of search results. | Overrides SearchInterface::suggestedTitle | |
SearchPluginBase::usesAdminTheme | public | function | Returns whether or not search results should be displayed in admin theme. | Overrides SearchInterface::usesAdminTheme |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.