總目錄 插件目錄結構(一) Admin後臺頁面編寫(二) 前臺模板頁編寫(三) URL重寫(四) 本實例旨在以一個實際的項目中的例子來介紹如何在dtcms中製作插件,本系列文章非入門教程,部分邏輯實現一帶而過,敬請諒解。 時隔2年,再次收到本文的回覆,實在慚愧,本系列竟然終止於第二章節。不從外部找原... ...
總目錄
- 插件目錄結構(一)
- Admin後臺頁面編寫(二)
- 前臺模板頁編寫(三)
- URL重寫(四)
本實例旨在以一個實際的項目中的例子來介紹如何在dtcms中製作插件,本系列文章非入門教程,部分邏輯實現一帶而過,敬請諒解。
時隔2年,再次收到本文的回覆,實在慚愧,本系列竟然終止於第二章節。不從外部找原因,自從自身找缺點,一定是我寫的不夠好,一定是太功利了,所以決定重新回到當時的教程,完成這個時隔2年的系列。
本章目錄
- 前臺模板頁的編寫
- 前臺模板頁數據的提供
一、前臺模板頁的編寫
1.1 列表頁面
首先在插件目錄的templet下新建一個DataBase_List.html。
文件的內容是要做一個列表頁,除去head和footer,中間部分我們想做成這個樣子。由於我們不是初級教程,這裡頁面的製作設計大量的css我們就略過了,html的內容可以直接找新聞列表頁複製,我們只要對其中的幾個部分做修改就可以了。譬如我們需要自己實現一個導航部分,利用ul>li,外加一些css就可以實現,這裡不再展開,下麵的單個資料庫,類似新聞的摘要部分。右側的分類直接同新聞列表頁右側的分類嘛。兩張圖一對比,就發現完全一樣嘛。
----------------------------------------------------------------------------------------------------------------------------------
所以我們的html大致的框架可以做出來了,head和footer就是複製過來,右側也是複製過來,主要要修改的就是左邊那個div class="main_L"的。
----------------------------------------------------------------------------------------------------------------------------------
接下來在分析到左側的結構,上面兩個篩選框,下麵一個ul>li的摘要簡介列表,最下麵一個分頁。發現分頁是現成的,摘要簡介列表同新聞的部分,實現起來完全可以借鑒。
由於篩選框也是獲取數據迴圈展示,列表部分也是獲取數據迴圈展示,所以我們就拿UL列表部分來解釋
1.2 詳情頁面
列表頁做好之後我們再做詳情頁,詳情頁面和新聞的詳情頁也基本一樣嘛,複製過來稍微改一改就ok了,比列表頁還更省事。這裡就不截圖演示了。
二、前臺頁面數據的提供
2.1 通過URL配置關聯前臺html和後臺cs代碼
還記得第一節我們略過了配置文件中很大一塊內容,URL的rewrite嗎? 這裡我們就要提前簡單介紹一個部分了,就是url和後臺代碼的映射,這裡為了避免干擾信息,我把其他的擦掉了,主要是看rewrite的部分。Name是這個頁面的名字,不可和其他的重寫重覆,type裡面可以有幾個枚舉,list表示列表頁,details表示詳情頁,其他的用的不多。Page表示生成的文件名,因為DTCMS的模板引擎的工作原理是生成出aspx的文件存放在目錄里,這裡page必須要aspx的文件結尾。Inherit這裡就是我們的重頭戲,html關聯的後臺cs代碼的命名空間了。Templet就是這個頁面的模板頁面。所以我們知道了前臺html和後臺cs的關聯是在配置文件里的。也就是下麵的圖中所示。
2.2 提供數據的方法
所以我們在模板頁裡面寫的這些獲取數據的方法,其實呢是寫在下圖這個文件里的。
<%set List<LibCMS.Domain.Stat.DataBase> dbList = FindListByPropertty(out pagelist)%>
--------------------------------------------------------------------------------------
這個文件怎麼寫呢,我們還是找友情鏈接,友情鏈接不也有列表頁嗎,我們複製過來改。所以整個cs文件沒有多少行代碼,只要自己寫一個獲取數據的方法就可以了。請註意了這個頁面上所有定義的屬性,如page,totalcount,pagesize這些protected的變數在模板頁都是可以直接拿來用的,所以有什麼要傳遞的值也可以放在這裡,然後通過ShoPage的時候初始化就可以在html頁面上直接使用了。
至此,我們就完成了前臺模板頁和模板頁獲取數據的一整套工作了。其實如果沒有分頁,沒有篩選,沒有參數的話,這個頁面也就做好了。但是事實上我們碰到的問題總是比想象要複雜的多,這裡我們還沒有考慮到的就是參數傳遞的問題,我們後臺頁面怎麼獲取參數啊?dtcms提供了怎麼樣的參數傳遞方法給我們使用呢? 下一節我們繼續講url重寫的部分。