contacts_events-8.x-1.x-dev/contacts_events.post_update.php

contacts_events.post_update.php
<?php

/**
 * @file
 * Post update functions for Contacts Events module.
 */

use Drupal\search_api\Item\Field;

/**
 * Adds Booking manager and delegate reference fields to the search index.
 */
function contacts_events_post_update_add_user_booking_search_fields(&$sandbox = NULL) {
  // Check whether Search API is enabled.
  $entity_type_manager = \Drupal::entityTypeManager();
  if (!$entity_type_manager->hasDefinition('search_api_index')) {
    return;
  }

  // Check our index exists.
  /** @var \Drupal\search_api\IndexInterface $index */
  $index = $entity_type_manager->getStorage('search_api_index')->load('contacts_index');
  if (!$index) {
    return;
  }

  // Create the Booking Manager booking reference field.
  $bm_field = new Field($index, 'bm_order_number');
  $bm_field->setType('text');
  $bm_field->setPropertyPath('ce_bookings_managed:entity:order_number');
  $bm_field->setDatasourceId('entity:user');
  $bm_field->setLabel('Bookings (manager) » Order » Order number');
  $bm_field->setBoost(8);
  if (!$index->getField($bm_field->getFieldIdentifier())) {
    $index->addField($bm_field);
  }

  // Create the Delegate booking reference field.
  $delegate_field = new Field($index, 'delegate_order_number');
  $delegate_field->setType('text');
  $delegate_field->setPropertyPath('ce_bookings_delegate:entity:order_number');
  $delegate_field->setDatasourceId('entity:user');
  $delegate_field->setLabel('Bookings (delegate) » Order » Order number');
  $delegate_field->setBoost(5);
  if (!$index->getField($delegate_field->getFieldIdentifier())) {
    $index->addField($delegate_field);
  }

  $index->save();
}

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

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