【问题标题】:Magnolia CMS 5.5.9 SoftLockingMagnolia CMS 5.5.9 软锁定
【发布时间】:2018-08-10 09:04:23
【问题描述】:

我有一个问题。我想使用 Softlocking 模块来确定是否有人已经在编辑页面。有了这些信息,我想决定是否要以编辑模式或只读模式打开 CKeditor。

我已将 softLockingSuport(来自模块 2.6.2 的 DefaultSoftLockingSupport)bean 注入到我的 RichTextFieldFactory 中,其中初始化了 ckeditor,但我所能做的只是一个

public List getLocks(String username, String identifier)

我的第一个问题是为什么我需要指定用户名才能获得锁?我想获得该页面的所有锁,而不仅仅是一个用户的锁。

我想做这样的事情

    List locks = softLockingSupport.getLocks("path/to/page");
    int lockSize = locks.size();

    if (lockSize>1) //lock is obtained before ckeditor is initialised
    {
        config.setReadOnly(true);
    }

有没有更好的方法来确定页面是由其他人编辑还是我缺少什么?

提前致谢, 重新编码

【问题讨论】:

  • 嗨@reencode,你是如何解决这个问题的?我还必须查明是否有人在页面编辑器子应用中编辑特定页面。我阅读了您的问题,想知道您是否可以分享您的解决方案。提前致谢,安娜
  • 嗨,正如 Jan 的回答所说,(当时)无法从 api 获取所需的信息。所以我们只是通知我们的内容编辑要小心,并在他们工作的地方进行沟通。在我们的环境中,并发编辑仍然是一个问题。也许 ckeditor5 ckeditor.com/collaboration/real-time-collaborative-editing 会带来一个解决方案,但我不知道......现在正在做一些完全不同的事情......

标签: java locking content-management-system magnolia


【解决方案1】:

API 并没有真正公开您正在寻找的信息。同样在 Magnolia 实现的软锁定概念中,任何打开页面进行编辑的人都在获取锁定,因此同一页面可能有多个人锁定。您所能做的就是在有人打开感兴趣的页面后注册 LockListener 并为自己计算锁数:(

如果您在对话框中这样做,则只有当有人打开所述对话框时才会更新您的日志计数...... CK 编辑器。

【讨论】:

    猜你喜欢
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多