让模块支持“导入”“导出”功能

DNN模块可以支持导入导出功能,通过将模块内容导入到XML文件可以便于模块内容备份和转移,也可将模块内容事先以XML格式保存通过导入功能实现模块内容的批量录入。
如图:

[img]http://esshs.cnblogs.com/images/cnblogs_com/esshs/20050804.gif[/img]

要实现模块的导入导出功能,需要在模块的业务逻辑访问对象(***Controller)中实现IPortable接口:

1、IPortable接口(components\Modules\IPortable.vb)
Namespace DotNetNukeNamespace DotNetNuke.Entities.Modules
    ' 模块导出导入功能接口
    Public Interface IPortableInterface IPortable
        ' 模块导出
        Function ExportModule()Function ExportModule(ByVal ModuleID As Integer) As String
        ' 模块导入
        Sub ImportModule()Sub ImportModule(ByVal ModuleID As Integer, ByVal Content As String, ByVal Version As String, ByVal UserID As Integer)
    End Interface
End Namespace
2、在相应模块的业务逻辑类中实现IPortable接口(这一步可根据模块具体情况作出相应的修改,可参照DNN已有模块做,如:Links)
Namespace DotNetNukeNamespace DotNetNuke.Modules.Links
    Public Class LinkControllerClass LinkController
        Implements Entities.Modules.IPortable

' 实现导出功能接口
        Public Function ExportModule()Function ExportModule(ByVal ModuleID As Integer) As String Implements DotNetNuke.Entities.Modules.IPortable.ExportModule
            ' 获取该模块的全部链接信息
            Dim strXML As String = ""
            Dim arrLinks As ArrayList = GetLinks(ModuleID)
            ' 根据该模块的字段决定XML的节点
            If arrLinks.Count <> 0 Then
                strXML += "<links>"
                Dim objLink As LinkInfo
                For Each objLink In arrLinks
                    ' 编写模块内容的每一条记录
                    strXML += "<link>"
                    strXML += "<title>" & XMLEncode(objLink.Title) & "</title>"
                    strXML += "<url>" & XMLEncode(objLink.Url) & "</url>"
                    strXML += "<vieworder>" & XMLEncode(objLink.ViewOrder.ToString) & "</vieworder>"
                    strXML += "<description>" & XMLEncode(objLink.Description) & "</description>"
                    strXML += "<newwindow>" & XMLEncode(objLink.NewWindow.ToString) & "</newwindow>"
                    strXML += "</link>"
                Next
                strXML += "</links>"
            End If
            Return strXML
        End Function

' 实现导入功能接口
        Public Sub ImportModule()Sub ImportModule(ByVal ModuleID As Integer, ByVal Content As String, ByVal Version As String, ByVal UserID As Integer) Implements DotNetNuke.Entities.Modules.IPortable.ImportModule
            Dim xmlLink As XmlNode
            Dim xmlLinks As XmlNode = GetContent(Content, "links")
            ' 从XML中解析每一条记录
            For Each xmlLink In xmlLinks.SelectNodes("link")
                Dim objLink As New LinkInfo
                objLink.ModuleId = ModuleID
                objLink.Title = xmlLink.Item("title").InnerText
                objLink.Url = ImportUrl(ModuleID, xmlLink.Item("url").InnerText)
                objLink.ViewOrder = Integer.Parse(xmlLink.Item("vieworder").InnerText)
                objLink.Description = xmlLink.Item("description").InnerText
                objLink.NewWindow = Boolean.Parse(xmlLink.Item("newwindow").InnerText)
                objLink.CreatedByUser = UserId.ToString
                AddLink(objLink)
            Next
        End Sub

End Class
End Namespace
注意:在打包安装文件时,需要在DNN文件的<businesscontrollerclass>节点写明该模块的业务逻辑类,如:
<businesscontrollerclass>DNNChina.Modules.CLinks.CLinksController, DNNChina.Modules.CLinks</businesscontrollerclass>

