Charcoal CMS (内容管理系统) 模块


README

CMS 包提供构建面向用户的网站所需的常用对象和工具。

安装

composer require charcoal/cms

对于 Charcoal 项目,服务提供者可以从您的配置文件中注册

{
    "service_providers": {
        "charcoal/cms/service-provider/cms": {}
    }
}

用法

对象

部分对象

在 Charcoal 中,部分 是作为完整网站结构图一部分的可达 页面,可以通过唯一的 URL (routable) 显示在菜单或面包屑导航中。

部分类型

    • 块部分将其内容定义为块的结构图。
  • 内容
    • 内容部分将其内容定义为一个简单的 HTML 属性。
    • 空部分链接到一个模板,但不需要任何自定义内容。
  • 外部
    • 外部部分简单地重定向到外部(或内部)URL。

所有部分类型,除了 外部,都使用 Template 对象进行渲染。通常,Charcoal view 确保链接 template(默认为 mustache)。

部分是标准 Charcoal Model,这意味着它们可以用 Metadata 对象(定义属性映射)进行描述,并且可以用 Source 对象进行存储。

基本部分属性

接口

从模型

  • Describable:对象可以通过元数据定义。
  • Storable:对象有唯一的 ID,并且可以存储在存储/数据库中。

从内容

  • Content:一个“管理”的 Charcoal 模型(可以用元数据/存储进行描述)。
  • Authorable:创建和修改用户(管理员)存储在存储中。
  • Revisionable:每次对象更新时,存储中都会保留更改的副本。
  • Timestampable:创建和修改时间存储在存储中。

来自 charcoal/object

  • Hierarchicale:对象可以按层次堆叠。
  • Publishable:对象有发布状态、日期和过期时间。允许审查。
  • Routable:对象可以通过 URL 访达。

来自 charcoal/cms

  • Metatag:对象有用于 SEO 的元信息。
  • Searchable:可以使用额外关键词来帮助搜索引擎。
  • Templateable:对象可以使用模板/控制器/配置组合进行渲染。

扩展部分对象

\Charcoal\Cms\Section\* 对象是 final。要扩展,请使用 \Charcoal\Cms\AbstractSection 基础对象,以确保不会出现元数据冲突。

标签对象

标签 对象通过提供额外的分类层将任何对象联系起来。标签还可以用于增强内部搜索引擎。

事件对象

Charcoal 事件 是一个特殊的内容对象,用于描述一个事件,该事件通常发生在特定日期和地点。

基本事件属性

接口

从模型

  • Describable:对象可以通过元数据定义。
  • Storable:对象有唯一的 ID,并且可以存储在存储/数据库中。

从内容

  • Content:一个“管理”的 Charcoal 模型(可以用元数据/存储进行描述)。
  • Authorable:创建和修改用户(管理员)存储在存储中。
  • Revisionable:每次对象更新时,存储中都会保留更改的副本。
  • Timestampable:创建和修改时间存储在存储中。

来自 charcoal/object

  • Categorizable:对象可以被放入一个类别中。
  • Publishable:对象有发布状态、日期和过期时间。允许审查。
  • Routable:对象可以通过 URL 访达。

来自 charcoal/cms

  • Metatag:对象有用于 SEO 的元信息。
  • Searchable:可以使用额外关键词来帮助搜索引擎。
  • Templateable:对象可以使用模板/控制器/配置组合进行渲染。

扩展事件对象

\Charcoal\Cms\Event 对象是 final 的。若要扩展,请使用 \Charcoal\Cms\AbstractEvent 基类对象,以确保不会出现元数据冲突。

事件类别

事件类别 对象是简单的 charcoal/object/category,用于对事件进行分组/分类。默认类型是 Charcoal\Cms\EventCategory

事件 实现了来自 charcoal/objectCategorizable 接口。

常见问题对象

常见问题 对象是一种特殊的内容类型,采用“问题”/“答案”格式。

常见问题类别

常见问题类别 对象是简单的 charcoal/object/category,用于对常见问题对象进行分组/分类。默认类型是 Charcoal\Cms\FaqCategory

常见问题 实现了来自 charcoal/objectCategorizable 接口。

新闻对象

新闻对象是一种特殊的内容类型,具有特定的新闻日期。

基础新闻属性

接口

从模型

  • Describable:对象可以通过元数据定义。
  • Storable:对象有唯一的 ID,并且可以存储在存储/数据库中。

从内容

  • Content:一个“管理”的 Charcoal 模型(可以用元数据/存储进行描述)。
  • Authorable:创建和修改用户(管理员)存储在存储中。
  • Revisionable:每次对象更新时,存储中都会保留更改的副本。
  • Timestampable:创建和修改时间存储在存储中。

来自 charcoal/object

  • Categorizable:对象可以被放入一个类别中。
  • Publishable:对象有发布状态、日期和过期时间。允许审查。
  • Routable:对象可以通过 URL 访达。

来自 charcoal/cms

  • Metatag:对象有用于 SEO 的元信息。
  • Searchable:可以使用额外关键词来帮助搜索引擎。
  • Templateable:对象可以使用模板/控制器/配置组合进行渲染。

扩展新闻对象

\Charcoal\Cms\News 对象是 final 的。若要扩展,请使用 \Charcoal\Cms\AbstractNews 基类对象,以确保不会出现元数据冲突。

新闻类别

新闻类别 对象是简单的 charcoal/object/category,用于对事件进行分组/分类。默认类型是 Charcoal\Cms\NewsCategory

新闻 实现了来自 charcoal/objectCategorizable 接口。

资源