You are here

function ckeditor_media_embed_ckeditor_plugin_info_alter in CKEditor Media Embed Plugin 8

Implements hook_ckeditor_plugin_info_alter().

File

./ckeditor_media_embed.module, line 75
Module file for the CKEditor Media Embed plugin module.

Code

function ckeditor_media_embed_ckeditor_plugin_info_alter(array &$plugins) {
  $version = AssetManager::getPluginsVersion(\Drupal::service('library.discovery'), \Drupal::service('config.factory'));
  $plugin_statuses = AssetManager::getPluginsInstallStatuses($version);
  $all_installed = array_reduce($plugin_statuses, function ($acc, $plugin_status) {
    if ($acc && $plugin_status == FALSE) {
      $acc = $plugin_status;
    }
    return $acc;
  }, TRUE);
  $uninstalled_plugins = [];
  foreach ($plugin_statuses as $plugin_name => $is_installed) {
    if (!$all_installed && !empty($plugins[$plugin_name])) {
      unset($plugins[$plugin_name]);
    }
    if (!$is_installed) {
      $uninstalled_plugins[] = $plugin_name;
    }
  }
  if (!$all_installed) {
    \Drupal::logger('ckeditor_media_embed')
      ->error('The following plugins are missing: @uninstalled_plugins. <br />@install_message', [
      '@uninstalled_plugins' => implode(', ', $uninstalled_plugins),
      '@install_message' => _ckeditor_media_embed_get_install_instructions(FALSE),
    ]);
  }
}