免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
汪炳吉_修改和新建DNN的模塊及一些DNN代碼和開發(fā)過程


 

最近在做一個項目要用DotNetNuke 3.x來做,要在Html/Text這個Module(模塊)的基礎(chǔ)上做一個新的模塊,當(dāng)然要加上許多額外的控制功能。

研究了一下DNN的文檔,感覺DNN比較復(fù)雜(相對DRUPAL和MAMBO而言)。分了好幾層,如下:

*.ascx|*.ascx.VB 或 C#|Controller(控制者)|ObjectInfo(商業(yè)對象)|DataProvider(抽象數(shù)據(jù)提供者)|SQLDataProvider(實際數(shù)據(jù)提供者)|StoredProc(存儲過程)|DB Table(數(shù)據(jù)庫表)注:此圖只是表達一個大致的意思,并不精確完整。

我現(xiàn)在終于基本搞明白了,也會做了。如果你有類似需要可找我?guī)兔?,我可為你提供有償服?wù),制作DNN的自定義模塊等高級應(yīng)用和開發(fā)。

當(dāng)然若只是要用DNN來架個網(wǎng)站,那就更不在話下了,因為這只是低級應(yīng)用。



Settings.ascx.vb
節(jié)選一段用于模塊開發(fā)中用來判斷當(dāng)前用戶是不是Portal Admin的VB.NET代碼(DNN 3.x):

 

Private Function IsPortalAdmin() As BooleanDim tmpStr As StringDim objRoleController As RoleController = New RoleControllerDim roleAry As String() = objRoleController.GetPortalRolesByUser(Me.UserId, Me.PortalId)If Not roleAry Is Nothing ThenFor Each aRoleStr As String In roleAryIf aRoleStr = "Administrators" ThenReturn TrueEnd IfNextEnd IfReturn FalseEnd Function

我不知道這樣寫是不是最佳辦法,但經(jīng)試驗它確實能工作。也歡迎您發(fā)表更好的實現(xiàn)此功能的代碼。



YourModule.ascx.vb
節(jié)選一段用于一個模塊中,用來獲取與該模塊在同一頁面上的其他模塊中的信息的VB.NET代碼(基于DNN 3.X):

 

我不知道這樣寫是不是最佳辦法,但經(jīng)試驗它確實能工作。也歡迎您發(fā)表更好的實現(xiàn)此功能的代碼。



我基于DNN的Text/HTML模塊,做了一個客戶化的HTML模塊,用來給客戶發(fā)表文章,因要結(jié)合客戶原有的一套文章管理系統(tǒng),及有一些特殊的控制,如對文章的驗證,誰驗證的等.

 

又基于Links模塊做了一個特殊的Links模塊,它可以自己自動產(chǎn)生一些鏈接.



后來又做了這兩個模塊(Module)的安裝包,就是內(nèi)放了一個后綴為 .dnn 的XML的Manifest文件及其他模塊要用到的文件的 .zip 文件包,這樣,就可以通過dnn網(wǎng)站的web界面直接自動安裝我做的模塊了。若不制作安裝包的話,就得把 .dll, .ascx 文件等一個個COPY到WEB服務(wù)器上去,手工安裝。


2006-07-14:
又開始做另一個DOTNETNUKE的客戶項目了,今天做了一個登錄的功能,即一個登錄的界面,未登錄時顯示登錄框,登錄后顯示用戶的名字及登出鏈接.這個不是用模塊做的,只是一個 .ascx (用戶控件),然后嵌到SKIN皮膚中去就行了,這樣在所有頁面就都會有這個登錄功能了.實現(xiàn)方式是:整合和利用了DNN現(xiàn)有的一些登錄方面的代碼.


2006-07-19:
客戶又要在客戶化的TEXT/HTML MODULE上增加手工插入分頁符的功能,如插入<--break-->這樣,把一個模塊上的內(nèi)容分到多頁顯示,而且還要顯示一組分頁的導(dǎo)航控制鏈接,如:Previous Page 1 2 3 4 5 6 Next Page。

 

因為這個項目是用ASP.NET 1.1開發(fā)的,ASP.NET 1.1沒有PAGE CONTROL可用,除了DATAGRID中自帶一個,但這個HTML模塊無法用DATAGRID。

到網(wǎng)上找了一下,有分頁的HTML MODULE,但要花錢買的($19美元),沒辦法,只能自己寫一個吧。

雖然在前面合并Search Results時也自己做過PAGE CONTROL,但那個比較簡單,且大量借用了DATAGRID的PAGE CONTROL功能,所以必須自己實現(xiàn)或找第三方的。

我到網(wǎng)上找到一個Pager Control for ASP.NET 1.1在http://www.codeproject.com/aspnet/ASPNETPagerControl.asp
,但這個CutePager的一些特性和功能和樣子不符合客戶的要求,我又對它進行了一些修改.
客戶要的是這樣的:

而CutePager是這樣的:

且客戶不要HINT;當(dāng)中還要有豎線;用的CSS的CLASS的名字也不一樣;前面的Page x of xx也不要;首頁及末頁時仍要顯示“前頁”和“下一頁”,但鏈接不起作用。

所以有很多不同,我就一一修改,最后完成了。

發(fā)現(xiàn)一個BUG,當(dāng)同一頁面上有兩個用到CutePager的模塊時,它們的頁面控制會互相影響,若另一模塊的某一頁不存在時,還會出錯. 于是立即修改.

也給這個模塊做了一個安裝zip包.

我最終完成的Pager類的代碼如下:

我最終完成的HtmlModule.ascx.vb中的Page_Load的代碼片斷如下:

客戶又要模塊內(nèi)容和設(shè)置可以導(dǎo)入和導(dǎo)出(Import Content, Export Content),于是又做了導(dǎo)入和導(dǎo)出功能,使客戶的額外字段也能導(dǎo)入和導(dǎo)出.



DotNetNuke中的模塊的Page_Load時,如何知道當(dāng)前的Page Load是不是Print mode?
找到答案了:If you want to handle a print action differently, look for the dnnprintmode querystring variable with a value of true and handle it accordingly.


口說無憑,且不直觀,故等這個網(wǎng)站上線后,我會給大家兩個網(wǎng)址鏈接,以讓大家可以親身感受我以上的所做開發(fā)。

 


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DNN模塊開發(fā)系列文章(2)——建立模塊開發(fā)項目
幾個.Net開源的CMS、Portal系統(tǒng) - Jyfish‘Blog - 博客園
搭建基于ASP.NET 2.0的DNN 4.X模塊開發(fā)環(huán)境及模塊實例
DNN系統(tǒng)構(gòu)架圖 - m2land-專注DNN(DotNetNuke) - 博客園
我的未來學(xué)習(xí)方向
ASP.NET中創(chuàng)建用戶控件
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服