You are here

class Core in BUEditor 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/BUEditorPlugin/Core.php \Drupal\bueditor\Plugin\BUEditorPlugin\Core

Defines BUEditor Core plugin.

Plugin annotation


@BUEditorPlugin(
  id = "core",
  label = "Core",
  weight = -99
)

Hierarchy

Expanded class hierarchy of Core

File

src/Plugin/BUEditorPlugin/Core.php, line 20

Namespace

Drupal\bueditor\Plugin\BUEditorPlugin
View source
class Core extends BUEditorPluginBase {

  /**
   * {@inheritdoc}
   */
  public function getButtons() {

    // Buttons in core library
    $buttons = [
      '-' => $this
        ->t('Separator'),
      '/' => $this
        ->t('New line'),
      'bold' => $this
        ->t('Bold'),
      'italic' => $this
        ->t('Italic'),
      'underline' => $this
        ->t('Underline'),
      'strike' => $this
        ->t('Strikethrough'),
      'quote' => $this
        ->t('Quote'),
      'code' => $this
        ->t('Code'),
      'ul' => $this
        ->t('Bulleted list'),
      'ol' => $this
        ->t('Numbered list'),
      'link' => $this
        ->t('Link'),
      'image' => $this
        ->t('Image'),
      'undo' => $this
        ->t('Undo'),
      'redo' => $this
        ->t('Redo'),
    ];
    for ($i = 1; $i < 7; $i++) {
      $buttons['h' . $i] = $this
        ->t('Heading @n', [
        '@n' => $i,
      ]);
    }
    return $buttons;
  }

  /**
   * {@inheritdoc}
   */
  public function alterEditorJS(array &$js, BUEditorEditor $bueditor_editor, Editor $editor = NULL) {

    // Add translation library for multilingual sites.
    $lang = \Drupal::service('language_manager')
      ->getCurrentLanguage()
      ->getId();
    if ($lang !== 'en' && \Drupal::service('module_handler')
      ->moduleExists('locale')) {
      $js['libraries'][] = 'bueditor/drupal.bueditor.translation';
    }

    // Add custom button definitions and libraries.
    $toolbar = BUEditorToolbarWrapper::set($js['settings']['toolbar']);
    if ($custom_items = $toolbar
      ->match('custom_')) {
      foreach (\Drupal::entityTypeManager()
        ->getStorage('bueditor_button')
        ->loadMultiple($custom_items) as $bid => $button) {
        $js['settings']['customButtons'][$bid] = $button
          ->jsProperties();
        foreach ($button
          ->get('libraries') as $library) {
          $js['libraries'][] = $library;
        }
      }
    }

    // Set editor id as the class name
    $cname =& $js['settings']['cname'];
    $cname = 'bue--' . $bueditor_editor
      ->id() . (isset($cname) ? ' ' . $cname : '');
  }

  /**
   * {@inheritdoc}
   */
  public function alterToolbarWidget(array &$widget) {

    // Add custom button definitions.
    foreach (\Drupal::entityTypeManager()
      ->getStorage('bueditor_button')
      ->loadMultiple() as $bid => $button) {
      $item = $button
        ->jsProperties();

      // Define template buttons as normal buttons with a special class name.
      if (!empty($item['template']) && empty($item['code'])) {
        $item['cname'] = 'template-button ficon-template' . (!empty($item['cname']) ? ' ' . $item['cname'] : '');
        $item['text'] = '<span class="template-button-text">' . (empty($item['text']) ? Html::escape($item['label']) : $item['text']) . '</span>';
        $item['label'] = '[' . $this
          ->t('Template') . ']' . $item['label'];
        $item['multiple'] = TRUE;
      }

      // Remove unneeded properties.
      unset($item['template'], $item['code']);
      $widget['items'][$bid] = $item;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BUEditorPluginBase::alterEditorForm public function Alters entity form of a BUEditor Editor. Overrides BUEditorPluginInterface::alterEditorForm
BUEditorPluginBase::validateEditorForm public function Validates entity form of a BUEditor Editor. Overrides BUEditorPluginInterface::validateEditorForm 1
Core::alterEditorJS public function Alters JS data of a BUEditor Editor. Overrides BUEditorPluginBase::alterEditorJS
Core::alterToolbarWidget public function Alters the toolbar widget used in BUEditor Editor form. Overrides BUEditorPluginBase::alterToolbarWidget
Core::getButtons public function Returns plugin buttons. Overrides BUEditorPluginBase::getButtons
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.