agence-adeliom/easy-editor-bundle

A Symfony bundle for EasyAdmin that provide a flexible content editor

1.0.0 2021-10-21 15:09 UTC

This package is auto-updated.

Last update: 2021-11-21 15:22:39 UTC


README

Adeliom Quality gate

Easy Editor Bundle

Provide a flexible content editor for Easyadmin.

Features

  • Ability to create custom blocks
  • Twig extension to render the content

Installation

Install with composer

composer require agence-adeliom/easy-editor-bundle

Documentation

Usage

Entity

class Article
{
    /**
     * @ORM\Column(type="json", nullable=true)
     */
    private $content = [];
}

CRUD Controller

class ArticleCrudController extends AbstractCrudController
{
    // Add the custom form theme
    public function configureCrud(Crud $crud): Crud
    {
        return $crud
            ->addFormTheme('@EasyEditor/form/editor_widget.html.twig')
            ;
    }

    public function configureFields(string $pageName): iterable
    {
        yield EasyEditorField::new('content');
    }
}

Twig template

{% for block in object.content %}
    {{ easy_editor_block(block) }}
{% endfor %}

Create a new type

bin/console make:block

Events

easy_editor.render_block

use Symfony\Contracts\EventDispatcher\Event;

$dispatcher->addListener('easy_editor.render_block', function (Event $event) {
    // will be executed when the easy_editor.render_block event is dispatched

    // Get
    $block = $event->getArgument('block');
    $settings = $event->getArgument('settings');

    // Set
    $event->setArgument("block", $block);
    $event->setArgument("settings", $settings);
});

License

MIT

Authors