如果管理员在liferay中上载了新文档/媒体,则用户必须在登录后获得消息

如果管理员在liferay中上载了新文档/媒体,则用户必须在登录后获得消息,liferay,Liferay,我对liferay很陌生。请帮助我实现以下要求 使用liferay中的文档和媒体portlet,如果管理员用户上传了任何新文档或上传的文档被修改(版本更改),则 如何识别特定文档已修改或新上载,因为我必须根据登录后是否上载或修改了任何新文件向用户显示弹出消息 这不是一个小小的更改请求-这需要更多的开发。以下是更多不同的变体: 简单但非性能变体: 使用UserLocalServiceUtil,您可以检查上次用户登录日期 同样,迭代所有文档并检查上次修改日期 创建Liferay Portlet,

我对liferay很陌生。请帮助我实现以下要求

  • 使用
    liferay
    中的文档和媒体portlet,如果管理员用户上传了任何新文档或上传的文档被修改(版本更改),则

  • 如何识别特定文档已修改或新上载,因为我必须根据登录后是否上载或修改了任何新文件向用户显示弹出消息


    • 这不是一个小小的更改请求-这需要更多的开发。以下是更多不同的变体:

      简单但非性能变体:

      • 使用UserLocalServiceUtil,您可以检查上次用户登录日期
      • 同样,迭代所有文档并检查上次修改日期
      • 创建Liferay Portlet,该Portlet显示修改日期晚于上次用户登录日期的文档列表
      ~

      以下是步骤:

      • 使用相应的文档侦听器,即 DlFolderListener或DlFileEntryListener。必须使用钩子 在portal.properties中添加listner
      • 例如,您需要在属性下面进行变通
      • 此类将扩展
        BaseModelListener
      • 重写并使用onAfterUpdate方法通知相应的访问者 (用户)
      • 现在,可以通过在用户中设置此通知来完成此操作
        偏好
      • 在用户登录时,检查相应的用户首选项 通知和通知用户。您可以使用hook
        loginpostation
        读取用户首选项以获取通知
      希望这有帮助

    • 为用户创建自定义字段。使用service builder创建表以存储已修改的fileEntry Id

    • 创建DLFileEntry侦听器并写入 文件更新上的代码。在步骤1中创建的同一个表中添加DLFileEntryID。设置 对于所有用户,自定义字段为true

    • 创建LoginPostationHook,并检查用户标志,获取FileEntryId获取该FileEntryId的信息,并显示包含所有文件信息的通知。为特定用户设置customfield标志false,并从表中删除fileentryid或将其全部标记为已读


    • 谢谢你的建议,马克!这确实是一个好主意。
      value.object.listener.com.liferay.portlet.documentlibrary.model.FileEntry
         = com.my.custom.MyFileEntryListener