media_acquiadam-8.x-1.46/modules/media_acquiadam_example/media_acquiadam_example.install

modules/media_acquiadam_example/media_acquiadam_example.install
<?php

/**
 * @file
 * Drupal install and update hooks.
 */

use Drupal\entity_browser\Entity\EntityBrowser;

/**
 * Implements hook_install().
 */
function media_acquiadam_example_install() {

  // If we're using Lightning Media we should add the DAM browser by default so
  // there is less initial setup required from the end user.
  if (Drupal::moduleHandler()->moduleExists('lightning_media')) {
    /** @var \Drupal\entity_browser\EntityBrowserInterface $browser */
    $browser = EntityBrowser::load('media_browser');
    if (!empty($browser)) {
      $widgets = [
        'acquia_dam_asset' => [
          'label' => t('Acquia DAM Asset'),
          'submit_text' => t('Select assets'),
        ],
        'acquia_dam_audio' => [
          'label' => t('Acquia DAM Audio'),
          'submit_text' => t('Select audio'),
        ],
        'acquia_dam_document' => [
          'label' => t('Acquia DAM Documents'),
          'submit_text' => t('Select documents'),
        ],
        'acquia_dam_image' => [
          'label' => t('Acquia DAM Images'),
          'submit_text' => t('Select images'),
        ],
        'acquia_dam_video' => [
          'label' => t('Acquia DAM Video'),
          'submit_text' => t('Select video'),
        ],
      ];

      $weight = 10;
      foreach ($widgets as $type => $text) {
        $browser->addWidget([
          'id' => 'acquiadam',
          'label' => $text['label'],
          'weight' => $weight++,
          'settings' => [
            'media_type' => $type,
            'submit_text' => $text['submit_text'],
          ],
        ]);
      }

      $browser->save();
    }
  }
}

/**
 * Implements hook_requirements().
 */
function media_acquiadam_example_requirements($phase) {
  $requirements = [];

  if ('runtime' === $phase) {
    $requirements['media_acquiadam_example_uninstall'] = [
      'title' => t('Media: Acquia DAM'),
      'description' => t(
        'The Media: Acquia DAM - Example Configuration module has imported its configuration and can now be safely uninstalled.'
      ),
      'severity' => REQUIREMENT_WARNING,
    ];
  }
  elseif ('install' === $phase) {
    $config_factory = Drupal::configFactory();
    if (!$config_factory->get('media.type.acquia_dam_asset')->isNew()) {
      $requirements['media_acquiadam_example_noinstall'] = [
        'title' => t('Media: Acquia DAM'),
        'description' => t(
          'The Media: Acquia DAM - Example Configuration module has already been installed once and cannot be installed again.'
        ),
        'severity' => REQUIREMENT_ERROR,
      ];
    }
  }

  return $requirements;
}

/**
 * Update the existing example media bundle to remove the status mapping.
 */
function media_acquiadam_example_update_8201() {
  $config_names = [
    'media.type.acquia_dam_asset',
    'media.type.acquia_dam_audio',
    'media.type.acquia_dam_document',
    'media.type.acquia_dam_image',
    'media.type.acquia_dam_video',
  ];

  foreach ($config_names as $config_name) {
    if (empty(Drupal::config($config_name)->get())) {
      continue;
    }

    $config = Drupal::service('config.factory')
      ->getEditable($config_name);

    $map = $config->get('field_map');

    // If the status field is mapped with an Acquia DAM field named "status",
    // we unmap it as it does not exist anymore on Acquia DAM.
    if (isset($map['status']) && $map['status'] === 'status') {
      unset($map['status']);

      $config->set('field_map', $map);
      $config->save();
    }
  }
}

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

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