Skip to content

Why not add ehyiah/ux-quill for text editor #125

@ikakarov

Description

@ikakarov

Some time ago I suggested changing TrixEditor with EditorJs, now I can suggest my way of integrating it into quilljs.

Not best but just works.

Step 1: Install ehyiah/ux-quill form: https://github.com/Ehyiah/ux-quill

Step 2 Enable editor using new WysiwygStrategy from SyliusCMS.

Add this line in config/packages/sylius_cms.yaml

# config/packages/sylius_cms.yaml
... 
sylius_cms:
   wysiwyg_editor: quill

Next create sa strategy for example

# src/Strategy/Wysiwyg/QuillStrategy.php
<?php 


declare(strict_types = 1);

namespace App\Strategy\Wysiwyg;

use Ehyiah\QuillJsBundle\DTO\Modules\FullScreenModule;
use Ehyiah\QuillJsBundle\DTO\QuillGroup;
use Ehyiah\QuillJsBundle\Form\QuillType;
use Sylius\CmsPlugin\Form\Strategy\Wysiwyg\AbstractWysiwygStrategy;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;

class QuillStrategy extends AbstractWysiwygStrategy
{
    public function getParent(): string
    {
        return QuillType::class;
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        parent::configureOptions($resolver);
        $resolver->setDefaults([
            'quill_options' => QuillGroup::buildWithAllFields(),
            'modules' => [
                new FullScreenModule(),
            ]
        ]);
    }

    public function buildView(FormView $view, FormInterface $form, array $options): void
    {
        $view->vars['block_prefix'] = 'sylius_cms_plugin_quill_strategy';
    }

    public function getBlockPrefix(): string
    {
        return 'sylius_cms_plugin_quill_strategy';
    }
}

Define service in services.yaml or use attributes

# config/services.yaml 
...
  sylius_cms.form.wysiwyg_strategy.quill:
      class: App\Strategy\Wysiwyg\QuillStrategy
      tags:
          - {name: sylius_cms.wysiwyg_strategy, strategy: quill }

Now every form in sylius cms who use Wysiwyg editor use Qill.

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions