12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /**
- * @file
- * Hooks provided by the Search module.
- */
- /**
- * @addtogroup hooks
- * @{
- */
- /**
- * Preprocess text for search.
- *
- * This hook is called to preprocess both the text added to the search index
- * and the keywords users have submitted for searching. The same processing
- * needs to be applied to both so that searches will find matches.
- *
- * Possible uses:
- * - Adding spaces between words of Chinese or Japanese text.
- * - Stemming words down to their root words to allow matches between, for
- * instance, walk, walked, walking, and walks in searching.
- * - Expanding abbreviations and acronyms that occur in text.
- *
- * @param string $text
- * The text to preprocess. This is a single piece of plain text extracted
- * from between two HTML tags or from the search query. It will not contain
- * any HTML entities or HTML tags.
- * @param string|null $langcode
- * The language code for the language the text is in, if known. When this hook
- * is invoked during search indexing, the language will most likely be known
- * and passed in. This is left up to the search plugin;
- * \Drupal\node\Plugin\Search\NodeSearch does pass in the node
- * language. However, when this hook is invoked during searching, in order to
- * let a module apply the same preprocessing to the search keywords and
- * indexed text so they will match, $langcode will be NULL. A hook
- * implementation can call the getCurrentLanguage() method on the
- * 'language_manager' service to determine the current language and act
- * accordingly.
- *
- * @return string
- * The text after preprocessing. Note that if your module decides not to
- * alter the text, it should return the original text. Also, after
- * preprocessing, words in the text should be separated by a space.
- *
- * @ingroup search
- */
- function hook_search_preprocess($text, $langcode = NULL) {
- // If the language is not set, get it from the language manager.
- if (!isset($langcode)) {
- $langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
- }
- // If the langcode is set to 'en' then add variations of the word "testing"
- // which can also be found during English language searches.
- if ($langcode == 'en') {
- // Add the alternate verb forms for the word "testing".
- if ($text == 'we are testing') {
- $text .= ' test tested';
- }
- }
- return $text;
- }
- /**
- * Alter search plugin definitions.
- *
- * @param array $definitions
- * The array of search plugin definitions, keyed by plugin ID.
- *
- * @see \Drupal\search\Annotation\SearchPlugin
- * @see \Drupal\search\SearchPluginManager
- */
- function hook_search_plugin_alter(array &$definitions) {
- if (isset($definitions['node_search'])) {
- $definitions['node_search']['title'] = t('Nodes');
- }
- }
- /**
- * @} End of "addtogroup hooks".
- */
|