locomotivemtl / charcoal-cms
Charcoal CMS(内容管理系统)模块
Requires
- php: >7.1
- locomotivemtl/charcoal-app: ~0.8
- locomotivemtl/charcoal-attachment: ~0.10
- locomotivemtl/charcoal-core: ~0.6
- locomotivemtl/charcoal-factory: ~0.4
- locomotivemtl/charcoal-object: ~0.7
- locomotivemtl/charcoal-property: ~0.10
- locomotivemtl/charcoal-translator: ~0.3
- psr/http-message: ^1.0
Requires (Dev)
- locomotivemtl/charcoal-admin: ~0.28
- mustache/mustache: ^2.11
- php-coveralls/php-coveralls: ^2.2
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.3
- tedivm/stash: ~0.14
Conflicts
- locomotivemtl/charcoal-admin: <0.28.0
- dev-master / 0.10.x-dev
- 0.10.0.3
- 0.10.0.2
- 0.10.0.1
- 0.10.0
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.6.4
- 0.8.6.3
- 0.8.6.2
- 0.8.6.1
- 0.8.6
- 0.8.5
- 0.8.4.1
- 0.8.4
- 0.8.3.1
- 0.8.3
- 0.8.2.1
- 0.8.2
- 0.8.1
- 0.8.0.3
- 0.8.0.2
- 0.8.0.1
- 0.8.0
- 0.7.0.1
- 0.7.0
- 0.6.0
- 0.5.2
- 0.5.1.1
- 0.5.1
- 0.5.0
- 0.4.6.1
- 0.4.6
- 0.4.5.1
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1.2
- 0.4.1.1
- 0.4.1
- 0.4.0.2
- 0.4.0.1
- 0.4
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5.1
- 0.3.5
- 0.3.4
- 0.3.3.2
- 0.3.3.1
- 0.3.3
- 0.3.2.4
- 0.3.2.3
- 0.3.2.2
- 0.3.2.1
- 0.3.2
- 0.3.1
- 0.3
- 0.2.1
- 0.2
- 0.1
- dev-feature/camelizePropertiesAndUseArrayAccess
- dev-mcaskill-patch-web-template
- dev-losted-patch-unit-tests
- dev-mducharme-admin-metadata
- dev-dlord-relation
This package is auto-updated.
Last update: 2024-08-30 02:13:29 UTC
README
Charcoal CMS 模块(内容管理系统)。提供基本对象以构建网站。特别是,Section
(或页面)、新闻
、事件
、Faq
以及其他用户数据,特别是 ContactInquiry
。
此模块高度依赖于 charcoal-object
(因此是 charcoal-core
),它提供了 CMS 对象所依赖的基类 Content
以及许多特质/接口行为。
如何安装
安装 charcoal-cms 的首选(也是唯一支持)方式是使用 composer
★ composer require locomotivemtl/charcoal-cms
对于完整、可立即使用的项目,从 charcoal project boilerplate
开始
★ composer create-project locomotivemtl/charcoal-project-boilerplate:@dev --prefer-source
依赖项
PHP 5.6+
- 出于安全和性能原因,建议使用 PHP 7。
locomotivemtl/charcoal-attachment
- 内容块通过附件提供。
locomotivemtl/charcoal-core
- 核心 charcoal 模型和存储类。
- 提供基 Model,它依赖于 Storable 和 Describable。
locomotivemtl/charcoal-object
- CMS 对象基于
\Charcoal\Object\Content
。
- CMS 对象基于
locomotivemtl/charcoal-translator
- 通过 symfony 翻译器(charcoal)提供本地化。
推荐依赖项
locomotivemtl/charcoal-admin
- 后端(管理面板)。
对象
核心对象
Section 对象
在 Charcoal 中,一个 section 是作为完整网站结构图一部分的可到达的 页面。它们可以在菜单或面包屑导航中显示,并通过唯一的 URL(routable
)访问。
section 类型
块
- 块 section 将其内容定义为块的结构的映射。
内容
- 内容 section 在单个简单的 HTML 属性中定义其内容。
空
- 空 section 与模板相关联,但不需要任何自定义内容。
外部
- 外部 section 简单地重定向到外部(或内部)URL。
所有 section 类型(除 外部 外)都使用 Template
对象进行渲染。通常,Charcoal view
确保链接到 template
(默认为 mustache)
section 是标准的 Charcoal
Model
,这意味着它们可以通过Metadata
对象(它定义了属性映射)进行描述,并且可以通过Source
对象进行存储。
基本 section 属性
接口
从模型
Describable
:对象可以通过 Metadata 定义。Storable
:对象具有唯一的 ID 并且可以存储在存储/数据库中。
从内容
Content
:一个“管理”的 charcoal 模型(可通过元数据/存储)。Authorable
:创建和修改用户(管理员)被保存在存储中。Revisionable
:在对象每次更新时,将保留更改的副本。Timestampable
:创建和修改时间被保存在存储中。
从 charcoal-object
分层
:对象可以分层堆叠。可发布
:对象具有发布状态、日期和过期时间。允许审核。可路由
:对象可以通过URL访问。
来自 charcoal-cms
元标签
:对象具有用于SEO目的的元信息。可搜索
:可以使用额外关键词帮助搜索引擎。可模板化
:对象可以使用模板/控制器/配置组合进行渲染。
扩展部分对象
\Charcoal\Cms\Section\*
对象是final
的。要扩展,请使用\Charcoal\Cms\AbstractSection
基本对象,以确保不会出现元数据冲突。
标签对象
标签对象通过提供额外的分类层将任何对象链接在一起。标签还可以用于增强内部搜索引擎。
CMS 对象
事件对象
Charcoal 事件是一个专门的内容对象,用于描述事件,通常发生在特定日期和地点。
基本事件属性
接口
从模型
Describable
:对象可以通过 Metadata 定义。Storable
:对象具有唯一的 ID 并且可以存储在存储/数据库中。
从内容
Content
:一个“管理”的 charcoal 模型(可通过元数据/存储)。Authorable
:创建和修改用户(管理员)被保存在存储中。Revisionable
:在对象每次更新时,将保留更改的副本。Timestampable
:创建和修改时间被保存在存储中。
从 charcoal-object
可分类
:对象可以被放入一个类别中。可发布
:对象具有发布状态、日期和过期时间。允许审核。可路由
:对象可以通过URL访问。
来自 charcoal-cms
元标签
:对象具有用于SEO目的的元信息。可搜索
:可以使用额外关键词帮助搜索引擎。可模板化
:对象可以使用模板/控制器/配置组合进行渲染。
扩展事件对象
\Charcoal\Cms\Event
对象是final
的。要扩展,请使用\Charcoal\Cms\AbstractEvent
基本对象,以确保不会出现元数据冲突。
事件类别
事件类别对象是简单的charcoal/object/category
,用于分组/分类事件。默认类型是Charcoal\Cms\EventCategory
。
事件实现了来自charcoal-object的Categorizable
接口。
常见问题解答对象
常见问题解答对象是一种特殊的内容类型,采用“问题”/“答案”格式。
常见问题解答类别
常见问题解答类别对象是简单的charcoal/object/category
,用于分组/分类常见问题解答对象。默认类型是Charcoal\Cms\FaqCategory
。
常见问题解答实现了来自charcoal-object的Categorizable
接口。
新闻对象
新闻对象是一种特殊的内容类型,具有特定的新闻日期。
基本新闻属性
接口
从模型
Describable
:对象可以通过 Metadata 定义。Storable
:对象具有唯一的 ID 并且可以存储在存储/数据库中。
从内容
Content
:一个“管理”的 charcoal 模型(可通过元数据/存储)。Authorable
:创建和修改用户(管理员)被保存在存储中。Revisionable
:在对象每次更新时,将保留更改的副本。Timestampable
:创建和修改时间被保存在存储中。
从 charcoal-object
可分类
:对象可以被放入一个类别中。可发布
:对象具有发布状态、日期和过期时间。允许审核。可路由
:对象可以通过URL访问。
来自 charcoal-cms
元标签
:对象具有用于SEO目的的元信息。可搜索
:可以使用额外关键词帮助搜索引擎。可模板化
:对象可以使用模板/控制器/配置组合进行渲染。
扩展新闻对象
\Charcoal\Cms\News
对象是final
的。要扩展,请使用\Charcoal\Cms\AbstractNews
基本对象,以确保不会出现元数据冲突。
新闻类别
新闻类别对象是简单的charcoal/object/category
,用于分组/分类事件。默认类型是Charcoal\Cms\NewsCategory
。
新闻实现了来自charcoal-object的Categorizable
接口。
开发
安装开发环境
$ composer install --prefer-source
API文档
- 自动生成的
phpDocumentor
API文档可在以下地址获取:https://locomotivemtl.github.io/charcoal-cms/docs/master/ - 自动生成的
apigen
API文档可在以下地址获取:https://codedoc.pub/locomotivemtl/charcoal-cms/master/
开发依赖
phpunit/phpunit
squizlabs/php_codesniffer
satooshi/php-coveralls
持续集成
编码风格
charcoal-cms
模块遵循Charcoal编码风格
- PSR-1
- PSR-2
- PSR-4,因此自动加载由Composer提供。
- phpDocumentor注释。
- 有关代码风格的所有详细信息,请参阅phpcs.xml文件。
可以使用
composer phpcs
执行编码风格验证/强制执行。还可以使用composer phpcbf
使用自动修复器。
作者
许可证
Charcoal根据MIT许可证授权。有关详细信息,请参阅LICENSE。