in modules/quanthub_indicator/src/Plugin/search_api/processor/QuanthubIndicatorProcessor.php [156:189]
public function preprocessIndexItems(array $items) {
$this->loadIndicators($items);
// Annoyingly, this doc comment is needed for PHPStorm. See
// http://youtrack.jetbrains.com/issue/WI-23586
/** @var \Drupal\search_api\Item\ItemInterface $item */
foreach ($items as $item) {
// Our search processor work only for indicator.
if ($item->getOriginalObject()->getValue()->getType() == 'indicator') {
$this->langcode = $item->getLanguage();
$this->language = $this->languageManager->getLanguage($this->langcode);
$config_original_language = $this->languageManager->getConfigOverrideLanguage();
$this->languageManager->setConfigOverrideLanguage($this->language);
$this->entity = $item->getOriginalObject()->getValue()->getTranslation($this->langcode);
$this->datasetUrn = $this->entity->field_dataset->first()->entity->field_quanthub_urn->getString();
$this->indicatorId = $item->getExtraData('indicator_id') ?: FALSE;
if (
!empty($this->indicatorId) &&
empty($this->datasetsDimensions[$this->datasetUrn])
) {
$this->datasetsDimensions[$this->datasetUrn] = $this->sdmxClient->getDimensions($this->datasetUrn);
}
foreach ($item->getFields() as $field) {
$this->processField($field);
}
$this->languageManager->setConfigOverrideLanguage($config_original_language);
}
}
}