本人在織夢dedecms本發(fā)分類信息發(fā)布系統(tǒng)那個功能的時候,因為,用到置頂功能,這是很多分類信息系統(tǒng)最很重要的特色,所以,對這個作了一個織夢dedecms系統(tǒng)的研究,以前用織夢dedecms系統(tǒng)建站,還真沒有發(fā)現(xiàn)這個功能,這個置頂功能在“高級參數(shù)”那里面,如下圖所示。
織夢dedecms置頂圖
從上圖看到,他上面的置頂一周,一月,三個月等,對應(yīng)的數(shù)值分別是7,30,90等,這說明這三個阿拉伯?dāng)?shù)字表示天數(shù),即7天,30天,90天等,由此我們只需要增加這里的數(shù)值即可。打開在織夢后臺dede/templets里面找到
article_edit.htm和article_add.htm這二個文件,然后,改上自己希望的天數(shù),例如,我想讓這個置頂為2天,那么在這二個模板文件里面,在下面二行代碼之間。插入<option value="2">置頂2天</option>
<option value='0'>正常排序</option>
<option value="7">置頂一周</option>
當(dāng)然,不一定非得插入到這二行之間,完全可以插入到其它行里面,這個隨便,根據(jù)你自己的需要插入相應(yīng)的代碼即可,實際上就是上面代碼里面的vlue值代表的是天數(shù)。
如果你不是一個技術(shù)站長,到此也就不用向下看教程內(nèi)容,如果你想學(xué)建站技術(shù),請向下閱讀教程。
原理分析:
為什么我加個代碼就能置頂?現(xiàn)在我們就分析這他是如何通過我們選中相應(yīng)的置頂天數(shù),達到置頂?shù)摹?/span>
當(dāng)我們點擊“保存”我們發(fā)布的文章,并選擇了置頂后,程序會把變量sortup的值,通過表單傳遞給程序文件artice.add.php文件,這個文件里面會根據(jù)這個sortup變量值,通過時間函數(shù)AddDay($pubdate,$sortup);把時間,設(shè)置為我們置頂時間,并插入到織夢微表#@_arctiny里面,請注意,個時間函數(shù)的參數(shù),$pubdate是一串?dāng)?shù)字的時間,它是通過函數(shù)GetMkTime($pubdate)把我們發(fā)布文檔的時間,變成了Linux時間截,即一串?dāng)?shù)字,我們在數(shù)據(jù)庫里面,都以Linux時間截的形式保存著數(shù)據(jù),當(dāng)要取出這個時間的,變成人能夠看明白的時間,就要用到其它的函數(shù),例如織構(gòu)里面的MyDate()函數(shù),當(dāng)然,php系統(tǒng)函數(shù)也有很多。
當(dāng)把我們后臺置頂時間,添加到微表、附加表后和主表后,當(dāng)我們更新一下首頁,我們置頂?shù)臅r間就會少一些,直到時間到了就不再置頂了,這個功能是通過后臺生成函數(shù)
織夢都有哪些時間函數(shù)?這個我們打開小助手文夾,找到time.helper.php,這里面全是織夢的時間函數(shù),我們一個一個的看,這個在二次開發(fā)時,也是經(jīng)常用到的。
1.返回格林威治標準時間函數(shù):MyDate($format='Y-m-d H:i:s', $timest=0),例如,我當(dāng)前時間time()的值是1414940523,那么,我們可以通過MyDate函數(shù)進行格式化,MyDate('y-m-d',time()),打印結(jié)果為:14-11-02。在這個里面前面的參數(shù),可以參考php手冊靈活調(diào)用。
2.從普通時間轉(zhuǎn)換為Linux時間截函數(shù):GetMkTime($dtime),這個根上面的MyDate()函數(shù)正是相板,這個函數(shù)我們?nèi)苏D軌蚩吹降臅r間,變成一串?dāng)?shù)字,這樣便于向數(shù)據(jù)庫表保存,而上面的函數(shù),一般是從數(shù)據(jù)表取出時間用到。
3.增減時間函數(shù):SubDay($ntime, $ctime) 參數(shù)$ntime為當(dāng)前時間,$ctime為減少的時間。有減少就有增加,AddDay($ntime, $aday)函數(shù)就是增加函數(shù),不用多數(shù)極其簡單。
4.返回格式化時間函數(shù):GetDateTimeMk($mktime)這個返回的是(Y-m-d H:i:s)風(fēng)格的函數(shù);GetDateMk($mktime)這個返回的是這種(Y-m-d)格式的日期,實際上這二個函數(shù)都是調(diào)用函時間函數(shù)MyDate()。這二個函數(shù)跟GetMKTime()正好相反方向轉(zhuǎn)化。
5.將時間轉(zhuǎn)換為距離現(xiàn)在的精確時間函數(shù):FloorTime($seconds)參數(shù)是秒數(shù),這個在特別開發(fā)中應(yīng)用廣泛,但在一般的開發(fā)中,一般用到的不多,甚至很少用到,算是比較專業(yè)的時間函數(shù)。
上面幾個織夢dedecms的函數(shù),只是我們在開發(fā)網(wǎng)站中經(jīng)常用到的,但是織夢dedecms 的php系統(tǒng)給我們提供的時間函數(shù),還有很多,參數(shù)也非常豐富。如果需要可以查詢php手冊。