gravity-cms / cms-bundle
该软件包已被废弃且不再维护。没有建议替代软件包。
Gravity CMS Bundle
dev-master
2016-07-02 16:56 UTC
Requires
- gravity-cms/admin-bundle: dev-master
- symfony/config: ^3.0
- symfony/dependency-injection: ^3.0
- symfony/http-foundation: ^3.0
- twig/extensions: ^1.3
- twig/twig: ^1.24
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2021-09-10 20:15:32 UTC
README
此软件包是 Gravity CMS 核心代码。
什么是 GravityCMS?
Gravity 是 SonataCMS 的扩展,提供了一种通过简单的 YAML 配置创建节点实体和字段的便捷方法。
此软件包包含什么?
此软件包处理核心功能
- 节点管理(管理、路由、字段、搜索)
- 字段管理(管理)
- 表单助手
节点和字段是什么?
节点是一个直接解析到 URL 的实体,例如页面或博客文章。字段是用户在节点中输入的任何类型的数据。
In Gravity,一个字段有一个 Definition 类和一个 Widget 类。Widget 类将处理字段在 CRUD 表单上的显示方式。
好的,那么它是如何工作的呢?
假设我们有一个 Page
实体。页面将有一个 title
、body
和一个 image
(图像字段需要 GravityMediaBundle,但原理相同)。所以,首先,我们需要创建我们的实体
<?php namespace Acme\DemoBundle\Entity; use Gravity\CmsBundle\Entity\Node; /** * @ORM\Entity */ class Page extends Node { protected $title; protected $body; protected $image; // getters and setters }
然后,我们在 Resources/config/gravity/Page.node.yml
中创建我们的映射文件
routing: path: /{title} extendable: true search: handler: Gravity\CmsBundle\Search\Handler\NodeHandler fields: title: type: text options: limit: 1 required: true char_min: 10 widget: type: text.unformatted options: ~ body: type: text options: limit: 1 required: true char_min: 100 char_max: 10000 widget: type: text.formatted options: default: 'Default Text' image: type: media options: limit: 1 widget: limit: 1 required: true entity: Gravity\MediaBundle\Entity\Media provider: sonata.media.provider.image provider_context: default widget: type: gravity.media options: image_preview: big
然后运行
./app/console cache:clear ./app/console doctrine:schema:update --force
就这样!当你进入你的管理仪表板时,你会看到新字段已显示并准备好编辑。