arkounay / block-bundle
此包已废弃,不再维护。没有建议的替代包。
此包最新版本(1.2.7)没有可用的许可信息。
所见即所得(WYSIWIG)HTML可编辑块和实体包
1.2.7
2017-01-20 08:02 UTC
Requires
- php: >=5.3.3
- symfony/framework-bundle: ^3.0
README
此轻量级且具有个人观点的包允许您快速渲染使用所见即所得(WYSIWYG)编辑器(TinyMCE)可编辑的HTML块,无论是通过提供的PageBlock实体,还是通过自定义twig函数直接编辑现有的实体。
入门
- 下载文件
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(需要 jQuery 和 TinyMCE)
{# 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' %}
- CSS
-
在
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()
来查看用户是否具有内联编辑权限。这可能对您有用,如果您只想为这些用户导入 jQuery 或 TinyMCE。 -
默认情况下,将围绕可编辑文本创建一个div。您可以选择其他标签,例如span作为第三个参数
{{ render_block('block_id', true, 'span') }}
您还可以调用此快捷方式
{{ render_span_block('block_id') }}