此文章獨家提供給 m.95time.cn ,請不要轉(zhuǎn)載
在內(nèi)容系統(tǒng)開發(fā)中,涉及內(nèi)容和形式分離的過程,也就是根據(jù)用戶自定義頁面模板然后替換成相關(guān)內(nèi)容的過程。這和外面很多整站的內(nèi)容管理系統(tǒng),有本質(zhì)上的區(qū)別。有不少內(nèi)容管理系統(tǒng),多少人用,都是一個樣子,因為頁面無法自定義,不懂編程的用戶無法修改。象那種,只填幾個參數(shù)就出來的網(wǎng)站,我估計是沒有什么前途的。因為人人都是一個樣子,人人都是會填那些參數(shù)的。
舉個例子,你查看一下以下幾個站點,你會認為他們是一套程序嗎? m.95time.cn http://pages.blueidea.com http://digi.blueidea.com http://dsp.blueidea.com http://www.dcshooter.com
如果我告訴你,他們都是一個程序,只是由相關(guān)的站長,設(shè)計不同的模板得到的頁面顯示,你就會發(fā)現(xiàn),這個系統(tǒng)的優(yōu)良性。
當然由于這套系統(tǒng)的高端性,目前普通用戶無法使用,于是我開發(fā)了我自己的內(nèi)容管理系統(tǒng) kiss 內(nèi)容管理系統(tǒng)。
而要給用戶一個模板系統(tǒng),首先,就是要有一個簡單易懂的標記系統(tǒng)。大家看看下面的代碼,看是否容易理解: <tag:loop channelid="1" pagesize="10" title="20" type="NEW" column="1">
略有HTML經(jīng)驗的人,就知道,這是一個模板標記里的循環(huán)標記,因為這是最常用的,你看我們網(wǎng)站的首頁,列出10條文檔也就只需要寫一個這樣的標記就完成了,這是不是讓不明白編程的人,也很容易做出自己設(shè)計的頁面出來呢?
參數(shù)說明: channelid 為一個欄目的在數(shù)據(jù)庫中的ID pagesize 為列舉多少個文檔 title 為標題的長度 type 為列表列型,這里的”NEW”我們設(shè)定為最新的文檔 column 為顯示幾列
以上介紹是給不會編程,或者對不了解內(nèi)容系統(tǒng)的人做個普及,并且給我的內(nèi)容管理系統(tǒng)打個廣告,而且我想說的是,藍色理想站點用的內(nèi)容管理系統(tǒng)模板模塊,要比我的強大很多。
下面輪到程序員了,其它人可以不用往下看。 那么怎么把它們的值讀出來呢? 下面這個函數(shù)是最后的,用來解析所有模板的內(nèi)容
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
在上面的代碼中,用到了正則表達式,如果你對它還不是很了解,請參閱相關(guān)資料,這里就不詳細介紹了。
那么怎么取出參數(shù)值呢,也是一個函數(shù): 代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
OK好了,那怎么解析像上面<tagloop:>內(nèi)容呢? 下面就是一個函數(shù):
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
上面的loop是一個類,這里也不再詳說了。因為好久沒有說話了,不太習慣,呵呵。 結(jié)論,通過上面的函數(shù),你可以很快的編寫相關(guān)的模板程序了。希望對你有幫助。
出處:藍色理想
責任編輯:藍色
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|