让模块支持“导入”“导出”功能相关推荐

  1. PHP资格证书查询系统源码 自动生成二维码 支持导入导出功能

    PHP资格证书查询系统源码 自动生成二维码 支持导入导出功能 程序说明: PHP资格证书查询系统源码 证书管理? 自动生成二维码 支持导入和导出功能 采用fastadmin框架开发而成 PHP资格证书 ...

  2. boost::multiprecision模块实现导入/导出 cpp_int 的位 到 8 位无符号值的向量相关的测试程序

    boost::multiprecision模块实现导入/导出 cpp_int 的位 到 8 位无符号值的向量相关的测试程序 实现功能 C++实现代码 实现功能 boost::multiprecisio ...

  3. easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能

    Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...

  4. SpringBoot 项目实现 Excel 导入导出功能

    背景 Excel 导入与导出是项目中经常用到的功能,在 Java 中常用 poi 实现 Excel 的导入与导出.由于 poi 占用内存较大,在高并发下很容易发生 OOM 或者频繁 fullgc,阿里 ...

  5. 使用EasyExcel实现导入导出功能

    使用EasyExcel实现导入导出功能 一.导出 1.使用ideal新建一个maven项目,并在pom.xml文件中引入EasyExcel依赖 <!--easyexcel实现导入导出--> ...

  6. MSE ZooKeeper 数据导入导出功能上线

    作者:草谷 背景 MSE 提供了托管版的 ZooKeeper,拥有比自建开源 ZooKeeper 稳定性更高的SLA,同时管控面提供了丰富的服务自治功能.赶在2022年的岁末,MSE ZooKeepe ...

  7. SpringBoot 项目优雅实现 Excel 导入导出功能

    背景 Excel 导入与导出是项目中经常用到的功能,在 Java 中常用 poi 实现 Excel 的导入与导出.由于 poi 占用内存较大,在高并发下很容易发生 OOM 或者频繁 fullgc,阿里 ...

  8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增模块管理界面导出功能(可按条件导出)...

    RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增模块管理界面导出功能(可按条件导出) 导出功能在很多应用场景中都需要,RDIFramework.NET V3 ...

  9. 十分钟看会laravel导入导出功能,就这么简单

    laravel5扩展包excel导入导出功能 一, 简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的 ...

最新文章

  1. hive常用参数配置设置
  2. 俞军:为什么多数产品经理都不合格
  3. 使用腾讯开发平台获取QQ用户数据资料
  4. idea中将java项目中的单个类打包成jar包
  5. mysql字符集解释_MySQL字符集详解
  6. POJ1062 昂贵的聘礼(最短路径)
  7. 【车间调度】基于matlab粒子群算法求解生产调度问题【含Matlab源码 412期】
  8. php二维数组引用变量,PHP二维数组的引用赋值容易犯的错误
  9. 蓝桥杯质数c语言,2017年第八届蓝桥杯C/C++程序设计本科B组省赛 等差素数列(结果填空)(素数筛)...
  10. Android 深入理解AIL语言与init.rc文件
  11. 在编辑word时,如何查找和替换空格符呢?
  12. 触屏收银机市场现状及未来发展趋势
  13. java获取虾米数据_json获取属性值的方式
  14. 什么意思中文_中文十级考题,请解释这四句话是什么意思!
  15. fortune命令简介
  16. 超级用户su没有权限修改所属
  17. PXE实现批量安装部署(win与linux系统)
  18. LAMP 技术简介(3)
  19. Delphi菜单栏背景色-转载收藏学习
  20. VBA给Office添加任务窗格

热门文章

  1. C++ 构造函数分类以及调用
  2. k8s pod MySQL环境变量_Kubernetes 配置Pod和容器(一)定义容器环境变量
  3. LeetCode【7--整数反转】 LeetCode【8--字符串转整数】
  4. 嵌入式开发硬件知识札记
  5. 【C++ Primer | 15】面试问题
  6. Java进阶之光!java字符串类型转换为int
  7. 算法题+JVM+自定义View,隔壁都馋哭了
  8. ad09只在一定范围内查找相似对象_23、面向对象编程
  9. loj2245 [NOI2014]魔法森林 LCT
  10. ES6标准入门(第二版)pdf