You are here

function lightning_media_modules_installed in Lightning Media 8

Same name and namespace in other branches
  1. 8.4 lightning_media.module \lightning_media_modules_installed()
  2. 8.2 lightning_media.module \lightning_media_modules_installed()
  3. 8.3 lightning_media.module \lightning_media_modules_installed()

Implements hook_modules_installed().

1 call to lightning_media_modules_installed()
lightning_media_install in ./lightning_media.install
Implements hook_install().

File

./lightning_media.module, line 135
Core media asset support for Lightning.

Code

function lightning_media_modules_installed(array $modules) {

  // Don't do anything during config sync.
  if (\Drupal::isConfigSyncing()) {
    return;
  }
  if (in_array('lightning_roles', $modules)) {
    \Drupal::service('lightning.content_roles')
      ->grantPermissions('creator', [
      'use text format rich_text',
      'access media_browser entity browser pages',
    ]);
  }
  if (in_array('lightning_dev', $modules)) {
    \Drupal::service('module_installer')
      ->install([
      'image_widget_crop',
      'lightning_page',
    ]);
    module_load_install('lightning_media_image');
    lightning_media_image_install();
    $config = Config::forModule('lightning_media')
      ->optional();
    $config
      ->getEntity('user_role', 'media_creator')
      ->save();
    $config
      ->getEntity('user_role', 'media_manager')
      ->save();
    user_role_grant_permissions('media_creator', [
      'access content',
      'access content overview',
      'access image_browser entity browser pages',
      'create page content',
      'edit own page content',
      'use text format rich_text',
      'view own unpublished content',
    ]);
    \Drupal::service('theme_installer')
      ->install([
      'bartik',
      'seven',
    ]);
    $config_factory = \Drupal::configFactory();
    $config_factory
      ->getEditable('system.theme')
      ->set('default', 'bartik')
      ->set('admin', 'seven')
      ->save();
    $config_factory
      ->getEditable('node.settings')
      ->set('use_admin_theme', TRUE)
      ->save();

    // Sentence-case the label of the media browser's embed code widget. Yes, not
    // doing this can cause tests to fail.
    $config_factory
      ->getEditable('entity_browser.browser.media_browser')
      ->set('widgets.8b142f33-59d1-47b1-9e3a-4ae85d8376fa.label', 'Create embed')
      ->save();
    $GLOBALS['install_state'] = [];
    $view = entity_load('view', 'media');
    lightning_media_view_insert($view);
    unset($GLOBALS['install_state']);
  }
}