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(); } } }