【发布时间】:2014-03-17 19:55:58
【问题描述】:
我有一个正在处理的自定义 DNN 模块,当该模块安装在 DNN 实例中时,我需要创建一个管理页面。我已经创建了处理的页面,但是在安装/升级模块时让代码运行是我还没想出来的。
如何连接代码以作为 DNN 模块安装/升级的一部分执行?
【问题讨论】:
标签: dotnetnuke dotnetnuke-module
我有一个正在处理的自定义 DNN 模块,当该模块安装在 DNN 实例中时,我需要创建一个管理页面。我已经创建了处理的页面,但是在安装/升级模块时让代码运行是我还没想出来的。
如何连接代码以作为 DNN 模块安装/升级的一部分执行?
【问题讨论】:
标签: dotnetnuke dotnetnuke-module
我在安装过程中成功使用了 IUpgradeable。您在 dnn 安装清单文件中指定核心模块类(FeatureController.cs,如果使用 Christoc.com 模板)中的方法。
这个 [class].UpgradModule 在应用重启后执行(发生在指定模块版本的模块安装/配置更改之后)。
它非常“优雅”... DNN 安装会按照清单中的规定安排“事件执行”,您可以运行任何您想要的代码。
我的清单 (modulename.dnn) 有一个 eventMessage 属性(放置在 desktopModule 元素之后)。例如:
<eventMessage>
<processorType>DotNetNuke.Entities.Modules.EventMessageProcessor,DotNetNuke</processorType>
<processorCommand>UpgradeModule</processorCommand>
<attributes>
<businessControllerClass>SSI.DNN.SSIReplicationModule.Controllers.FeatureController, SSIReplicationModule</businessControllerClass>
<desktopModuleID>[DESKTOPMODULEID]</desktopModuleID>
<upgradeVersionsList>00.00.01</upgradeVersionsList>
</attributes>
</eventMessage>
无论是什么:
<businessControllerClass>SSI.DNN.SSIReplicationModule.Controllers.FeatureController, SSIReplicationModule</businessControllerClass>
方法名:
<processorCommand>UpgradeModule</processorCommand>
将在安装时执行。
希望对您有所帮助...如果您需要用于页面创建和模块添加的代码,请告诉我。
我的第一个 SO 帖子!
【讨论】:
显然,有一种新的方法可以做到这一点,但到目前为止我还没有找到文档。它看起来像这样:
<desktopModule>
...
<page type="Admin" common="true">
<name>Configuration Manager</name>
<icon>~/Icons/Sigma/Configuration_16X16_Standard.png</icon>
<largeIcon>~/Icons/Sigma/Configuration_32X32_Standard.png</largeIcon>
<description>Modify configuration settings for your site</description>
</page>
....
</desktopModule>
不确定何时添加,但我在 DNN 8.0.3 的源代码中找到了它。
【讨论】: