国内CMS发展情况都不是很好,选择哪一款国外开源CMS进行学习呢?

[复制链接]
ggfggggfgg 发表于 2023-8-25 06:46:20|来自:北京 | 显示全部楼层 |阅读模式
除Discuz外(DZ严格来讲是社区),国内的CMS程序发展都很不顺利,程序BUG的修复和功能的更新也相当缓慢,例如Dedecms已经很久没有重大更新了,BUG和漏洞也比较多;Phpcms今年更新了很多次,但是依旧是BUG不断,从目前情况来看已经不再是盛大的了,版权变更了,团队发生了很大变化,新版本的下载地址居然是项目策划人王参加的个人网站,帮助文件的地址也是;至于帝国CMS,去年说正在开发新产品,但是差不多一年过去了,依旧没有动态。

虽然也不是专业从事WEB开发工作的,但是这是我的业余爱好,我现在想深入研究一款CMS程序,我目前是放弃研究国内的CMS程序了,准备使用国外的,请问大家推荐使用那一款CMS值得深入学习呢?

Joolma怎么样?有更好的吗?
全部回复5 显示全部楼层
janbo 发表于 2023-8-25 06:46:35|来自:北京 | 显示全部楼层
简介


  • DirectUS是一款无头内容管理系统(Headless Content Management System),支持多种关系数据库系统,能够自动为数据表格产生Rest API和GraphQL端点。
  • DirectUS 的设计理念是数据库优先,不对使用者的表格做任何限定,可以与任意表格关联,并实现对其管理并生成增删改查的API。
  • 虽然包括无头CMS的功能,但是DirectUS自带了一个管理系统APP,叫DirectUS Studio,可以直接用于内容管理,且支持完善的角色、权限控制机制,可定制能力强大,经过一定的配置,就可以直接作为一个完整信息管理平台来使用。
  • DirectUS支持强大的扩展机制,而且它自带的管理系统就是基于这一套扩展机制开发的。
  • 所有代码基于一个商用友好的许可证(见下文)完全开放可用,没有仅供商业用户的私有部分。

其它功能


  • 支持一对一、一对多、多对一,多对多、多对任意等多种数据关联关系。
  • 强大完善的权限管理机制,基于角色、权限经典模式,可对集合的增、删、改、查、分享进行独立控制。且纵向可精确到字段级,横向通过过滤器可精确到记录级。
  • 通过数据库抽象机制,支持多种关系数据库,支持MySQL, Postgre, MSSQL, Oracle, SQLite等多种关系数据库,底层是通过Knex ORM库实现的。
  • DirectUS 自带文件存储、上传等功能,可对接本地磁盘、阿里云OSS、谷歌云、微软云、亚马逊云存储等。
  • 自带完善的国际化机制,管理系统支持包括中文内的多语言,可对任意数据集合、字段的文本显示等进行国际化处理。
  • 自带仪表盘模块,支持低代码方式对数据集合设计丰富的图表显示。
  • 自带卡片、日历、看板等显示布局,只要你的集合符合特定规则,就可以直接配置使用,无需编程。
  • 自带图像编辑器。

许可证

关于DirectUS的许可证条款我的理解如下:

  • 个人或小团队学习、演示等使用场景完全免费
  • 对大规模生产使用需要联系DirectUS的销售付费使用
  • 代码发布后(可能是基于每个源文件)3年后自动转为GPL许可证,也就是传染性的开源协议。

部分术语解释


  • Alias: 数据库的虚拟字段称之为“别名”,比如在一对多关系中,虽然关联ID位于从表(“多”表)中,但是可以从主表的集合中以一个Alias字段来引用从表中的多个数据项。还有些纯粹为了显示的虚拟字段,比如按钮、分隔栏之类的。
  • Archieve: 归档,也就是逻辑删除功能,可以指定一个字段及归档取值,凡是归档的记录,默认就不显示在集合中了。
  • API: 指DirectUS为用户数据库生成的Rest/GraphQL API。
  • APP: 指DirectUS自带的管理系统。
  • Activity: 系统活动日志,DirectUS可自动为平台内的访问和操作生成日志,可用于审计。
  • Collections: 数据集合,对应关系数据库中的表格。
    注意,DirectUS还支持集合页面中的文件夹集合,仅用于将集合分组归并显示。
  • Dashboards: 仪表,系统自带的功能,可为集合生成定制化的可视化图表界面。
  • Database Abstraction: 指DirectUS的数据库抽象机制。
  • Displays: 字段的只读显示控件,DirectUS自带了多种控件,比如颜色、缩略图、标签、评级星标等,可以基于扩展机制自行基于VUE开发。
  • Fields: 集合中的字段,也即数据表格中的列。
  • Interfaces: 字段的读写控件,用于编辑字段的值,除DirectUS自带的控件外,可以基于扩展机制自行开发。
  • Items: 数据项,集合中的对象,也即数据表格中的行。
  • Junction Collections: 交汇点集合,DirectUS管理多对多,多对任意两种关联时,会自动生成一个独立的交汇点集合,用于保存多对多的映射关系。
  • Layouts: 布局,即集合的显示和交互界面,默认自带列表、卡片、日历、地图、看板这几种布局,可以基于扩展机制自行开发。
  • Modules: 模块,即左侧导航菜单中可交互的独立页面,可以基于扩展机制自行基于VUE开发。
  • Permissions: 权限,多对一关联到角色,定义角色对每个数据集合(包括DirectUS系统集合)的增删改查权限,纵向可以精确到字段级,横向可通过过滤器进行记录级筛选。
  • Presets: 预设,即集合的筛选、页面布局、排序等预设值,管理员可以为所有用户或针对特定角色设定集合的预设配置,用户也可以自己设定私有的配置,这种情况,通常用 Bookmarks 即书签这个术语。
  • Projects: 也就是整个DirectUS部署实例。
  • Revisions: 修订版本,DirectUS可自动为数据项的修改产生修订日志,可用于操作审计,也可以还原到旧版本。
  • Roles: 角色,权限的集合。一个用户只能有一个角色,可在过滤规则中使用 $CURRENT_ROLE 引用当前用户所属角色的ID。
  • Singleton: 单例,一个集合如果设定为单例,则只有一条记录,将跳过集合页面直接显示数据项页面。
  • Storage Adapters: 存储引擎,自带了本地磁盘和几种云存储引擎,其中S3可能适用于阿里的OSS。也可以自行编写其它存储引擎。这个似乎不能用扩展机制,必须在DirectUS的项目目录内添加。
  • Translations: 翻译,就是DirectUS的国际化支持机制,内部是用单独的系统表格实现集合、字段的多语言翻译保存。
  • Users: 用户。在过滤规则中,可用 $CURRENT_USER 引用当前用户的ID。

