You are here

public function SiteName::addFieldValues in Search API Field Map 8.2

Same name and namespace in other branches
  1. 8.3 src/Plugin/search_api/processor/SiteName.php \Drupal\search_api_field_map\Plugin\search_api\processor\SiteName::addFieldValues()
  2. 8 src/Plugin/search_api/processor/SiteName.php \Drupal\search_api_field_map\Plugin\search_api\processor\SiteName::addFieldValues()
  3. 4.x src/Plugin/search_api/processor/SiteName.php \Drupal\search_api_field_map\Plugin\search_api\processor\SiteName::addFieldValues()

Adds the values of properties defined by this processor to the item.

Parameters

\Drupal\search_api\Item\ItemInterface $item: The item whose field values should be added.

Overrides ProcessorPluginBase::addFieldValues

File

src/Plugin/search_api/processor/SiteName.php, line 50

Class

SiteName
Adds the site name to the indexed data.

Namespace

Drupal\search_api_field_map\Plugin\search_api\processor

Code

public function addFieldValues(ItemInterface $item) {
  $fields = $this
    ->getFieldsHelper()
    ->filterForPropertyPath($item
    ->getFields(), NULL, 'site_name');
  foreach ($fields as $field) {

    // Default to value of the site name text field.
    $site_name = $field
      ->getConfiguration()['site_name'];

    // Check if flag to use [site:name] is set.
    $use_system_site_name = $field
      ->getConfiguration()['use_system_site_name'];
    if ($use_system_site_name) {
      $token = \Drupal::token();

      // If the token replacement produces a value, add to this item.
      if ($value = $token
        ->replace('[site:name]', [], [
        'clear' => true,
      ])) {
        $site_name = $value;
      }
    }
    $field
      ->addValue($site_name);
  }
}