You are here

function lightning_media_image_install in Lightning Media 8.4

Same name and namespace in other branches
  1. 8 modules/lightning_media_image/lightning_media_image.install \lightning_media_image_install()
  2. 8.2 modules/lightning_media_image/lightning_media_image.install \lightning_media_image_install()
  3. 8.3 modules/lightning_media_image/lightning_media_image.install \lightning_media_image_install()

Implements hook_install().

1 call to lightning_media_image_install()
ImageBrowserCardinalityTest::setUp in modules/lightning_media_image/tests/src/FunctionalJavascript/ImageBrowserCardinalityTest.php

File

modules/lightning_media_image/lightning_media_image.install, line 14
Contains install and update routines for Lightning Media Image.

Code

function lightning_media_image_install() {

  // Don't do anything during config sync.
  if (\Drupal::isConfigSyncing()) {
    return;
  }
  $module_exists = [
    \Drupal::moduleHandler(),
    'moduleExists',
  ];

  // Grants image browser access to the creator content role and the
  // media_creator and media_manager roles.
  if ($module_exists('lightning_roles')) {
    lightning_media_image_modules_installed([
      'lightning_roles',
    ]);
  }
  if ($module_exists('image_widget_crop')) {

    // Use the cropping widgets for every form display of the Image media type.
    $form_displays = \Drupal::entityTypeManager()
      ->getStorage('entity_form_display')
      ->loadByProperties([
      'targetEntityType' => 'media',
      'bundle' => 'image',
    ]);

    /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
    foreach ($form_displays as $form_display) {
      $component = $form_display
        ->getComponent('field_media_image');
      if ($component && $component['type'] == 'image_image') {
        $component['type'] = 'image_widget_crop';
        $component['settings']['crop_list'] = [
          'freeform',
        ];
        $component['settings']['show_crop_area'] = TRUE;
        $form_display
          ->setComponent('field_media_image', $component)
          ->save();
      }
    }

    // Try to use a local copy of Cropper over the CDN-hosted fallback.
    $cropper_path = Drupal::service('library.libraries_directory_file_finder')
      ->find('cropper/dist');
    if ($cropper_path) {
      Drupal::configFactory()
        ->getEditable('image_widget_crop.settings')
        ->set('settings.library_url', "{$cropper_path}/cropper.min.js")
        ->set('settings.css_url', "{$cropper_path}/cropper.min.css")
        ->save();
    }
  }
}