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

问题描述 投票:2回答:2

我目前正在开发DNN模块。如果我们能够在用户从页面上删除模块时以及从回收站中还原模块时运行自定义代码,那就太好了。

我还没有找到任何有关如何完成此操作的示例,所以我不确定是否可行?有什么想法吗?

module dotnetnuke
2个回答
3
投票

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

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

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

有些步骤,但是应该可以工作(并且比爬马特宏峰(-)还要省力))。>

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?

希望以后对您有所帮助。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.