Version 1
[yaffs-website] / web / core / modules / editor / editor.api.php
diff --git a/web/core/modules/editor/editor.api.php b/web/core/modules/editor/editor.api.php
new file mode 100644 (file)
index 0000000..6485a1e
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * @file
+ * Documentation for Text Editor API.
+ */
+
+use Drupal\filter\FilterFormatInterface;
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Performs alterations on text editor definitions.
+ *
+ * @param array $editors
+ *   An array of metadata of text editors, as collected by the plugin annotation
+ *   discovery mechanism.
+ *
+ * @see \Drupal\editor\Plugin\EditorBase
+ */
+function hook_editor_info_alter(array &$editors) {
+  $editors['some_other_editor']['label'] = t('A different name');
+  $editors['some_other_editor']['library']['module'] = 'myeditoroverride';
+}
+
+/**
+ * Modifies JavaScript settings that are added for text editors.
+ *
+ * @param array $settings
+ *   All the settings that will be added to the page for the text formats to
+ *   which a user has access.
+ */
+function hook_editor_js_settings_alter(array &$settings) {
+  if (isset($settings['editor']['formats']['basic_html'])) {
+    $settings['editor']['formats']['basic_html']['editor'] = 'MyDifferentEditor';
+    $settings['editor']['formats']['basic_html']['editorSettings']['buttons'] = ['strong', 'italic', 'underline'];
+  }
+}
+
+/**
+ * Modifies the text editor XSS filter that will used for the given text format.
+ *
+ * Is only called when an EditorXssFilter will effectively be used; this hook
+ * does not allow one to alter that decision.
+ *
+ * @param string &$editor_xss_filter_class
+ *   The text editor XSS filter class that will be used.
+ * @param \Drupal\filter\FilterFormatInterface $format
+ *   The text format configuration entity. Provides context based upon which
+ *   one may want to adjust the filtering.
+ * @param \Drupal\filter\FilterFormatInterface $original_format|null
+ *   (optional) The original text format configuration entity (when switching
+ *   text formats/editors). Also provides context based upon which one may want
+ *   to adjust the filtering.
+ *
+ * @see \Drupal\editor\EditorXssFilterInterface
+ */
+function hook_editor_xss_filter_alter(&$editor_xss_filter_class, FilterFormatInterface $format, FilterFormatInterface $original_format = NULL) {
+  $filters = $format->filters()->getAll();
+  if (isset($filters['filter_wysiwyg']) && $filters['filter_wysiwyg']->status) {
+    $editor_xss_filter_class = '\Drupal\filter_wysiwyg\EditorXssFilter\WysiwygFilter';
+  }
+}
+
+/**
+ * @} End of "addtogroup hooks".
+ */