跳到主要内容

HumHub 集成

这个模块允许用户借助 ONLYOFFICE 文档在 HumHub 中编辑办公文档。

该模块可在官方的 HumHub 应用市场获取。

功能特性​

  • 目前,使用该模块可打开并编辑的文档格式有:DOCX、XLSX、PPTX。
  • 仅支持查看的文档格式如下:ODT、ODS、ODP、DOC、XLS、PPT、TXT、PDF。
  • 可转换为 OOXML 格式的文档如下:ODT、ODS、ODP、DOC、XLS、PPT、TXT、CSV。
  • 该模块会为 Office 文档创建一个新的编辑/查看菜单项。这使得多个用户能够实时协作,并将更改保存回 HumHub。

安装 ONLYOFFICE 文档​

您需要一个 ONLYOFFICE 文档(文档服务器)实例,该实例必须能从 HumHub 和任何终端客户端解析并连接。如果无法满足此条件,请使用官方的 ONLYOFFICE 文档安装指南。ONLYOFFICE 文档还必须能够直接向 HumHub 发送 POST 请求。

使用 Docker 是启动 ONLYOFFICE 文档实例的最简单方法。

安装 HumHub ONLYOFFICE 模块​

您可以从 HumHub 应用市场或者直接将代码仓库克隆到moduleAutoloadPaths参数指定的其中一个文件夹内。更多信息请查看 HumHub 文档。

配置 HumHub ONLYOFFICE 模块​

要配置该模块,请进入管理->模块。找到 ONLYOFFICE 模块并点击配置。

从 7.2 版本开始,JWT 默认启用,并且会自动生成密钥,用于限制对 ONLYOFFICE 文档的访问,保障安全性和数据完整性。在 HumHub 配置页面指定您自己的 JWT 密钥。在 ONLYOFFICE 文档的配置文件中,指定相同的密钥并启用验证。

工作原理​

ONLYOFFICE 集成遵循此处记录的 API 规范:这里。

  1. 创建新文件时,用户会在创建文档菜单中看到文档****电子表格或演示文稿选项。

  2. 浏览器调用 /controllers/CreateController.php 控制器中的index方法。

  3. 打开现有文件时,根据文件扩展名,用户会看到查看文档或编辑文档选项。

  4. 会打开一个弹出窗口,并调用 /controllers/OpenController.php控制器中的index方法。

  5. 应用程序准备一个包含以下属性的 JSON 对象:

    • url:ONLYOFFICE 文档用于下载文档的 URL;
    • callbackUrl:ONLYOFFICE 文档用于通知文档编辑状态的 URL;
    • key:用于指示 ONLYOFFICE 文档是否需要重新下载文档的随机 MD5 哈希值;
    • title:文档标题(名称);
    • id:用户标识;
    • name:用户名。
  6. HumHub 获取该对象,并从views/open/index.php模板构建一个页面,填充所有这些值,以便客户端浏览器可以加载编辑器。

  7. 客户端浏览器向 ONLYOFFICE 文档的 JavaScript 库发出请求,并将包含上述属性的 DocEditor 配置发送给 ONLYOFFICE 文档。

  8. 然后,ONLYOFFICE 文档从 HumHub 下载文档,用户开始编辑。

  9. ONLYOFFICE 文档向callbackUrl发送 POST 请求,通知 HumHub 有用户正在编辑文档。

  10. 当所有用户和客户端浏览器完成编辑后,他们关闭编辑窗口。

  11. 在10 秒无操作后,ONLYOFFICE 文档向callbackUrl发送 POST 请求,告知 HumHub 客户端已完成文档编辑并关闭了窗口。

  12. HumHub 下载文档的新版本,替换旧版本。

在此处下载 HumHub ONLYOFFICE 模块:这里。