localgov_microsites_group-4.1.0/localgov_microsites_group.install

localgov_microsites_group.install
<?php

/**
 * @file
 * LocalGov Microsites Group install file.
 */

use Drupal\Core\Config\ConfigManagerInterface;
use Drupal\group\Entity\Group;
use Drupal\search_api\Entity\Index;

/**
 * Implements hook_install().
 */
function localgov_microsites_group_install($is_syncing) {

  if ($is_syncing) {
    return;
  }

  // Group sites should be installed aleady. It provides configuration, so we
  // can't, but must update its default config.
  $group_sites = \Drupal::configFactory()->getEditable('group_sites.settings');
  $group_sites->set('context_provider', '@group_context_domain.group_from_domain_context:group');
  $group_sites->set('no_site_access_policy', 'localgov_microsites_group.control_site_access_policy');
  $group_sites->set('site_access_policy', 'localgov_microsites_group.microsite_content_types_access_policy');
  $group_sites->save();

  // Add domain access to exclude other sites results.
  $index = Index::load('localgov_sitewide_search');
  $processor = \Drupal::getContainer()
    ->get('search_api.plugin_helper')
    ->createProcessorPlugin($index, 'domain_group_entity_access');
  $index->addProcessor($processor);
  $index->save();
}

/**
 * Implements hook_update_last_removed().
 */
function localgov_microsites_group_update_last_removed() {
  return 9003;
}

/**
 * Migrate microsite domains to group_context_domain from domain_group.
 */
function localgov_microsites_group_update_9004() {
  foreach (\Drupal::entityTypeManager()->getStorage('domain')->loadMultiple() as $domain) {
    if (
      ($group_id = $domain->getThirdPartySetting('domain_group', 'group')) &&
      ($group = Group::load($group_id))
    ) {
      $domain->setThirdPartySetting('group_context_domain', 'group_uuid', $group->uuid());
      $domain->unsetThirdPartySetting('domain_group', 'group');
      $domain->save();
    }
  }
}

/**
 * Update configuration dependencies.
 */
function localgov_microsites_group_update_9005() {
  $config_manager = \Drupal::service('config.manager');
  assert($config_manager instanceof ConfigManagerInterface);
  // $config_manager->loadConfigEntityByName('')
  $dependencies = $config_manager->findConfigEntityDependencies('module', ['domain_group']);
  foreach ($dependencies as $name => $dependency) {
    $config = $config_manager->loadConfigEntityByName($name);
    $config->save();
  }
}

/**
 * Remove any group permissions entities before removing the module.
 */
function localgov_microsites_group_update_9006() {
  $permission_storage = \Drupal::entityTypeManager()->getStorage('group_permission');
  if ($permissions = $permission_storage->loadMultiple()) {
    $permission_storage->delete($permissions);
  }
}

/**
 * Disable domain_group and group_permissions.
 */
function localgov_microsites_group_update_9007() {
  \Drupal::service('module_installer')->uninstall(['domain_group', 'group_permissions']);
}

/**
 * Set group sites context as would be done on install.
 */
function localgov_microsites_group_update_9008() {
  $group_sites = \Drupal::configFactory()->getEditable('group_sites.settings');
  $group_sites->set('context_provider', '@group_context_domain.group_from_domain_context:group');
  $group_sites->save();
}

/**
 * Switch to new custom group sites access handlers.
 */
function localgov_microsites_group_update_9009() {
  $group_sites = \Drupal::configFactory()->getEditable('group_sites.settings');
  $group_sites->set('no_site_access_policy', 'localgov_microsites_group.control_site_access_policy');
  $group_sites->set('site_access_policy', 'localgov_microsites_group.microsite_content_types_access_policy');
  $group_sites->save();
}

/**
 * Uninstall variationcache module.
 */
function localgov_microsites_group_update_10001(&$sandbox) {
  \Drupal::service('module_installer')->uninstall(['variationcache']);
}

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

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