elasticsearch_search_api-1.0.x-dev/src/Utility/UtilityHelper.php

src/Utility/UtilityHelper.php
<?php

namespace Drupal\elasticsearch_search_api\Utility;

use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\node\NodeTypeInterface;

/**
 * Provides specific helper methods.
 */
class UtilityHelper {

  /**
   * Helper function to extract a quoted string from a search term.
   *
   * @param string $keyword
   *   A search term.
   *
   * @return array
   *   An array of quoted string matches.
   */
  public static function extractQuotedString(&$keyword) {
    preg_match_all('/\"([^\"]*?)\"/', $keyword, $matches);
    foreach ($matches[0] as $phrase) {
      $keyword = str_replace($phrase, '', $keyword);
      $keyword = trim($keyword);
    }
    return $matches[1];
  }

  /**
   * Helper function to add 'search_index' view mode to the given content type.
   *
   * @param \Drupal\node\NodeTypeInterface $content_type
   *   A content type machine name.
   */
  public static function configureSearchIndexViewMode(NodeTypeInterface $content_type) {
    $display = EntityViewDisplay::load("node.{$content_type->id()}.search_index");

    // If there is already a 'search_index' view mode
    // defined for this content type, don't alter it.
    if ($display instanceof EntityViewDisplay) {
      return;
    }

    // Create & enable the view display.
    $display = EntityViewDisplay::create([
      'targetEntityType' => 'node',
      'bundle' => $content_type->id(),
      'mode' => 'search_index',
    ]);

    // Remove all default components, except title.
    foreach (array_keys($display->getComponents()) as $name) {
      if ($name !== 'title') {
        $display->removeComponent($name);
      }
    }

    $display->enable();
    $display->save();

    \Drupal::logger('elasticsearch_search_api')->notice("Display {$display->id()} was added.");
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc