diff --git a/core/modules/edit/lib/Drupal/edit/Plugin/ProcessedTextEditorManager.php b/core/modules/edit/lib/Drupal/edit/Plugin/ProcessedTextEditorManager.php index 26ee5254f984ac5a4bf05f102206c978f9919fb0..6349310593122825dbb49f1f5d55f68b086f23cc 100644 --- a/core/modules/edit/lib/Drupal/edit/Plugin/ProcessedTextEditorManager.php +++ b/core/modules/edit/lib/Drupal/edit/Plugin/ProcessedTextEditorManager.php @@ -9,6 +9,7 @@ use Drupal\Component\Plugin\PluginManagerBase; use Drupal\Component\Plugin\Factory\DefaultFactory; +use Drupal\Component\Plugin\Discovery\ProcessDecorator; use Drupal\Core\Plugin\Discovery\AlterDecorator; use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery; use Drupal\Core\Plugin\Discovery\CacheDecorator; @@ -23,9 +24,23 @@ class ProcessedTextEditorManager extends PluginManagerBase { */ public function __construct() { $this->discovery = new AnnotatedClassDiscovery('edit', 'processed_text_editor'); + $this->discovery = new ProcessDecorator($this->discovery, array($this, 'processDefinition')); $this->discovery = new AlterDecorator($this->discovery, 'edit_wysiwyg'); $this->discovery = new CacheDecorator($this->discovery, 'edit:wysiwyg'); $this->factory = new DefaultFactory($this->discovery); } + /** + * Overrides Drupal\Component\Plugin\PluginManagerBase::processDefinition(). + */ + 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; + } + } + } diff --git a/core/modules/edit/tests/modules/lib/Drupal/edit_test/Plugin/edit/processed_text_editor/TestProcessedEditor.php b/core/modules/edit/tests/modules/lib/Drupal/edit_test/Plugin/edit/processed_text_editor/TestProcessedEditor.php index e2cb6d0ed41ef874613f0636ca3c04b3a812919d..b43e77f41dc4bed8e0a2034890cabf2e53ea73d3 100644 --- a/core/modules/edit/tests/modules/lib/Drupal/edit_test/Plugin/edit/processed_text_editor/TestProcessedEditor.php +++ b/core/modules/edit/tests/modules/lib/Drupal/edit_test/Plugin/edit/processed_text_editor/TestProcessedEditor.php @@ -16,7 +16,8 @@ * * @Plugin( * id = "test_processed_editor", - * title = @Translation("Test Processed Editor") + * title = @Translation("Test Processed Editor"), + * module = "edit_test" * ) */ class TestProcessedEditor extends ProcessedTextEditorBase {