cloudflare_stream-8.x-1.0/cloudflare_stream.install

cloudflare_stream.install
<?php

/**
 * @file
 * Installation file for Cloudflare Stream.
 */

use Drupal\Core\Entity\Sql\SqlContentEntityStorage;

/**
 * Adds thumbnail field.
 */
function cloudflare_stream_update_8001(&$sandbox) {
  $field_type = 'cloudflarevideo';
  $new_property = 'thumbnail';

  $manager = \Drupal::entityDefinitionUpdateManager();
  $field_map = \Drupal::service('entity_field.manager')->getFieldMapByFieldType($field_type);

  foreach ($field_map as $entity_type_id => $fields) {

    foreach (array_keys($fields) as $field_name) {
      $field_storage_definition = $manager->getFieldStorageDefinition($field_name, $entity_type_id);
      $storage = \Drupal::entityTypeManager()->getStorage($entity_type_id);

      if ($storage instanceof SqlContentEntityStorage) {
        $table_mapping = $storage->getTableMapping([
          $field_name => $field_storage_definition,
        ]);
        $table_names = $table_mapping->getDedicatedTableNames();
        $columns = $table_mapping->getColumnNames($field_name);

        foreach ($table_names as $table_name) {
          $field_schema = $field_storage_definition->getSchema();
          $schema = \Drupal::database()->schema();
          $field_exists = $schema->fieldExists($table_name, $columns[$new_property]);
          $table_exists = $schema->tableExists($table_name);

          if (!$field_exists && $table_exists) {
            $schema->addField($table_name, $columns[$new_property], $field_schema['columns'][$new_property]);
          }
        }
      }
      $manager->updateFieldStorageDefinition($field_storage_definition);
    }
  }
}

/**
 * Remove zone ID from config.
 */
function cloudflare_stream_update_10001(&$sandbox) {
  $config = \Drupal::configFactory()->getEditable('cloudflare_stream.settings');
  $config->clear('zone_id');
  $config->save(TRUE);
}

/**
 * Remove replace_source_files from config.
 */
function cloudflare_stream_update_10002(&$sandbox) {
  $config = \Drupal::configFactory()->getEditable('cloudflare_stream.settings');
  $config->clear('replace_source_files');
  $config->save(TRUE);
}

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

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