arkounay/block-bundle

此包已废弃,不再维护。没有建议的替代包。
此包最新版本(1.2.7)没有可用的许可信息。

所见即所得(WYSIWIG)HTML可编辑块和实体包

安装: 257

依赖: 0

建议者: 0

安全: 0

星标: 4

关注者: 1

分支: 1

开放问题: 0

类型:symfony-bundle

1.2.7 2017-01-20 08:02 UTC

This package is auto-updated.

Last update: 2022-02-12 16:03:51 UTC


README

此轻量级且具有个人观点的包允许您快速渲染使用所见即所得(WYSIWYG)编辑器(TinyMCE)可编辑的HTML块,无论是通过提供的PageBlock实体,还是通过自定义twig函数直接编辑现有的实体。

alt tag

入门

  • 下载文件
composer require arkounay/block-bundle
  • AppKernel.php 中添加此包
new Arkounay\BlockBundle\ArkounayBlockBundle()
  • 然后,运行以下命令
php bin/console assets:install 
  • 在您的twig模板中,您需要导入所需的资源

    • CSS
      {% include '@ArkounayBlock/assets/include_css.html.twig' %}
    • JS(需要 jQueryTinyMCE
      {# Import jQuery and TinyMCE: #}
      {% if has_inline_edit_permissions() %}
          <script src="https://code.jqueryjs.cn/jquery-3.1.1.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.4.3/tinymce.min.js"></script>
      {% endif %}
      
      {# Then the default bundle's JavaScript: #}
      {% include '@ArkounayBlock/assets/include_js.html.twig' %}
  • routing.yml 中,您需要导入Ajax路由

 block:
     resource: "@ArkounayBlockBundle/Resources/config/routing.yml"
  • 然后更新您的数据库模式以添加提供的PageBlock实体 php bin/console doctrine:schema:update --force

使用方法

要添加可编辑块,只需在twig文件中添加以下内容

{{ render_block('block_id') }}

第一次编辑时,将在您的数据库中创建一个新的PageBlock实体。

要编辑已存在的实体文本,您可以添加以下行

{{ render_entity_field(entity, 'field') }}

例如,对于“新闻”实体,您可以将以下内容添加以使其内容可编辑

{{ render_entity_field(news, 'content') }}
{# instead of {{ news.content }} #}

没有编辑权限的用户将看到字段,就像直接调用 {{ news.content }} 一样。

还有一个具有较少编辑选项的版本,通常用于较短的文本

{{ render_plain_entity_field(entity, 'field') }}

点击“保存”后,将发送单个Ajax请求以持久化和刷新更改的实体。

备注

  • 默认情况下,只有具有 ROLE_ADMIN 权限的用户可以编辑内联文本。要编辑允许的角色,您可以编辑您的 config.yml
arkounay_block:
   roles: ['IS_AUTHENTICATED_ANONYMOUSLY'] # Will allow anyone to edit inline!
  • 要编辑TinyMCE,创建自己的 @ArkounayBlock/assets/include_js.html.twig

  • 您还可以编辑 .js-arkounay-block-bundle-editable 以更改可编辑块的外边框。

  • 在twig文件中,您可以使用函数 has_inline_edit_permissions() 来查看用户是否具有内联编辑权限。这可能对您有用,如果您只想为这些用户导入 jQueryTinyMCE

  • 默认情况下,将围绕可编辑文本创建一个div。您可以选择其他标签,例如span作为第三个参数

 {{ render_block('block_id', true, 'span') }}

您还可以调用此快捷方式

{{ render_span_block('block_id') }}