You need to enable JavaScript to run this app. 如何获取2sxc应用模块最近变更的关联用户及变更信息
优惠活动
大模型
产品
解决方案
定价
更多

如何获取2sxc应用模块最近变更的关联用户及变更信息

DNN门户2sxc模块变更记录查询实现指南

核心逻辑基础

2sxc会自动跟踪所有内容实体、模块配置的修改操作,关联用户信息直接存储在内置元数据表的修改人字段中,无需自行记录操作日志。

方案1:数据库关联查询(适配现有轮询通知逻辑)

适合已适配其他模块的批量查询场景,直接关联DNN原生表和2sxc内置表即可获取全量变更数据:

涉及核心表

  • ToSIC_SexyContent_Entity:2sxc核心实体表,存储所有内容项的元数据,包含ModifiedByID(修改人ID)、ModifiedOn(修改时间)字段
  • ToSIC_SexyContent_App:2sxc应用表,关联实体到所属的2sxc应用
  • Modules:DNN原生模块表,关联2sxc应用到具体页面上的部署实例
  • Users:DNN原生用户表,关联用户ID获取账号、显示名等信息

示例查询SQL

SELECT
    M.ModuleID,
    M.ModuleTitle,
    A.AppName,
    E.ModifiedOn,
    U.UserID,
    U.Username,
    U.DisplayName AS ModifiedUserName
FROM ToSIC_SexyContent_Entity E
INNER JOIN ToSIC_SexyContent_App A ON E.AppID = A.AppID
INNER JOIN Modules M ON E.ModuleID = M.ModuleID
INNER JOIN Users U ON E.ModifiedByID = U.UserID
WHERE A.PortalID = @当前站点ID
  AND E.ModifiedOn >= @变更起始时间
ORDER BY E.ModifiedOn DESC

注意事项

  • 所有草稿编辑、已发布内容修改、删除操作都会写入实体表的Modified字段,无需额外过滤版本即可捕获全量变更
  • 匿名用户提交的表单内容会关联2sxc应用配置的默认匿名用户ID,可在2sxc应用的常规设置页查询该ID对应关系
  • 表结构适配2sxc v10及以上主流版本,v9及更早版本的实体相关表名存在差异,可通过站点2sxc配置的系统信息页核对当前版本的表结构
  • 如果需要监控2sxc模块本身的配置变更(而非内容项变更),直接关联ToSIC_SexyContent_Views、ToSIC_SexyContent_App表的ModifiedByID、ModifiedOn字段即可

方案2:内置API事件订阅(适配实时触发通知逻辑)

如果不需要批量轮询,可直接订阅2sxc的内置实体事件,在变更操作发生的瞬间直接触发通知,避免轮询延迟:

  • 在通知模块的依赖注入配置中订阅ToSic.Eav.Entities.IEntityEvents接口的EntityUpdated、EntityCreated、EntityDeleted事件
  • 事件回调会直接返回变更实体的所属模块ID、修改人ID、修改时间等结构化数据,直接传入现有通知模块的触发逻辑即可
  • 可根据需要过滤指定的2sxc模块ID,或全量放行所有2sxc模块的变更事件

方案优势

  • 无需额外编写SQL关联逻辑,数据直接通过接口返回
  • 实时触发,不存在轮询间隔导致的通知漏发问题
  • 不需要开放2sxc表的数据库权限

内容的提问来源于stack exchange,提问作者Ufoloko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 04:15:03