charcoal / admin
Charcoal 管理仪表盘
Requires
- php: ^7.4 || ^8.0
- barryvdh/elfinder-flysystem-driver: ^0.3
- charcoal/app: ^5.0
- charcoal/cache: ^5.0
- charcoal/cms: ^5.0
- charcoal/core: ^5.0
- charcoal/email: ^5.0
- charcoal/object: ^5.0
- charcoal/translator: ^5.0
- charcoal/ui: ^5.0
- charcoal/user: ^5.0
- guzzlehttp/guzzle: ^6.0 || ^7.0
- kriswallsmith/assetic: ^1.4
- laminas/laminas-permissions-acl: ^2.8
- mcaskill/php-html-build-attributes: ^1.0
- psr/cache: ^1.0
- psr/http-message: ^1.0
- psr/log: ^1.0
- studio-42/elfinder: 2.1.64
Requires (Dev)
- league/csv: ^9.5
- mockery/mockery: ^1.0
- mustache/mustache: ^2.11
- php-coveralls/php-coveralls: ^2.2
- phpunit/phpunit: ^9.5
- seld/jsonlint: ^1.9
- squizlabs/php_codesniffer: ^3.5
- tedivm/stash: ~0.16
Suggests
- fabpot/goutte: To use the various crawler-based tools.
- league/csv: To use the exporter (to CSV).
Replaces
- dev-main / 5.x-dev
- v5.0.0
- v4.1.0
- v4.0.8
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.2
- v4.0.1
- v4.0.0
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.16
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- 0.30.3
- 0.30.2
- 0.30.1
- 0.30.0
- 0.29.1
- 0.29.0.1
- 0.29.0
- 0.28.2
- 0.28.1
- 0.28.0.1
- 0.28.0
- 0.27.2
- 0.27.1
- 0.27.0
- 0.26.2
- 0.26.1
- 0.26.0
- 0.25.1
- 0.25.0
- 0.24.6
- 0.24.5
- 0.24.4
- 0.24.3.1
- 0.24.3
- 0.24.2.1
- 0.24.2
- 0.24.1.1
- 0.24.1
- 0.24.0
- 0.23.10.1
- 0.23.10
- 0.23.9.1
- 0.23.9
- 0.23.8
- 0.23.7
- 0.23.6
- 0.23.5.3
- 0.23.5.2
- 0.23.5.1
- 0.23.5
- 0.23.4
- 0.23.3
- 0.23.2
- 0.23.1
- 0.23.0
- 0.22.3.1
- 0.22.3
- 0.22.2
- 0.22.1
- 0.22.0.13
- 0.22.0.12
- 0.22.0.11
- 0.22.0.10
- 0.22.0.9
- 0.22.0.8
- 0.22.0.7
- 0.22.0.6
- 0.22.0.5
- 0.22.0.4
- 0.22.0.3
- 0.22.0.2
- 0.22.0.1
- 0.22.0
- 0.21.7.1
- 0.21.7
- 0.21.6
- 0.21.5
- 0.21.4.1
- 0.21.4
- 0.21.3
- 0.21.2
- 0.21.1
- 0.21.0
- 0.20.0
- 0.19.0.1
- 0.19.0
- 0.18.0
- 0.17.3.1
- 0.17.3
- 0.17.2.6
- 0.17.2.5
- 0.17.2.4
- 0.17.2.3
- 0.17.2.2
- 0.17.2.1
- 0.17.2
- 0.17.1
- 0.17.0
- 0.16.7
- 0.16.6
- 0.16.5
- 0.16.4
- 0.16.3
- 0.16.2
- 0.16.1
- 0.16.0.1
- 0.16.0
- 0.15.13
- 0.15.12
- 0.15.11
- 0.15.10
- 0.15.9
- 0.15.8
- 0.15.7
- 0.15.6
- 0.15.5
- 0.15.4.1
- 0.15.4
- 0.15.3
- 0.15.2
- 0.15.1.1
- 0.15.1
- 0.15.0
- 0.14.2
- 0.14.1.1
- 0.14.1
- 0.14.0.1
- 0.14.0
- 0.13.21
- 0.13.20
- 0.13.19
- 0.13.18
- 0.13.17
- 0.13.16
- 0.13.15
- 0.13.14
- 0.13.13
- 0.13.12.1
- 0.13.12
- 0.13.11.2
- 0.13.11.1
- 0.13.11
- 0.13.10
- 0.13.9
- 0.13.8.2
- 0.13.8.1
- 0.13.8
- 0.13.7.8
- 0.13.7.7
- 0.13.7.6
- 0.13.7.5
- 0.13.7.4
- 0.13.7.3
- 0.13.7.2
- 0.13.7.1
- 0.13.7
- 0.13.6
- 0.13.5.1
- 0.13.5
- 0.13.4.3
- 0.13.4.2
- 0.13.4.1
- 0.13.4
- 0.13.3
- 0.13.2.1
- 0.13.2
- 0.13.1.2
- 0.13.1.1
- 0.13.1
- 0.13.0
- 0.12.1
- 0.12.0
- 0.11.3.3
- 0.11.3.2
- 0.11.3.1
- 0.11.3
- 0.11.2.3
- 0.11.2.2
- 0.11.2.1
- 0.11.2
- 0.11.1.2
- 0.11.1.1
- 0.11.1
- 0.11.0.1
- 0.11.0
- 0.10.5
- 0.10.4
- 0.10.3.2
- 0.10.3.1
- 0.10.3
- 0.10.2
- 0.10.1.1
- 0.10.1
- 0.10.0
- 0.9.9
- 0.9.8.3
- 0.9.8.2
- 0.9.8.1
- 0.9.8
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3.1
- 0.9.3
- 0.9.2.1
- 0.9.2
- 0.9.1
- 0.9
- 0.8.14.1
- 0.8.14
- 0.8.13
- 0.8.12
- 0.8.11
- 0.8.10
- 0.8.9.1
- 0.8.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3.1
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8
- 0.7.5
- 0.7.4.5
- 0.7.4.4
- 0.7.4.3
- 0.7.4.2
- 0.7.4.1
- 0.7.4
- 0.7.3.1
- 0.7.3
- 0.7.2
- 0.7.1.5
- 0.7.1.4
- 0.7.1.3
- 0.7.1.2
- 0.7.1.1
- 0.7.1
- 0.7.0
- 0.6.5
- 0.6.4.1
- 0.6.4
- 0.6.3
- 0.6.2.9
- 0.6.2.8
- 0.6.2.7
- 0.6.2.6
- 0.6.2.5
- 0.6.2.4
- 0.6.2.3
- 0.6.2.2
- 0.6.2.1
- 0.6.2
- 0.6.1.2
- 0.6.1.1
- 0.6.1
- 0.6.0.1
- 0.6.0
- 0.5.10
- 0.5.9
- 0.5.8
- 0.5.7
- 0.5.6
- 0.5.5
- 0.5.4.8
- 0.5.4.7
- 0.5.4.6
- 0.5.4.5
- 0.5.4.4
- 0.5.4.3
- 0.5.4.2
- 0.5.4.1
- 0.5.4
- 0.5.3
- 0.5.2.2
- 0.5.2.1
- 0.5.2
- 0.5.1.1
- 0.5.1
- 0.5.0
- 0.4.3
- 0.4.2.3
- 0.4.2.2
- 0.4.2.1
- 0.4.2
- 0.4.1
- 0.4
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7.1
- 0.3.7
- 0.3.6.1
- 0.3.6
- 0.3.5.7
- 0.3.5.6
- 0.3.5.5
- 0.3.5.4
- 0.3.5.3
- 0.3.5.2
- 0.3.5.1
- 0.3.5
- 0.3.4
- 0.3.3.1
- 0.3.3
- 0.3.2.1
- 0.3.2
- 0.3.1
- 0.3.0.1
- 0.3
- 0.2.9
- 0.2.8.1
- 0.2.8
- 0.2.7.1
- 0.2.7
- 0.2.6.1
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1.1
- 0.2.1
- 0.2
- 0.1.3.1
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1
- dev-develop
- dev-xav/quick-form-lang-tab
- dev-dependabot/npm_and_yarn/grunt-1.5.3
- dev-feature/advanced-search
- dev-joel/test-grid-stack
- dev-joel/allow-object-form-actions
- dev-feature/camelizePropertiesAndUseArrayAccess
- dev-mcaskill-patch-form-properties
- dev-mcaskill-patch-form-sidebars
- dev-acl-manager-refactor
- dev-release/0.16
- dev-joel/property-condional-logic-parser
- dev-cdn-cache-purge
This package is auto-updated.
Last update: 2024-09-13 16:09:59 UTC
README
Admin 包提供可定制的管理面板,用于管理 Web 应用程序和 API 的数据。
安装
composer require charcoal/admin
概述
核心概念
charcoal 管理控制面板 是
- 在 charcoal 对象和模型上添加额外的
admin
元数据,这控制了它们在后台如何自动定制。 - 一个用户 / 认证系统,它使用 ACL 进行权限管理。
- 一个可定制的 2 级菜单,为每个安装构建自定义的后端。
- 仪表板和小部件。包含一些预构建的功能,例如
- 列出对象集合(
admin/object/collection
),可从对象的 admin 元数据 进行定制。 - 创建和编辑对象(
admin/object/edit
),可从对象的 admin 元数据 进行定制。
- 列出对象集合(
- 一组 脚本,用于从 CLI 管理对象和后端。
此模块包含什么?
像所有 Charcoal 项目 / 模块一样,主要组件包括
- 自动加载器
- PSR-4,由 Composer 提供。
- 配置
- 作为 JSON 或 PHP 文件位于 config/ 目录中。
- 前端控制器
- admin 前端控制器在
\Charcoal\Admin\Module
类中处理。
- admin 前端控制器在
- 对象
- 通常位于
\Charcoal\Object\Content
和\Charcoal\Object\UserData
- 扩展
\Charcoal\Model\AbstractModel
,该接口实现了以下接口\Charcoal\Model\ModelInterface
\Charcoal\Core\IndexableInterface
\Charcoal\Metadata\DescribableInterface
\Charcoal\Source\StorableInterface
\Charcoal\Validator\ValidatableInterface
\Charcaol\View\ViewableInterface
src/Charcoal/Boilerplate/
中的 PHP 模型metadata/charcoal/boilerplate/
中的 JSON 元数据
- 通常位于
- 模板
- 模板是一种特殊的模型,充当视图 / 控制器
- 分为
Templates
、Widgets
、PropertyDisplay
和PropertyInput
src/Charcoal/Boilerplate/Template/
中的 PHP 模型templates/boilerplate/
中的 Mustache 视图(模板)- 可选的模板元数据在
metdata/boilerplate/template/
- 操作
- 操作处理输入并响应请求
- 它们创建 Admin REST API。
src/Charcoal/Boilerplate/Action
中的 PHP 类
- 资源
- 资源是需要放置在 Web 服务器根目录中的文件
- 脚本,在
src/scripts/
中,并在www/assets/scripts/
中编译 - 样式,在
src/styles/
中使用 SASS,并在www/assets/styles/
中编译 CSS - 图片,在
www/assets/images/
中
用户
认证通过 Charcoal\Admin\User
类完成。它重用了由 charcoal/user 提供的认证、授权和用户模型。
用户界面元素
Admin 包中的用户界面元素(实际上任何其他 Charcoal 模块),由以下组成
- 一个 PHP 控制器,位于 src/Charcoal/Admin/{{type}}/{{ident}}
- 一个 Mustache 模板,位于 templates/charcoal/admin/{{type}}/{{ident}}
- 可选的额外元数据,位于 metadata/charcoal/admin/{{type}}/{{ident}}
主要有三种类型的用户界面元素:模板、小部件 和 属性输入。
模板
查看此模块中可用的模板列表,请参阅 src/Charcoal/Admin/Templates 目录。请注意,模板视图本身(Mustache 模板)位于 templates/charcoal/admin/template/ 目录中。
除了作为标准的模板模型(控制器)之外,管理模块中的所有 模板 也实现了 \Charcoal\Admin\Template
类。
此类为所有模板提供了额外的控件
has_feedbacks
和feedbacks
title
、subtitle
、show_title
和show_subtitle
auth_required
- 受保护,默认为 true。对于不需要经过身份验证的管理员用户的模板,请将其设置为 false。
小部件
以下基础小部件可用于构建各种 管理 模板
仪表板
反馈
表单
表单组
表单属性
图形/柱状图
图形/折线图
图形/饼图
布局
地图小部件
表格
表格属性
属性输入
与其它 UI 元素类似,输入 是专门的控件,旨在显示“表单元素”的 属性
。属性模型定义在 charcoal/property 包中。
以下属性输入可用于在 管理 模块中构建表单
音频
- 一个特殊的 HTML5 小部件,可以从麦克风录制音频文件。
复选框
日期时间选择器
- 一个日期时间选择器小部件。
- 需要 ``
文件
- 一个默认的
<input type="file">
,可以用作所有 文件 属性的基础。
- 一个默认的
图片
- 一个专门用于上传/预览图片的文件输入。
地图小部件
- 一个专门用于编辑地图上点的控件。
- 需要 google-map。
数字
单选按钮
只读
选择
开关
- 一个专门的 复选框,旨在显示为开关。
文本
- 一个默认的
<input type="text">
,可以用于大多数属性类型。
- 一个默认的
多行文本框
- 一个默认的
<textarea>
编辑器,可以用于大多数文本属性类型。
- 一个默认的
Tinymce
- 一个专门的 多行文本框 wysiwyg 编辑器。
- 需要
tinymce
JavaScript 库。
Selectize
- 一个介于 文本框 和 选择 之间的特殊混合体,基于 jQuery。
- 高度可定制。
- 需要
selectize
JavaScript 库。
Selectize 输入选项
使用示例
"categories": { "type": "object", "input_type": "charcoal/admin/property/input/selectize", "multiple": true, "deferred": true, "obj_type": "cms/object/news-category", "pattern": "title", "choice_obj_map": { "value": "ident", "label": "{{customLabelFunction}} - {{someAdditionalInfo }}" }, "selectize_templates": { "item": "project/selectize/custom-item-template", "option": "project/selectize/custom-option-template", "controller": "project/selectize/custom-template" }, "selectize_options": { "plugins": { "drag_drop": {}, "btn_remove": {}, "btn_update": {} } }, "form_ident": { "create": "quick.create", "update": "quick.update" } }
Selectize 模板示例
"selectize_templates": { "item": "{{customLabelFunction}} - {{someAdditionalInfo }}", "option": "{{customLabelFunction}} - {{someAdditionalInfo }}" }, --- "selectize_templates": "{{customLabelFunction}} - {{someAdditionalInfo }}", --- "selectize_templates": "project/selectize/custom-template", --- "selectize_templates": { "item": "project/selectize/custom-item-template", "option": "project/selectize/custom-option-template", "controller": "project/selectize/custom-template", "data": { "category": "{{selectedCategory}}" } },
操作
查看 src/Charcoal/Admin/Action/ 目录,以获取此模块中可用的操作列表。
除了作为标准的操作模型(控制器)之外,管理模块中的所有 操作 也实现了 \Charcoal\Admin\Action
类。
帖子操作
admin/login
admin/object/delete
admin/object/save
admin/object/update
admin/widget/load
admin/widget/table/inline
admin/widget/table/inlinue-multi
命令行操作
查看 src/Charcoal/Admin/Action/Cli/ 目录,以获取此模块中所有可用的命令行操作列表。
命令行操作 是专门的操作,旨在从命令行界面交互式运行。使用此模块中的命令行操作,可以直接从终端快速轻松地管理 Charcoal 项目。
admin/objects
- 列出特定
obj-type
的对象。
- 列出特定
admin/object/create
- 根据其元数据的属性创建一个新对象(并将其保存到存储中),其类型为
obj-type
。
- 根据其元数据的属性创建一个新对象(并将其保存到存储中),其类型为
admin/object/table/alter
- 根据其元数据的属性修改特定
obj-type
的现有数据库表。
- 根据其元数据的属性修改特定
admin/object/table/create
- 根据其元数据的属性创建特定
obj-type
的数据库表。
- 根据其元数据的属性创建特定
admin/user/create
资源
- 贡献
- 报告问题 并 发送拉取请求 到 Charcoal 主仓库