You are here

interface EditorPluginInterface in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/editor/src/Plugin/EditorPluginInterface.php \Drupal\editor\Plugin\EditorPluginInterface

Defines an interface for configurable text editors.

Modules implementing this interface may want to extend the EditorBase class, which provides default implementations of each method where appropriate.

Hierarchy

Expanded class hierarchy of EditorPluginInterface

All classes that implement EditorPluginInterface

See also

\Drupal\editor\Annotation\Editor

\Drupal\editor\Plugin\EditorBase

\Drupal\editor\Plugin\EditorManager

Plugin API

File

core/modules/editor/src/Plugin/EditorPluginInterface.php, line 25
Contains \Drupal\editor\Plugin\EditorPluginInterface.

Namespace

Drupal\editor\Plugin
View source
interface EditorPluginInterface extends PluginInspectionInterface {

  /**
   * Returns the default settings for this configurable text editor.
   *
   * @return array
   *   An array of settings as they would be stored by a configured text editor
   *   entity (\Drupal\editor\Entity\Editor).
   */
  public function getDefaultSettings();

  /**
   * Returns a settings form to configure this text editor.
   *
   * If the editor's behavior depends on extensive options and/or external data,
   * then the implementing module can choose to provide a separate, global
   * configuration page rather than per-text-format settings. In that case, this
   * form should provide a link to the separate settings page.
   *
   * @param array $form
   *   An empty form array to be populated with a configuration form, if any.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The state of the entire filter administration form.
   * @param \Drupal\editor\Entity\Editor $editor
   *   A configured text editor object.
   *
   * @return array
   *   A render array for the settings form.
   */
  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor);

  /**
   * Validates the settings form for an editor.
   *
   * The contents of the editor settings are located in
   * $form_state->getValue(array('editor', 'settings')). Calls to $form_state->setError()
   * should reflect this location in the settings form.
   *
   * @param array $form
   *   An associative array containing the structure of the form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form.
   */
  public function settingsFormValidate(array $form, FormStateInterface $form_state);

  /**
   * Modifies any values in the form state to prepare them for saving.
   *
   * Values in $form_state->getValue(array('editor', 'settings')) are saved by
   * Editor module in editor_form_filter_admin_format_submit().
   *
   * @param array $form
   *   An associative array containing the structure of the form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form.
   */
  public function settingsFormSubmit(array $form, FormStateInterface $form_state);

  /**
   * Returns JavaScript settings to be attached.
   *
   * Most text editors use JavaScript to provide a WYSIWYG or toolbar on the
   * client-side interface. This method can be used to convert internal settings
   * of the text editor into JavaScript variables that will be accessible when
   * the text editor is loaded.
   *
   * @param \Drupal\editor\Entity\Editor $editor
   *   A configured text editor object.
   *
   * @return array
   *   An array of settings that will be added to the page for use by this text
   *   editor's JavaScript integration.
   *
   * @see \Drupal\Core\Render\AttachmentsResponseProcessorInterface::processAttachments()
   * @see EditorManager::getAttachments()
   */
  public function getJSSettings(Editor $editor);

  /**
   * Returns libraries to be attached.
   *
   * Because this is a method, plugins can dynamically choose to attach a
   * different library for different configurations, instead of being forced to
   * always use the same method.
   *
   * @param \Drupal\editor\Entity\Editor $editor
   *   A configured text editor object.
   *
   * @return array
   *   An array of libraries that will be added to the page for use by this text
   *   editor.
   *
   * @see \Drupal\Core\Render\AttachmentsResponseProcessorInterface::processAttachments()
   * @see EditorManager::getAttachments()
   */
  public function getLibraries(Editor $editor);

}

Members

Namesort descending Modifiers Type Description Overrides
EditorPluginInterface::getDefaultSettings public function Returns the default settings for this configurable text editor. 1
EditorPluginInterface::getJSSettings public function Returns JavaScript settings to be attached. 3
EditorPluginInterface::getLibraries public function Returns libraries to be attached. 3
EditorPluginInterface::settingsForm public function Returns a settings form to configure this text editor. 1
EditorPluginInterface::settingsFormSubmit public function Modifies any values in the form state to prepare them for saving. 1
EditorPluginInterface::settingsFormValidate public function Validates the settings form for an editor. 1
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 2
PluginInspectionInterface::getPluginId public function Gets the plugin_id of the plugin instance. 2