You are here

function editor_filter_format_presave in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/editor/editor.module \editor_filter_format_presave()

Implements hook_ENTITY_TYPE_presave().

Synchronizes the editor status to its paired text format status.

File

core/modules/editor/editor.module, line 523
Adds bindings for client-side "text editors" to text formats.

Code

function editor_filter_format_presave(FilterFormatInterface $format) {

  // The text format being created cannot have a text editor yet.
  if ($format
    ->isNew()) {
    return;
  }

  /** @var \Drupal\filter\FilterFormatInterface $original */
  $original = \Drupal::entityManager()
    ->getStorage('filter_format')
    ->loadUnchanged($format
    ->getOriginalId());

  // If the text format status is the same, return early.
  if (($status = $format
    ->status()) === $original
    ->status()) {
    return;
  }

  /** @var \Drupal\editor\EditorInterface $editor */
  if ($editor = Editor::load($format
    ->id())) {
    $editor
      ->setStatus($status)
      ->save();
  }
}