teppokoivula / 版本控制
版本控制是ProcessWire CMS/CMF模块,用于版本控制页面内容。
Requires
- php: >=7.1
- processwire/processwire: ^3.0
- wireframe-framework/processwire-composer-installer: ^1.0.0
README
ProcessWire CMS/CMF版本控制模块。版权所有 (c) 2013-2022 Teppo Koivula
此模块使用ProcessWire提供的钩子来捕获页面编辑,并将历史数据存储在一系列自定义数据库表中,以便稍后检索、审查和恢复。
请注意,在模块设置中,您可以定义要跟踪的具体字段类型和字段,以及哪些模板的跟踪值应该启用。默认情况下,所有模板和字段都禁用了跟踪。
当启用版本控制编辑页面时,对于有早期修订版的字段,会显示修订切换(打开先前修订列表的链接)。用户可以从此列表中选择修订,并将字段的值回滚到该特定修订。
支持的字段类型和输入字段
除了一些完全不存储值(重复器字段、字段集)或只存储散列值(密码)之外,所有原生ProcessWire字段类型和输入字段都应在本文写作时得到支持。
- 日期时间
- 文本(常规和多语言)
- 文本区域(常规和多语言)
- 页面标题(常规和多语言)
- 复选框
- 整数
- 浮点数
- URL
- 页面
- 模块
- 文件
- 图片
- 选择器
- 选项
支持的第三方字段类型
- ProFields Textareas
如果某个特定字段类型未在此列出,这并不一定意味着它不受支持;只是尚未对其进行测试。如果您知道与该模块兼容且尚未列出的字段类型,请通过GitHub通知此模块的作者。
您可以通过修改“兼容字段类型”设置来在本地启用对任何已安装字段类型的支持,该设置可在模块配置屏幕的“高级设置”下找到。
以下输入字段已确认支持
- TinyMCE
- CKEditor(常规和内联模式)
- 文本(使用
<input>
HTML元素的其他输入字段,如电子邮件) - 文本区域(使用常规
<textarea>
HTML元素的其他输入字段) - 选择
- 文件
- 图片
- 选择器
要求
请注意,此模块需要ProcessWire 2.4.1或更高版本。如果您仍在运行ProcessWire的早期版本并且希望拥有类似的功能,请查看文本字段版本控制模块:https://github.com/teppokoivula/VersionControlForTextFields。
入门
将VersionControl文件夹复制(或使用git克隆)到/site/modules/,转到Admin > 模块,点击“检查新模块”并安装版本控制。Process Version Control和页面快照模块将自动安装。
安装此模块后,您需要配置它才能开始进行任何操作。大多数配置选项(基本上是此模块开启的模板和字段)可以在Admin > 模块 > 版本控制(模块配置)中找到。次要设置可以在相关Process模块配置中找到:Admin > 模块 > Process Version Control。
Diff Match and Patch
Diff Match and Patch库提供了强大的算法,用于执行同步纯文本所需的操作。在当前模块的范围内,使用Diff Match and Patch的JavaScript实现来渲染字段值不同版本之间的差异。
Diff Match and Patch版权所有(c)2006谷歌公司,并遵照Apache许可证第2.0版发布。有关此库的更多信息,请访问http://code.google.com/p/google-diff-match-patch/。
许可证
本程序是自由软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它;许可证的第2版,或者(根据您的选择)任何较新版本。
本程序分发时附带“希望程序有用,但不提供任何保证;甚至不提供适销性或特定用途适用性的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。”
您应该已随本程序收到一份GNU通用公共许可证副本;如果没有,请写信给自由软件基金会,地址:51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA。
(请参阅包含的LICENSE文件以获取完整的许可证文本。)