DrupalMedia.php in Drupal 9
File
core/modules/media/src/Plugin/CKEditorPlugin/DrupalMedia.php
View source
<?php
namespace Drupal\media\Plugin\CKEditorPlugin;
use Drupal\ckeditor\CKEditorPluginContextualInterface;
use Drupal\ckeditor\CKEditorPluginCssInterface;
use Drupal\Core\Extension\ModuleExtensionList;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\Plugin\PluginBase;
use Drupal\editor\Entity\Editor;
class DrupalMedia extends PluginBase implements ContainerFactoryPluginInterface, CKEditorPluginContextualInterface, CKEditorPluginCssInterface {
protected $moduleExtensionList;
public function __construct(array $configuration, $plugin_id, $plugin_definition, ModuleExtensionList $extension_list_module) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->moduleExtensionList = $extension_list_module;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('extension.list.module'));
}
public function isInternal() {
return FALSE;
}
public function getDependencies(Editor $editor) {
return [];
}
public function getLibraries(Editor $editor) {
return [
'core/jquery',
'core/drupal',
'core/drupal.ajax',
'media/media_embed_ckeditor_theme',
];
}
public function getFile() {
return $this->moduleExtensionList
->getPath('media') . '/js/plugins/drupalmedia/plugin.js';
}
public function getConfig(Editor $editor) {
return [];
}
public function isEnabled(Editor $editor) {
if (!$editor
->hasAssociatedFilterFormat()) {
return FALSE;
}
$filters = $editor
->getFilterFormat()
->filters();
return $filters
->has('media_embed') && $filters
->get('media_embed')->status;
}
public function getCssFiles(Editor $editor) {
return [
$this->moduleExtensionList
->getPath('media') . '/css/plugins/drupalmedia/ckeditor.drupalmedia.css',
$this->moduleExtensionList
->getPath('system') . '/css/components/hidden.module.css',
];
}
}