gradient_server-1.0.x-dev/modules/integrations/gradientserver_sitepins/gradientserver_sitepins.install

modules/integrations/gradientserver_sitepins/gradientserver_sitepins.install
<?php

use Drupal\search_api\Entity\Index;
use Drupal\search_api\Item\Field;
use Drupal\gradientserver_sitepins\SitePinsHelper;


function gradientserver_sitepins_install() {
  $index = Index::load('content');
  if (!empty($index)) {
    $datasources = $index->getDatasources();
    if(!empty($datasources['entity:node'])) {
      $config = $datasources['entity:node']->getConfiguration();
      $config['bundles']['selected'][] = 'sitepins_item';
      $datasources['entity:node']->setConfiguration($config);
      $index->setDatasources($datasources);
    }
    $fields = $index->getFields();
    if (!empty($fields)) {
      foreach (SitePinsHelper::FIELDS as $id => $label) {
        $field = new Field($index, $id);
        $field->setFieldIdentifier($id);
        $field->setDatasourceId('entity:node');
        $field->setPropertyPath($id);
        $field->setLabel($label);
        $field->setType('string');
        $field->setDependencies([
          'config' => ['field.storage.node.' . $id]
        ]);
        $fields[$id] = $field;
  
      }
      $index->setFields($fields);
      $fields = $index->getFields();
    }
    $index->save();
  }
}

function gradientserver_sitepins_uninstall() {
  $index = Index::load('content');
  if (!empty($index)) {
    $datasources = $index->getDatasources();
    if(!empty($datasources['entity:node'])) {
      $config = $datasources['entity:node']->getConfiguration();
      $config['bundles']['selected'] = array_filter($config['bundles']['selected'], function($bundle) {return $bundle !== 'sitepins_item';});
      $datasources['entity:node']->setConfiguration($config);
      $index->setDatasources($datasources);
    }
    $fields = $index->getFields();
    if (!empty($fields)) {
      foreach (SitePinsHelper::FIELDS as $id => $label) {
        unset($fields[$id]);
      }
      $index->setFields($fields);
    }
    $index->save();
  }
}

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

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