用户从页面删除模块时运行代码

时间:2012-11-12 10:07:58

标签: module dotnetnuke

我目前正在开发DNN模块。如果我们能够在用户从页面删除模块时以及从回收站恢复模块时运行自定义代码,那将是很好的。

我还没有找到关于如何做到这一点的任何例子,所以我不确定这是否可行?有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我不知道DNN中你可以设置钩子的任何事件机制。您可以调试DNN代码并跟踪调用堆栈,直到找到可以注入某些代码的可用位置(这可能会在下一次DNN更新后被销毁),或者可能检测到打算使用的方式。核心团队。

但是,如果从页面中删除模块,则Modules表中的 IsDeleted字段将设置为true 。如果它从bin恢复,则再次设置为false。

您可以在更新Modules表时触发的Sql Server 中使用 TRIGGER,检查更新是否涉及IsDeleted字段,将内容写入Notification表,并使用Sql 查询通知基于SqlDependency运行一些代码(参见http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach的介绍)。

要走的一些步骤,但它应该有效(并且不如攀登马特宏峰那样令人筋疲力尽:-))。

答案 1 :(得分:0)

DNN平台(DotNetNuke)中绝对有钩子,开发人员可以将C#代码附加到钩子上。

虽然目前没有我可以提供的交钥匙示例,但请查看以下内容:

https://github.com/dnnsoftware/Dnn.Platform/blob/c35fdc7fb75db0438f3b872ce4e279e3ea73e7c2/DNN%20Platform/Library/Entities/EventManager.cs

您希望通过它的声音挂接到ModuleRemoved事件。

以下是用户登录的示例,您可以适应事件:

Does DNN fire an event when a user logs in?

我希望这对将来有帮助。