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