2012-11-12 48 views
2

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

我还没有找到任何有关如何完成这个任务的例子,所以我不确定这是否可能?有任何想法吗?

回答

3

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

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

你可以在你的SQL Server将触发时,如果更新是指请将isDeleted场模块表进行更新,支票使用TRIGGER,写东西到一个通知表,并使用SQL 查询通知基于SqlDependency运行一些代码(有关介绍,请参阅http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach)。

要走的一些步骤,但它应该工作(并且不会比攀登马特洪峰:-))。

+2

这是正确的;代码中没有地方可以与此事件相关联。唯一可以采取行动的半可靠地点就是触发器。 – bdukes

+0

太好了,谢谢。并不像我希望的那么容易,但我一定会试着用触发器来解决它。 –