You are here

function ckeditor_media_embed_requirements in CKEditor Media Embed Plugin 8

Implements hook_requirements().

File

./ckeditor_media_embed.install, line 26
Install file for the CKEditor Media Embed plugin module.

Code

function ckeditor_media_embed_requirements($phase) {
  $requirements = [];
  if ($phase === 'runtime') {
    $library_discovery = \Drupal::service('library.discovery');
    $config_factory = \Drupal::service('config.factory');
    $version = AssetManager::getPluginsVersion($library_discovery, $config_factory);
    $plugin_statuses = AssetManager::getPluginsInstallStatuses($version);
    $installed_plugins = array_filter($plugin_statuses);
    $missing_plugins = array_filter($plugin_statuses, function ($is_installed) {
      return !$is_installed;
    });
    $mixed_version = $version != AssetManager::getCKEditorVersion($library_discovery, $config_factory);
    $has_error = !empty($missing_plugins) || $mixed_version ? TRUE : FALSE;
    $value = t('Installed');
    if (!empty($missing_plugins)) {
      $value = t('Missing plugins');
    }
    elseif ($mixed_version) {
      $value = t('Mixed versions');
    }
    $requirements["ckeditor_media_embed"] = [
      'title' => 'CKEditor Media Embed plugin',
      'value' => $value,
      'description' => _ckeditor_media_embed_requirments_build_description($installed_plugins, $missing_plugins, $mixed_version),
      'severity' => $has_error ? REQUIREMENT_ERROR : REQUIREMENT_INFO,
    ];
  }
  return $requirements;
}