安装


基于Docker安装


  • Windows需要安装Docker Desktop

    • 在Windows功能中启用 Hyper-V, 虚拟化等功能
    • BIOS中需要启动虚拟化支持
    • 需要安装WSL2
    • Docker安装、启动
    • 更改数据保存路径,避免占用C盘



  • 部署、启动DirectUS

    • 默认端口8055
    • 默认使用SQLite,修改docker-compose.yml,使用MySQL



本地安装


  • 本地安装文档

使用


过于一对多和多对一


  • O2M 和 M2O 实际上是一个东西,看视角从哪个表格出发。
  • M2O 最容易理解,就是主表是多,比如一个作者和作品表,作品对作者就是M2O,假设关系字段叫author。
  • 那么编辑一个作品时,它的author字段就可以自动关联到作者集合,从作者集合中查询,选定一个作者。
  • 如果希望在查看一个作者时,能够直接看到他的所有作品列表,就需要再为作者表添加一个O2M的字段,比如起名叫books,这个字段就是所谓的“别名”,是一个虚拟字段,实际在作者表格中并不存在。
  • 在设定O2M虚拟字段的显示方式时,可以选择列表或者表格,这样在一个作者的详情页面中,就能直接看到他所有的作品了,还可以直接添加(关联)新的作品。

关于树视图字段


  • 一种特殊的O2M字段,仅用于自表中的递归关联。
  • 也就是说,还是需要先为这种关联创建一个M2O字段。举例:一个组织架构表,先创建个parent的 M2O 字段关联到上级部门的记录ID。
  • 然后,就可以添加一个类型为“Tree View”的虚拟字段,比如subsidiaries,关联到 parent 这个M2O字段。
  • 这样,在查看或编辑单个部门记录时,可以看到其所有下属部门,可以逐层展开。

关于多对多(M2M)关系


  • 比如学生和课程,一个学生有多门课,多个学生也都可以上同一门课程。
  • 对于M2M关系,DirectUS会自动创建一个交汇集合(Junction Collection),可就是一个专门用来保存多对多映射关系的表。

关于多对任意(M2A)关系


  • 通过一个M2A的字段,一个集合可以跟多种不同集合中的项关联。
  • 举个例子,一篇文章,由多个段落组成,有的段落关联到正文表,有点段落关联到广告表,有的段落关联到插图表,而广告、插图是可以多篇文章共用的。
  • M2A关系产生的交汇集合中,会多一个 collection 字段,用于存储这条记录映射到哪个表。
  • 注意:没法从主表的数据模型中控制不同关联集合项如何显示,只能到每种集合中,设计其显示模板 (Display Template)。
rockhdd 发表于 2023-8-25 06:47:04|来自:北京 | 显示全部楼层
这几年倒腾了不少CMS系统,像DEDE,DZ,WP,蝉知建站系统,PHPCMS,ASPCMS,帝国CMS...and so on! 我用过的所有CMS里,就感觉蝉知系统最简单,且扩展性强,LZ感兴趣的话,可以试试。。。
蝉知官网:http://www.chanzhi.org/?u=xcj&a=zhihu
天狼啸月 发表于 2023-8-25 06:47:10|来自:北京 | 显示全部楼层
为什么你们都在推崇国外的.国内有很多优秀的啊
比如 OurPHP
pic100 发表于 2023-8-25 06:47:36|来自:北京 | 显示全部楼层
就 CMS 而言,目前排名是 1.WordPress、2.Joomla、3.Drupal
总的来说 Drupal 更富有开源精神,虽然更加强大,但是不易入门,学习曲线比较陡。
不过我还是推荐你用 Drupal。
foxfly 发表于 2023-8-25 06:48:06|来自:北京 | 显示全部楼层
Joomla! 很不错,值得深入学习,至于比Joomla!更好的,没用过别的,不好说什么~

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则