agence-adeliom/easy-editor-bundle

为EasyAdmin提供灵活的内容编辑器的Symfony包

2.0.122 2024-05-29 09:45 UTC

README

Adeliom Quality gate

Easy Editor Bundle

为Easyadmin提供灵活的内容编辑器。

功能

  • 能够创建自定义块
  • 用于渲染内容的Twig扩展

版本

使用Symfony Flex进行安装

添加我们的recipes端点

{
  "extra": {
    "symfony": {
      "endpoint": [
        "https://api.github.com/repos/agence-adeliom/symfony-recipes/contents/index.json?ref=flex/main",
        ...
        "flex://defaults"
      ],
      "allow-contrib": true
    }
  }
}

使用composer安装

composer require agence-adeliom/easy-editor-bundle

文档

使用方法

实体

class Article
{
    #[ORM\Column(name: 'content', type: \Doctrine\DBAL\Types\Types::JSON, nullable: true)]
    private $content = [];
}

CRUD控制器

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模板

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

创建新类型

bin/console make:block

事件

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);
});

许可证

MIT

作者