NodeSearch
class NodeSearch extends ConfigurableSearchPluginBase implements AccessibleInterface, SearchIndexingInterface, TrustedCallbackInterface (View source)
Handles searching for node entities using the Search module index.
Traits
Provides a standard way to announce deprecated properties.
Trait for \Drupal\Core\Cache\RefinableCacheableDependencyInterface.
Trait for \Drupal\Core\Cache\CacheableDependencyInterface.
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Provides a trait for the messenger service.
Constants
| DERIVATIVE_SEPARATOR |
A string which is used to separate base plugin IDs from the derivative ID. |
| ADVANCED_FORM |
A constant for setting and checking the query string. |
Properties
| protected string | $pluginId | The plugin_id. |
from PluginBase |
| protected array | $pluginDefinition | The plugin implementation definition. |
from PluginBase |
| protected array | $configuration | Configuration information passed into the plugin. |
from PluginBase |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected MessengerInterface | $messenger | The messenger. |
|
| protected string[] | $cacheContexts | Cache contexts. |
from CacheableDependencyTrait |
| protected string[] | $cacheTags | Cache tags. |
from CacheableDependencyTrait |
| protected int | $cacheMaxAge | Cache max-age. |
from CacheableDependencyTrait |
| protected string | $keywords | The keywords to use in a search. |
from SearchPluginBase |
| protected array | $searchParameters | Array of parameters from the query string from the request. |
from SearchPluginBase |
| protected array | $searchAttributes | Array of attributes - usually from the request object. |
from SearchPluginBase |
| protected string | $searchPageId | The unique ID for the search page using this plugin. |
from ConfigurableSearchPluginBase |
| protected | $deprecatedProperties | {@inheritdoc} | |
| protected Connection | $database | The current database connection. |
|
| protected Connection | $databaseReplica | The replica database connection. |
|
| protected EntityTypeManagerInterface | $entityTypeManager | The entity type manager. |
|
| protected ModuleHandlerInterface | $moduleHandler | A module manager object. |
|
| protected Config | $searchSettings | A config object for 'search.settings'. |
|
| protected LanguageManagerInterface | $languageManager | The language manager. |
|
| protected AccountInterface | $account | The Drupal account to use for checking for access to advanced search. |
|
| protected RendererInterface | $renderer | The Renderer service to format the username and node. |
|
| protected SearchIndexInterface | $searchIndex | The search index. |
|
| protected array | $rankings | An array of additional rankings from hook_ranking(). |
|
| protected array | $advanced | The list of options and info for advanced search filters. |
Methods
Constructs a \Drupal\node\Plugin\Search\NodeSearch object.
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Sets cacheability; useful for value object constructors.
Creates an instance of the plugin.
Sets the keywords, parameters, and attributes to be used by execute().
Returns the currently set keywords of the plugin instance.
Returns the currently set attributes (from the request).
Verifies if the values set via setSearch() are valid and sufficient.
Returns the search index type this plugin uses.
Executes the search and builds render arrays for the result items.
Alters the search form when being built for a given plugin.
Provides a suggested title for a page of search results.
Builds the URL GET query parameters array for search.
Gets default configuration for this plugin.
Sets the configuration for this plugin instance.
Calculates dependencies for the configured plugin.
Sets the ID for the search page using this plugin.
Checks data value access.
Executes the search.
Queries to find search results, and sets status messages.
Removes the submitted by information from the build array.
Updates the search index for this plugin.
Clears the search index for this plugin.
Marks the search index for reindexing for this plugin.
Reports the status of indexing.
Parses the advanced search form default values.
Gathers ranking definitions from hook_ranking().
Lists the trusted callbacks provided by the implementing class.
Details
__construct(array $configuration, string $plugin_id, mixed $plugin_definition, Connection $database, EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, Config $search_settings, LanguageManagerInterface $language_manager, RendererInterface $renderer, MessengerInterface $messenger, AccountInterface $account = NULL, Connection $database_replica = NULL, SearchIndexInterface $search_index = NULL)
Constructs a \Drupal\node\Plugin\Search\NodeSearch object.
string
getPluginId()
Gets the plugin_id of the plugin instance.
string
getBaseId()
Gets the base_plugin_id of the plugin instance.
string|null
getDerivativeId()
Gets the derivative_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isConfigurable()
Determines if the plugin is configurable.
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
setMessenger(MessengerInterface $messenger)
Sets the messenger.
MessengerInterface
messenger()
Gets the messenger.
protected $this
setCacheability(CacheableDependencyInterface $cacheability)
Sets cacheability; useful for value object constructors.
getCacheTags()
{@inheritdoc}
getCacheContexts()
{@inheritdoc}
getCacheMaxAge()
{@inheritdoc}
addCacheableDependency($other_object)
{@inheritdoc}
addCacheContexts(array $cache_contexts)
{@inheritdoc}
addCacheTags(array $cache_tags)
{@inheritdoc}
mergeCacheMaxAge($max_age)
{@inheritdoc}
static ContainerFactoryPluginInterface
create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)
Creates an instance of the plugin.
$this
setSearch(string $keywords, array $parameters, array $attributes)
Sets the keywords, parameters, and attributes to be used by execute().
string
getKeywords()
Returns the currently set keywords of the plugin instance.
array
getParameters()
Returns the current parameters set using setSearch().
array
getAttributes()
Returns the currently set attributes (from the request).
bool
isSearchExecutable()
Verifies if the values set via setSearch() are valid and sufficient.
string|null
getType()
Returns the search index type this plugin uses.
array
buildResults()
Executes the search and builds render arrays for the result items.
searchFormAlter(array $form, FormStateInterface $form_state)
Alters the search form when being built for a given plugin.
The core search module only invokes this method on active module plugins when building a form for them in \Drupal\search\Form\SearchPageForm::buildForm(). A plugin implementing this will also need to implement the buildSearchUrlQuery() method.
string
suggestedTitle()
Provides a suggested title for a page of search results.
array
buildSearchUrlQuery(FormStateInterface $form_state)
Builds the URL GET query parameters array for search.
When the search form is submitted, a redirect is generated with the search input as GET query parameters. Plugins using the searchFormAlter() method to add form elements to the search form will need to override this method to gather the form input and add it to the GET query parameters.
array
getHelp()
Returns the searching help.
array
defaultConfiguration()
Gets default configuration for this plugin.
array
getConfiguration()
Gets this plugin's configuration.
setConfiguration(array $configuration)
Sets the configuration for this plugin instance.
validateConfigurationForm(array $form, FormStateInterface $form_state)
Form validation handler.
array
calculateDependencies()
Calculates dependencies for the configured plugin.
Dependencies are saved in the plugin's configuration entity and are used to determine configuration synchronization order. For example, if the plugin integrates with specific user roles, this method should return an array of dependencies listing the specified roles.
ConfigurableSearchPluginInterface
setSearchPageId(string $search_page_id)
Sets the ID for the search page using this plugin.
__get($name)
Allows to access deprecated/removed properties.
This method must be public.
bool|AccessResultInterface
access(string $operation = 'view', AccountInterface $account = NULL, bool $return_as_object = FALSE)
Checks data value access.
array
execute()
Executes the search.
protected StatementInterface|null
findResults()
Queries to find search results, and sets status messages.
This method can assume that $this->isSearchExecutable() has already been checked and returned TRUE.
protected array
prepareResults(StatementInterface $found)
Prepares search results for rendering.
array
removeSubmittedInfo(array $build)
Removes the submitted by information from the build array.
This information is being removed from the rendered node that is used to build the search result snippet. It just doesn't make sense to have it displayed in the snippet.
protected
addNodeRankings(SelectExtender $query)
Adds the configured rankings to the search query.
updateIndex()
Updates the search index for this plugin.
This method is called every cron run if the plugin has been set as an active search module on the Search settings page (admin/config/search/pages). It allows your module to add items to the built-in search index by calling the index() method on the search.index service class, or to add them to your module's own indexing mechanism.
When implementing this method, your module should index content items that were modified or added since the last run. There is a time limit for cron, so it is advisable to limit how many items you index per run using config('search.settings')->get('index.cron_limit') or with your own setting. And since the cron run could time out and abort in the middle of your run, you should update any needed internal bookkeeping on when items have last been indexed as you go rather than waiting to the end of indexing.
protected array
indexNode(NodeInterface $node)
Indexes a single node.
indexClear()
Clears the search index for this plugin.
When a request is made to clear all items from the search index related to this plugin, this method will be called. If this plugin uses the default search index, this method can call clear($type) method on the search.index service class to remove indexed items from the search database.
markForReindex()
Marks the search index for reindexing for this plugin.
When a request is made to mark all items from the search index related to this plugin for reindexing, this method will be called. If this plugin uses the default search index, this method can call markForReindex($type) method on the search.index service class to mark the items in the search database for reindexing.
array
indexStatus()
Reports the status of indexing.
The core search module only invokes this method on active module plugins. Implementing modules do not need to check whether they are active when calculating their return values.
protected array
parseAdvancedDefaults(array $f, string $keys)
Parses the advanced search form default values.
protected array
getRankings()
Gathers ranking definitions from hook_ranking().
array
buildConfigurationForm(array $form, FormStateInterface $form_state)
Form constructor.
Plugin forms are embedded in other forms. In order to know where the plugin form is located in the parent form, #parents and #array_parents must be known, but these are not available during the initial build phase. In order to have these properties available when building the plugin form's elements, let this method return a form element that has a #process callback and build the rest of the form in the callback. By the time the callback is executed, the element's #parents and #array_parents properties will have been set by the form API. For more documentation on #parents and
array_parents, see \Drupal\Core\Render\Element\FormElement.
submitConfigurationForm(array $form, FormStateInterface $form_state)
Form submission handler.
static string[]
trustedCallbacks()
Lists the trusted callbacks provided by the implementing class.
Trusted callbacks are public methods on the implementing class and can be invoked via \Drupal\Core\Security\DoTrustedCallbackTrait::doTrustedCallback().