raffaelj/cockpit-tables

此包已被废弃且不再维护。未建议替代包。

Cockpit CMS 的 SQL 表管理器

安装: 3

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 7

类型:cockpit-module

0.3.1 2020-08-09 21:07 UTC

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 许可下发布