| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | <?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". */
 |