立即注冊(cè) 找回密碼

QQ登錄

只需一步,快速開始

如何改造Discuz門戶列表 讓其變得簡(jiǎn)潔大氣

2015-2-28 00:59| 發(fā)布者: 學(xué)習(xí)NO.1| 查看: 849| 評(píng)論: 0|原作者: 學(xué)習(xí)NO.1

摘要: 在中國(guó)互聯(lián)網(wǎng)中,也許從業(yè)者無(wú)人不知道Disucz的大名,因?yàn)樗_實(shí)一款非常優(yōu)秀的開源建站軟件,也因此運(yùn)行在國(guó)內(nèi)各個(gè)網(wǎng)站服務(wù)器之上。說(shuō)到它大家可能最大的印象就是做社區(qū)論壇,其實(shí)從本質(zhì)上講這塊產(chǎn)品包括了很多模塊 ...

在中國(guó)互聯(lián)網(wǎng)中,也許從業(yè)者無(wú)人不知道Disucz的大名,因?yàn)樗_實(shí)一款非常優(yōu)秀的開源建站軟件,也因此運(yùn)行在國(guó)內(nèi)各個(gè)網(wǎng)站服務(wù)器之上。說(shuō)到它大家可能最大的印象就是做社區(qū)論壇,其實(shí)從本質(zhì)上講這塊產(chǎn)品包括了很多模塊,而我們最常用的BBS只是其中的一部分而已,同樣的道理,門戶也是其中的模塊之一。

也許在國(guó)內(nèi)也有過(guò)很多優(yōu)秀的開源CMS建站系統(tǒng),但就是因?yàn)镈Z聚合了很多個(gè)模塊,而且進(jìn)行各個(gè)模塊的相互整合技術(shù)成本會(huì)很低,因此有不少的站長(zhǎng)想直接利用這個(gè)程序解決自己所有問(wèn)題,即全部用這套程序搭建問(wèn)題。但就在這個(gè)時(shí)候,大家可能都有所感受,其實(shí)DZ的精髓還是在于它的論壇部分,而其他的模塊就是不痛不癢了,特別是門戶部分甚至在其官方?jīng)]有確切的入口。

因此,大家也知道默認(rèn)的門戶模板是很久都沒有更新的,而且默認(rèn)的確實(shí)有點(diǎn)上不了臺(tái)面;比如今天就跟大家說(shuō)說(shuō)門戶的列表頁(yè)吧,我就通過(guò)我之前做的一個(gè)實(shí)例來(lái)分享下改造過(guò)程吧,實(shí)現(xiàn)后就是下面的樣子,接下來(lái)我就講解下基本的思路吧。


360截圖20150228005741003.jpg

第一,設(shè)計(jì)好樣式并不書寫好html和CSS,當(dāng)然這也是最簡(jiǎn)單的一部分。

這一點(diǎn)我相信只要懂做網(wǎng)站的朋友都會(huì),甚至可以直接copy那些比較優(yōu)秀網(wǎng)站的前端代碼,也就是大家所謂的仿站中的一部分。當(dāng)然我建議還是自己設(shè)計(jì)出版式來(lái),這樣更具個(gè)性,而且是你想做成什么樣就是什么樣的。

第二,調(diào)用動(dòng)態(tài)參數(shù)。

上面第一步我們完成的僅僅是一個(gè)靜態(tài)的頁(yè)面,而我們現(xiàn)在做的肯定是需要讓其內(nèi)容動(dòng)起來(lái),而這些參數(shù)無(wú)非就是DZ內(nèi)部的一些動(dòng)態(tài)變量參數(shù)。比如文章的發(fā)布日期的變量是$value[dateline],文章的地址是$article_url,當(dāng)然這些參數(shù)只要參考默認(rèn)模板中的即可。這里又會(huì)有一個(gè)問(wèn)題,也許大家可能會(huì)在這個(gè)頁(yè)面需要加上默認(rèn)模板沒有的,而在默認(rèn)模板其他頁(yè)面有的。是不是自己復(fù)制另外頁(yè)面的相應(yīng)參數(shù)就可以了呢?肯定是不行的,DZ是一套比較復(fù)雜的系統(tǒng),不同的頁(yè)面的很多參數(shù)是不能通用的,這樣就需要對(duì)部分進(jìn)行二次開發(fā)。比如就如上面展示的列表那樣需要加上原來(lái)沒有的瀏覽數(shù)和評(píng)論數(shù),就需要在相關(guān)的函數(shù)中添加一些功能性語(yǔ)句了,比如這個(gè)列表的相關(guān)函數(shù)存儲(chǔ)在

