Newer
Older
<?php
/**
* @file
Angie Byron
committed
* Contains \Drupal\edit\Plugin\EditorManager.
*/
namespace Drupal\edit\Plugin;
use Drupal\Component\Plugin\PluginManagerBase;
Angie Byron
committed
use Drupal\Component\Plugin\Discovery\ProcessDecorator;
Angie Byron
committed
use Drupal\Component\Plugin\Factory\DefaultFactory;
use Drupal\Core\Plugin\Discovery\AlterDecorator;
use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
use Drupal\Core\Plugin\Discovery\CacheDecorator;
/**
Angie Byron
committed
* Editor manager.
*
* The "Form" Create.js PropertyEditor widget must always be available.
*/
Angie Byron
committed
class EditorManager extends PluginManagerBase {
/**
* Overrides \Drupal\Component\Plugin\PluginManagerBase::__construct().
*/
public function __construct() {
Angie Byron
committed
$this->discovery = new AnnotatedClassDiscovery('edit', 'editor');
Angie Byron
committed
$this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition'));
Angie Byron
committed
$this->discovery = new AlterDecorator($this->discovery, 'edit_editor');
$this->discovery = new CacheDecorator($this->discovery, 'edit:editor');
$this->factory = new DefaultFactory($this->discovery);
}
Angie Byron
committed
/**
Angie Byron
committed
* Overrides \Drupal\Component\Plugin\PluginManagerBase::processDefinition().
Angie Byron
committed
*/
public function processDefinition(&$definition, $plugin_id) {
parent::processDefinition($definition, $plugin_id);
// @todo Remove this check once http://drupal.org/node/1780396 is resolved.
if (!module_exists($definition['module'])) {
$definition = NULL;
return;
}
}