tomatom / atom-bundle
Symfony 扩展包
3.0.5
2024-05-29 14:48 UTC
Requires
- php: >=8.0.2
- knplabs/doctrine-behaviors: ^2.6
- symfony/framework-bundle: ^6.0
- symfony/security-bundle: ^6.0
- twig/cache-extra: ^3.3
This package is auto-updated.
Last update: 2024-09-09 20:44:57 UTC
README
Symfony 扩展包,用于轻松编辑前端内容。
依赖关系
-
symfony/framework-standard-edition ">=2.8|~3.0"
-
stof/doctrine-extensions-bundle "~1.2"
-
jQuery
安装
-
使用 Symfony 框架创建项目
-
安装 stof/doctrine-extensions-bundle "~1.2" - 可翻译 行为 (快速安装及配置说明)
-
安装扩展包
对于 Symfony ~2.8:
composer require tomatom/atom-bundle "~1.0"
对于 Symfony ~4.2:
composer require tomatom/atom-bundle "~2.0"
AppKernel.php
new TomAtom\AtomBundle\TomAtomAtomBundle(),
配置
routing.yml
atom: resource: "@TomAtomAtomBundle/Controller/" type: annotation
config.yml
# Make sure translator is uncommented: framework: translator: { fallbacks: ["%locale%"] } # ... # Twig Configuration twig: base_template_class: TomAtom\AtomBundle\Twig\Template # ...
security.yml
security: # ... # add role 'ROLE_ATOM_EDIT': role_hierarchy: ROLE_ATOM_EDIT: ROLE_USER ROLE_ADMIN: ROLE_ATOM_EDIT ROLE_SUPER_ADMIN: ROLE_ADMIN # ...
translation.yml
framework: # ... # Add enabled locales for multi language application enabled_locales: ['cs', 'en', 'de']
::base.html.twig
(或您的基模板)
{# don't forget to include your jQuery (tested with 1.8.3 - 2.1.4, others may work, 3.0 doesn't): #} <script src={{ asset('path/to/jQuery.js') }}></script> {{ render(controller('TomAtomAtomBundle:Atom:_metas')) }}
- 若要从编辑器拖放上传图片,请 创建上传目录:
/web/uploads/atom
用法
-
Atom 仅在
prod
环境中工作! 在test
、dev
和其他所有环境中,它们都被禁用,因此您可以立即看到更新的更改。 -
目前有 3 种 Atom 类型
atom
- Atom 带有富文本编辑器 (CKEditor)atomline
- Atom 行 用于在固定 HTML 标签内编辑纯文本atomentity
- Atom 实体 显示和更新给定实体的列
- 若要在模板中使用 Atom,请添加带有 唯一 标识符的 Atom 标签:
{% atom unique_identifier_here %}
和结束标签{% endatom %}
。您可以在标签之间添加默认内容,这些内容将在首次加载时保存。
{% atom foo %} <p> I am editable! </p> {% endatom %}
- 如果您只想编辑文本内容(如标题或表格单元格)而不想使用富文本编辑器,则有 Atom 行 标签(同样带有 唯一 标识符):
{% atomline unique_identifier_here %}
和结束{% endatomline %}
。
<h1> {% atomline bar %} I am editable! {% endatomline %} <h1>
-
若要编辑其他实体,则有 Atom 实体 标签,它接受以下参数
- 包含所需实体的 Bundle 名称:实体名称(例如
AppBundle:Product
) - 用于保存内容的函数名称(通常是一些设置器)
- 实体 ID
- 包含所需实体的 Bundle 名称:实体名称(例如
-
示例(无需添加默认值,它将通过适当的获取器获取)
<div class="product-price"> {% atomentity AppBundle:Product, setPrice, 123 %}{% endatomentity %} <div>
可编辑模式
- 在
prod
环境下通过用户角色ROLE_ATOM_EDIT
进入带有 Atoms 的页面将解锁 可编辑模式,该模式可以通过浏览器屏幕右下角的图标 启用或禁用。
翻译
- 通过更改
_locale
请求参数在不同语言之间切换时,您可以轻松更新指定语言中的 Atoms。如果 Atom 实体实现了 Gedmo 可翻译行为,它们也可以从前端进行翻译。