Esempio n. 1
0
 /**
  * Indexes a single node.
  *
  * @param \Drupal\node\NodeInterface $node
  *   The node to index.
  */
 protected function indexNode(NodeInterface $node)
 {
     // Save the changed time of the most recent indexed node, for the search
     // results half-life calculation.
     $this->state->set('node.cron_last', $node->getChangedTime());
     $languages = $node->getTranslationLanguages();
     $node_render = $this->entityManager->getViewBuilder('node');
     foreach ($languages as $language) {
         $node = $node->getTranslation($language->id);
         // Render the node.
         $build = $node_render->view($node, 'search_index', $language->id);
         unset($build['#theme']);
         $node->rendered = drupal_render($build);
         $text = '<h1>' . String::checkPlain($node->label($language->id)) . '</h1>' . $node->rendered;
         // Fetch extra data normally not visible.
         $extra = $this->moduleHandler->invokeAll('node_update_index', array($node, $language->id));
         foreach ($extra as $t) {
             $text .= $t;
         }
         // Update index.
         search_index($node->id(), $this->getPluginId(), $text, $language->id);
     }
 }