讓模組支援「匯入」「匯出」功能

2021-09-05 15:07:59 字數 2888 閱讀 1299

讓模組支援「匯入」「匯出」功能

dnn模組可以支援匯入匯出功能,通過將模組內容匯入到xml檔案可以便於模組內容備份和轉移,也可將模組內容事先以xml格式儲存通過匯入功能實現模組內容的批量錄入。

如圖:[img]

要實現模組的匯入匯出功能,需要在模組的業務邏輯訪問物件(***controller)中實現iportable介面:

1、iportable介面(components\modules\iportable.vb)

namespace dotnetnukenamespace dotnetnuke.entities.modules

' 模組匯出匯入功能介面

public inte***ce iportableinte***ce 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 inte***ce

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 += ""

dim objlink as linkinfo

for each objlink in arrlinks

' 編寫模組內容的每一條記錄

strxml += ""

strxml += "" & xmlencode(objlink.title) & ""

strxml += "" & xmlencode(objlink.url) & ""

strxml += "" & xmlencode(objlink.vieworder.tostring) & ""

strxml += "" & xmlencode(objlink.description) & ""

strxml += "" & xmlencode(objlink.newwindow.tostring) & ""

strxml += ""

next

strxml += ""

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檔案的節點寫明該模組的業務邏輯類,如:

dnnchina.modules.clinks.clinkscontroller, dnnchina.modules.clinks

js 模組匯出匯入 整理

匯出 modules.exports 匯入 let require modulea 等價於 let ma require modulea let test ma.test let flag ma.flag 匯出 export let name aaa export let age 18 export...

es6模組匯入匯出

如何在 webpack 構建的專案中,使用 vue 進行開發 複習 在普通網頁中如何使用vue 1.使用 script 標籤 引入 vue 的包 3.通過 new vue 得到乙個 vm 的例項 在webpack 中嘗試使用 vue 注意 在 webpack 中,使用 import vue from...

es模組化匯入匯出

在es6中每乙個模組即是乙個檔案,在檔案中定義的變數,函式,物件在外部是無法獲取的。如果你希望外部可以讀取模組當中的內容,就必須使用export來對其進行暴露 輸出 先來看個例子,來對乙個變數進行模組化。我們先來建立乙個test.js檔案,來對這乙個變數進行輸出 export let myname ...