social_lms_integrator-1.0.0-beta4/modules/social_lms_integrator_iteration/social_lms_integrator_iteration.install

modules/social_lms_integrator_iteration/social_lms_integrator_iteration.install
<?php

/**
 * Adds 3 blocks for iteration listing
 */
function social_lms_integrator_iteration_update_8008() {

  $configs_to_install = [
    'views.view.iteration_listing',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8008', 'social_lms_integrator_iteration');
  }

}

/**
 * Adds new field field_iteration_all_day
 */
function social_lms_integrator_iteration_update_8009() {

  $configs_to_install = [
    'field.storage.node.field_iteration_all_day',
    'field.field.node.iteration.field_iteration_all_day',
    'core.entity_form_display.iteration_enrollment.iteration_enrollment.default',
    'core.entity_view_display.iteration_enrollment.iteration_enrollment.default',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8009', 'social_lms_integrator_iteration');
  }

}

/**
 * Update group iteration view and remove
 * group specific logic, without touching the logic.
 */
function social_lms_integrator_iteration_update_8010() {

  $configs_to_install = [
    'views.view.group_iterations',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8010', 'social_lms_integrator_iteration');
  }  

}


/**
 * Adds 3 blocks for iteration listing
 */
function social_lms_integrator_iteration_update_8011() {

  $configs_to_install = [
    'views.view.iteration_listing',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8011', 'social_lms_integrator_iteration');
  }

}

/**
 * Adds 1 view and block iteration listing
 */
function social_lms_integrator_iteration_update_8012() {

  $configs_to_install = [
    'views.view.iteration_listing',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8012', 'social_lms_integrator_iteration');
  }

}

/**
 * Change to view block iteration listing - Date filter added.
 */
function social_lms_integrator_iteration_update_8013() {

  $configs_to_install = [
    'views.view.iteration_listing',
  ];

  foreach ($configs_to_install as $config_to_install) {
    _social_lms_integrator_iteration_update_or_install_config($config_to_install, '8013', 'social_lms_integrator_iteration');
  }

}

function social_lms_integrator_iteration_install() {

  $config_factory = \Drupal::service('config.factory');

  $config_names = [
    'block.block.socialblue_groupheroblock',
    'block.block.socialblue_pagetitleblock_content',
  ];  

  foreach ($config_names as $config_name) {
    $config = $config_factory->getEditable($config_name);

    if (!empty($config->getRawData())) {
      $pages = $config->get('visibility.request_path.pages');
      $pages = explode("\r\n", $pages);
      // Add new pages for iterations
      $pages[] = '/group/*/iterations';
      $pages = implode("\r\n", $pages);
      $config->set('visibility.request_path.pages', $pages);
      $config->save();
    }
  }
}


function _social_lms_integrator_iteration_update_or_install_config( String $prefix, String $update_id, String $module) {
  $updated = [];
  $created = [];

  /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */
  $config_manager = \Drupal::service('config.manager');
  $files = glob(drupal_get_path('module', $module) . '/config/update_' . $update_id. '/' . $prefix . '*.yml') ;
  foreach ($files as $file) {
    $raw = file_get_contents($file);
    $value = \Drupal\Component\Serialization\Yaml::decode($raw);
    if(!is_array($value)) {
      throw new \RuntimeException(sprintf('Invalid YAML file %s'), $file);
    }

    $type = $config_manager->getEntityTypeIdByName(basename($file));
    $entity_manager = $config_manager->getEntityTypeManager();
    $definition = $entity_manager->getDefinition($type);
    $id_key = $definition->getKey('id');
    $id = $value[$id_key];

    /** @var \Drupal\Core\Config\Entity\ConfigEntityStorage $entity_storage */
    $entity_storage = $entity_manager->getStorage($type);
    $entity = $entity_storage->load($id);
    if ($entity) {
      $entity = $entity_storage->updateFromStorageRecord($entity, $value);
      $entity->save();
      $updated[] = $id;
    }
    else {
      $entity = $entity_storage->createFromStorageRecord($value);
      $entity->save();
      $created[] = $id;
    }
  }

  return [
    'udpated' => $updated,
    'created' => $created,
  ];
}

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

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