You are here

media_entity_image.install in Media entity image 8

Install, uninstall and update hooks for Media entity image module.

File

media_entity_image.install
View source
<?php

use Drupal\Core\File\FileSystemInterface;

/**
 * @file
 * Install, uninstall and update hooks for Media entity image module.
 */

/**
 * Implements hook_install().
 */
function media_entity_image_install() {
  $file_system = \Drupal::service('file_system');
  $source = drupal_get_path('module', 'media_entity_image') . '/images/icons';
  $destination = \Drupal::config('media_entity.settings')
    ->get('icon_base');
  $file_system
    ->prepareDirectory($destination, \Drupal\Core\File\FileSystemInterface::CREATE_DIRECTORY | \Drupal\Core\File\FileSystemInterface::MODIFY_PERMISSIONS);
  $files = $file_system
    ->scanDirectory($source, '/.*\\.(svg|png|jpg|jpeg|gif)$/');
  foreach ($files as $file) {

    // When reinstalling the media module we don't want to copy the icons when
    // they already exist. The icons could be replaced (by a contrib module or
    // manually), so we don't want to replace the existing files. Removing the
    // files when we uninstall could also be a problem if the files are
    // referenced somewhere else. Since showing an error that it was not
    // possible to copy the files is also confusing, we silently do nothing.
    if (!file_exists($destination . DIRECTORY_SEPARATOR . $file->filename)) {
      $file_system
        ->copy($file->uri, $destination, \Drupal\Core\File\FileSystemInterface::EXISTS_ERROR);
    }
  }
}

/**
 * Implements hook_requirements().
 */
function media_entity_image_requirements() {
  $requirements = [];
  if (version_compare(\Drupal::VERSION, '8.4.0', '>=') && \Drupal::moduleHandler()
    ->moduleExists('media')) {
    $requirements['media_entity_image: Not compatible with core Media'] = [
      'title' => t('Core Media'),
      'description' => t("Media Entity Image's functionality has been merged into the core Media module, so it cannot be installed alongside core Media."),
      'severity' => REQUIREMENT_ERROR,
    ];
  }
  return $requirements;
}