raffaelj / cockpit-tables
Cockpit CMS 的 SQL 表管理器
Requires
- composer/installers: ^1.9
- phpoffice/phpspreadsheet: ^1.6
This package is auto-updated.
Last update: 2024-09-30 01:24:53 UTC
README
此插件与 Cockpit CMS v2 不兼容。
另请参阅 Cockpit CMS v1 文档,Cockpit CMS v1 仓库 以及 Cockpit CMS v2 文档,Cockpit CMS v2 仓库。
在 Cockpit CMS 中管理具有一对一(1:m)和多对多(m:n)关系的 SQL 表。
Cockpit 是一个轻量级的无头 CMS。其内部逻辑基于 MongoDB - 一个无模式的数据库。它有一个包装器来使用相同的逻辑与 SQLite,但还没有真正的 SQL 实现。 当我有时间时,我将测试与来自 @piotr-cz 的新实验性 SQL 驱动插件 一起的设置。
此插件添加了管理 SQL 数据库的功能。Cockpit 仍需要 MongoDB 或 SQLite 进行其内部逻辑。
此插件需要大量的清理和一些重构。如果您在生产环境中使用它,请注意可能的结构变化。我不能保证在此早期阶段具有向后兼容性。它尚未针对大型数据库进行性能优化。
此插件是实验性的。我想在发布之前进行大量的代码清理,但还没有足够的时间。如果我现在不发布,它可能永远不会发生...
如果您测试了它,请向我发送一些反馈。
功能
- 自动检测数据库中所有可用的表
- 自动检测外键关系
- 自动生成带有基本类型检测(布尔值、数字、文本、文本区域、日期)的字段模式
- 具有基本验证检测
- 必需(
NOT NULL
) - 最大长度(
VARCHAR(100)
)
- 必需(
- 具有基本验证检测
- 自动
LEFT OUTER JOIN
以在条目和条目视图中显示 1:m 相关字段 - 如果检测到 m:n 关系,则创建一个额外的字段,其中包含用于相关内容的下拉字段
- 将值保存到/删除到相关 m:n 表中
- 可以调整自动生成的字段模式,例如通过更改字段设置
- 将文本更改为文本区域
- 将一个字段设置为必需,该字段在数据库中未设置为可空
- 将关系字段更改为数字字段以避免自动连接
- 移除 m:n 额外字段,以避免在 m:n 辅助表中显示它
- ...
- 如果相关列包含大量行,则拆分关系选择字段(可选)
- 用户和组权限管理
- 电子表格导出(ODS、CSV、XLSX)
功能(增强,也许,在将来...)
- RestApi
- 图形关系管理器
- 直接更新数据库架构(创建新表、添加索引等。)
- 电子表格导入
要求
Cockpit
请参阅 Cockpit 的要求
- PHP >= 7.0
- PDO + SQLite(或 MongoDB)
- GD 扩展
- 启用 mod_rewrite(在 Apache 上)
Tables 插件
- PDO
- MySQL 版本 ???
- InnoDB 架构用于 MySQL 表(可能功能,具有不同的架构,但我尚未测试)
- 所有表必须有一个作为主键的 单一 列,该列自动递增。选择一个你想要的名称 - 不必要地将其命名为
id
。
安装
将此存储库复制到 /addons
并命名为 Tables
或
cd path/to/cockpit
git clone https://github.com/raffaelj/cockpit_Tables.git addons/Tables
构建
安装依赖项
composer install --no-dev --ignore-platform-reqs
更新依赖项
composer update --no-dev --ignore-platform-reqs
使用/配置
- 您的数据库已存在外键。
- 安装 Cockpit CMS。
- 将此插件复制到 Cockpit 的插件文件夹中。
- 将数据库凭据添加到 Cockpit 的配置文件
/config/config.yaml
中。
tables: db: host: localhost database: database_name user: root password: SuperSecretPassword
或者,您还可以设置配置文件的路径。
tables: db: /path/to/config.php # db: /path/to/config.ini # db: /path/to/config.yaml
如果您不需要 Cockpit 的核心模块,请在配置中禁用它们
modules.disabled: - Collections - Singletons - Forms
版权和许可
版权所有 2019 Raffael Jesche,在 MIT 许可下。
有关更多信息,请参阅 LICENSE。
致谢和第三方资源
我重新使用了 Cockpit CMS 的 Collections 模块 的大部分内容,该模块在 MIT 许可下发布,并进行了修改。感谢 Artur Heinze 以及所有 贡献者。
对于导出电子表格,我使用了 PhpSpreadsheet,该软件在 LGPL 2.1 许可下发布。
我使用了来自 phpdelusions.net 的最小化 PDO 包装器。感谢 @colshrapnel
对于表格上方的滚动条,我使用了 Antoine Vianey 的 jQuery 插件 jqDoubleScroll,该插件在 Antoine Vianey 下双许可,许可协议为 MIT 许可 和 GPL 许可。
对于文档中的语法高亮显示,我使用了 highlight.js(《Github》,作者),该软件在 BSD 3-Clause 许可下发布。