Image.php

Same filename in this branch
  1. 9 core/modules/media/src/Plugin/media/Source/Image.php
  2. 9 core/modules/quickedit/src/Plugin/InPlaceEditor/Image.php
  3. 9 core/modules/image/src/Plugin/InPlaceEditor/Image.php
  4. 9 core/lib/Drupal/Core/Image/Image.php
  5. 9 core/lib/Drupal/Component/Utility/Image.php
Same filename in other branches
  1. 8.9.x core/modules/media/src/Plugin/media/Source/Image.php
  2. 8.9.x core/modules/image/src/Plugin/InPlaceEditor/Image.php
  3. 8.9.x core/lib/Drupal/Core/Image/Image.php
  4. 8.9.x core/lib/Drupal/Component/Utility/Image.php
  5. 10 core/modules/media/src/Plugin/media/Source/Image.php
  6. 10 core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php
  7. 10 core/lib/Drupal/Core/Image/Image.php
  8. 10 core/lib/Drupal/Component/Utility/Image.php
  9. 11.x core/modules/media/src/Plugin/media/Source/Image.php
  10. 11.x core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php
  11. 11.x core/lib/Drupal/Core/Image/Image.php
  12. 11.x core/lib/Drupal/Component/Utility/Image.php

Namespace

Drupal\ckeditor5\Plugin\CKEditor5Plugin

File

core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php

View source
<?php

declare (strict_types=1);
namespace Drupal\ckeditor5\Plugin\CKEditor5Plugin;

use Drupal\ckeditor5\Plugin\CKEditor5PluginConfigurableTrait;
use Drupal\ckeditor5\Plugin\CKEditor5PluginDefault;
use Drupal\ckeditor5\Plugin\CKEditor5PluginConfigurableInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;
use Drupal\editor\EditorInterface;

/**
 * CKEditor 5 Image plugin.
 *
 * @internal
 *   Plugin classes are internal.
 */
class Image extends CKEditor5PluginDefault implements CKEditor5PluginConfigurableInterface {
    use CKEditor5PluginConfigurableTrait;
    use DynamicPluginConfigWithCsrfTokenUrlTrait;
    
    /**
     * {@inheritdoc}
     */
    public function getDynamicPluginConfig(array $static_plugin_config, EditorInterface $editor) : array {
        $config = $static_plugin_config;
        if ($editor->getImageUploadSettings()['status'] === TRUE) {
            $config += [
                'drupalImageUpload' => [
                    'uploadUrl' => self::getUrlWithReplacedCsrfTokenPlaceholder(Url::fromRoute('ckeditor5.upload_image')->setRouteParameter('editor', $editor->getFilterFormat()
                        ->id())),
                    'withCredentials' => TRUE,
                    'headers' => [
                        'Accept' => 'application/json',
                        'text/javascript',
                    ],
                ],
            ];
        }
        return $config;
    }
    
    /**
     * {@inheritdoc}
     *
     * @see \Drupal\editor\Form\EditorImageDialog
     * @see editor_image_upload_settings_form()
     */
    public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
        $form_state->loadInclude('editor', 'admin.inc');
        return editor_image_upload_settings_form($form_state->get('editor'));
    }
    
    /**
     * {@inheritdoc}
     */
    public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
        $form_state->setValue('status', (bool) $form_state->getValue('status'));
        $form_state->setValue([
            'max_dimensions',
            'width',
        ], (int) $form_state->getValue([
            'max_dimensions',
            'width',
        ]));
        $form_state->setValue([
            'max_dimensions',
            'height',
        ], (int) $form_state->getValue([
            'max_dimensions',
            'height',
        ]));
    }
    
    /**
     * {@inheritdoc}
     */
    public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
        // Store this configuration in its out-of-band location.
        $form_state->get('editor')
            ->setImageUploadSettings($form_state->getValues());
    }
    
    /**
     * {@inheritdoc}
     *
     * This returns an empty array as image upload config is stored out of band.
     */
    public function defaultConfiguration() {
        return [];
    }

}

Classes

Title Deprecated Summary
Image CKEditor 5 Image plugin.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.