/source/module/portal/portal_list.php中

在中間的自定義函數(shù)category_get_list中添加讓通用變量啟用的語(yǔ)句

$article_count = C::t('portal_article_count')->fetch($value['aid']); if($article_count) $value = array_merge($article_count, $value);

這樣進(jìn)行簡(jiǎn)單的二次開發(fā)后就可以在門戶的列表頁(yè)使用$value[commentnum]調(diào)用評(píng)論數(shù)以及用$value[viewnum]調(diào)用瀏覽數(shù)了;當(dāng)然其他的一些功能也是類似的,當(dāng)然需要你有一定的PHP基礎(chǔ)。

第三,優(yōu)化性能。

就如這種圖文列表的形式,我們不可能在一個(gè)單頁(yè)列表中包含的數(shù)據(jù)記錄數(shù)只會(huì)三五個(gè),一般地我們得在單頁(yè)有近二十條數(shù)據(jù),但這樣就會(huì)出現(xiàn)一個(gè)問(wèn)題,當(dāng)用戶首次打開這個(gè)列表的時(shí)候數(shù)據(jù)量會(huì)特別的大。比如就二十條數(shù)據(jù),圖片每個(gè)40KB,光列表中的圖片大小就有了800KB,這樣打開起來(lái)肯定不可能太快。

這里就需要我們進(jìn)行適當(dāng)?shù)男阅軆?yōu)化,比如可以進(jìn)行分屏加載,而使用jQuery和AJAX等技術(shù)都可以實(shí)現(xiàn)這些,比如jQuery的插件Lazy Load就可以實(shí)現(xiàn)圖片的分屏加載,當(dāng)然至于怎么用網(wǎng)上有很多相關(guān)的教程。

在這里我不得不提示大家,jQuery 默認(rèn)情況下會(huì)與DZ的JS沖突,因?yàn)镈Z變量用的 是 $ 開頭,而jQuery也是用$這個(gè)所以會(huì)有沖突。解決的辦法也很簡(jiǎn)單,jQuery庫(kù)不改變,只在引用的時(shí)候改變一下就可以了,可以先賦予一個(gè)變量如var jq = jQuery.noConflict();然后用這個(gè)變量jq代替引用中的$就可以解決這個(gè)沖突了。

上面就是一個(gè)簡(jiǎn)單的實(shí)例分享,希望對(duì)大家有所幫助。其實(shí)上面的內(nèi)容也提示了大家一些問(wèn)題,那就是最好自己先掌握一些基礎(chǔ)知識(shí),同時(shí)不要胡亂添加一些代碼,比如很多站長(zhǎng)甚至不知道jQuery會(huì)和DZ沖突,而在網(wǎng)上隨意下載特效添加在網(wǎng)站中,這樣不出問(wèn)題才怪!

本文來(lái)源:http://logozhizuowang.com/read-htm-tid-210230.html(由logo制作網(wǎng)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處!)



鮮花

握手

雷人

路過(guò)

雞蛋

最新評(píng)論

!jz_fbzt! !jz_lxwm! !jz_gfqqq!

關(guān)于我們|手機(jī)版|小黑屋|地圖|【道勤網(wǎng)】-bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程【道勤網(wǎng)】 ( 皖I(lǐng)CP備15000319號(hào)-1 )

GMT+8, 2024-10-23 09:40

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

返回頂部