You are here

function media_install in D7 Media 8

Same name and namespace in other branches
  1. 7.4 media.install \media_install()
  2. 7 media.install \media_install()
  3. 7.2 media.install \media_install()
  4. 7.3 media.install \media_install()

Implements hook_install().

File

./media.install, line 15
Defines library requirements for Media module.

Code

function media_install() {

  // Disable the media view provided by media_entity.
  if ($view = View::load('media')) {
    $view
      ->set('status', FALSE);
    $view
      ->save();
  }

  // Copy the document icon files.
  $source = drupal_get_path('module', 'media') . '/images/icons';
  $destination = \Drupal::config('media_entity.settings')
    ->get('icon_base');
  media_entity_copy_icons($source, $destination);
  if (!\Drupal::isConfigSyncing()) {

    // Add an icon for Media if we aren't installing from configuration.
    // Read more about this implementation: https://www.drupal.org/node/2696593
    $data = file_get_contents(dirname(__FILE__) . '/images/media_embed_icon.png');
    $file = file_save_data($data, 'public://media_embed_icon.png', FILE_EXISTS_REPLACE);

    // Set file uuid same as default config.
    $uuid = (new ExtensionInstallStorage(\Drupal::service('config.storage')))
      ->read('embed.button.media')['icon_uuid'];
    $file
      ->set('uuid', $uuid);
    $file
      ->save();
  }

  // Enable the media embed button and modify filters.
  $filter_formats = \Drupal::entityTypeManager()
    ->getStorage('filter_format')
    ->loadByProperties(array(
    'status' => TRUE,
  ));
  foreach ($filter_formats as $filter_format) {
    $editor = Editor::load($filter_format
      ->getOriginalId());
    if ($editor) {

      // Make the changes to editor and filters only if editor type exists.
      $editor_settings = $editor
        ->getSettings();
      $editor_settings['toolbar']['rows'][0][3]['items'][] = 'media';
      $editor
        ->setSettings($editor_settings);
      $editor
        ->save();
      $format = $editor
        ->getFilterFormat();
      if ($format
        ->filters('filter_html')->settings['allowed_html']) {
        $format
          ->filters('filter_html')->settings['allowed_html'] .= '<drupal-entity data-entity-type data-entity-uuid data-view-mode data-entity-embed-display data-entity-embed-display-settings data-align data-caption data-embed-button>';
      }
      $format
        ->setFilterConfig('entity_embed', [
        'status' => 1,
      ]);
      $format
        ->setFilterConfig('filter_html_image_secure', [
        'status' => 0,
      ]);
      $format
        ->save();
    }
  }
}