2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

Discuz主題列表頁面修改成小米風(fēng)格可能出現(xiàn)的問題原因及修復(fù)方案

2015-10-13 10:43 欄目:技術(shù)開發(fā) 查看(24002)

大家都知道小米論壇也是基于Discuz的開發(fā)的,只不過他們進(jìn)行了深度二次開發(fā),以至于看上去沒有了Discuz的一些特征。也許是小米這個品牌火的原因,很多人就開始模仿小米的風(fēng)格,特別是主題列表;總之現(xiàn)在不管是OPPO、360論壇這些比較知名的社區(qū),還是一些小的論壇,大家都似乎想把列表改成小米那種風(fēng)格。不過我個人也覺得小米的那種風(fēng)格比Dz默認(rèn)的要好看很多。

eee3

但大家也知道,Discuz的主題列表是使用table來控制布局了,我可以這么說,現(xiàn)在的很多前端工程師都特別討厭這種布局,大家可以看到那些大的論壇自己進(jìn)行二次開發(fā)的時候已經(jīng)把table給移除掉了。也是因為table的存在導(dǎo)致我們進(jìn)行二次開發(fā)時候可能會出現(xiàn)一些問題。

雖然Dsicuz使用了模版分離,但是在一些頁面模版還是在做很多邏輯性的東西,比如主題列表中的一個小圖標(biāo),可能就會在模版中出現(xiàn)幾十行的代碼,這樣就給我們的修改帶來很大的麻煩(因為看得都暈)。但是即使你在forumdisplay_list.htm中把一切都修改成你所想要的,比如把原來的五列修改成兩列,或者干錯用div代替table來控制布局,但是你會發(fā)現(xiàn)還是有問題(這個問題實際上很多現(xiàn)在在應(yīng)用中心的第三方同類模版是存在的)。
比如說Discuz有一個這樣的功能,當(dāng)我們打開某個板塊,然后這個板塊有新的回復(fù);頁面會自動顯示“該板塊有新回復(fù)”,然后我們點擊會發(fā)現(xiàn)可以加載新的內(nèi)容到最開頭。而就是這樣的場景,就會出問題;因為這是通過ajax來請求的,因此這些新內(nèi)容并沒有在這個模版文件中,而是在其他位置。這樣就導(dǎo)致了如圖(下面是依然修改成table來控制布局,但改成了兩列的)。

eee3

因此不管是保持table來控制布局,還是用div來替換table,我們都得找到那些通過ajax請求加載過來的數(shù)據(jù)的模版,比如剛才所說的就位于forum/ajax_threadlist.htm。其中如下代碼正是相應(yīng)的模版文件:

newthread[{$i}] = {'tid':$thread[tid], 'thread': {'icn':{'className':'icn','val':'$icon'}<!--{if $_G['forum']['ismoderator']}-->, 'o':{'className':'o','val':'<input type="checkbox" value="{$thread[tid]}" name="moderate[]" onclick="tmodclick(this)">'}<!--{/if}--> ,'common':{'className':'new fn','val':'{if !$_G['setting']['forumdisplaythreadpreview']}<a class="tdpre y" href="javascript:void(0);" onclick="javascript:previewThread(\'$thread[tid]\', \'$thread[id]\');">{lang preview}</a>{/if}$thread[threadurl]'}, 'author':{'className':'by','val':'<cite>$thread[authorurl]</cite><em><span>{$thread[dateline]}</span></em>'}, 'num':{'className':'num','val':'<a href="forum.php?mod=viewthread&tid={$thread[tid]}">{$thread[replies]}</a><em>{$thread[views]}</em>'}, 'lastpost':{'className':'by','val':'<cite>$thread[lastposterurl]</cite><em><a href="forum.php?mod=redirect&tid=$thread[tid]&goto=lastpost#lastpost">{$thread[lastpost]}</a></em>'}}};

比如我改成與我修改forumdisplay_list.htm的一致的,就是如下代碼;當(dāng)然我還是建議如果要修改這部分,就干脆修改成了div來控制布局(因為我并不喜歡用table來控制布局)。

newthread[{$i}] = {'tid':$thread[tid], 'thread': {'icn':{'className':'icn','val':'<a href="home.php?mod=space&uid=$thread[authorid]" c="1" ><!--{avatar($thread[authorid],small)}--></a> '},'common':{'className':'new fn','val':'<p><!--{if $_G["forum"]["ismoderator"]}--><input type="checkbox" value="{$thread[tid]}" name="moderate[]" onclick="tmodclick(this)"><!--{/if}-->$thread[threadurl]</p><div class="tinfo cl"><span class="z"><i>{lang author} </i>$thread[authorurl]<i{if $thread["istoday"]} class="xi1"{/if}>{$thread[dateline]}</i><span class="pipe">/</span><i>{lang lastpost} </i><i><a href="forum.php?mod=redirect&tid=$thread[tid]&goto=lastpost#lastpost">{$thread[lastpost]}</a></i> </span><span class="y"><em class="ico_reply">{$thread[replies]}</em><em class="ico_see">{$thread[views]}</em></span></div>'}}};

這樣就完成了這一部分的問題,實際上Discuz很多地方都是通過ajax來請求數(shù)據(jù),而且請求過來的數(shù)據(jù)是已經(jīng)帶了模版的,如果請求過來的與本身的布局不一致就會造成問題,這一點要特別注意。

與我們的項目經(jīng)理聯(lián)系
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請注明出處:Discuz主題列表頁面修改成小米風(fēng)格可能出現(xiàn)的問題原因及修復(fù)方案 - 微構(gòu)網(wǎng)絡(luò)
分享:
贵定县| 兴化市| 忻州市| 古田县| 安图县| 宜昌市| 南丰县| 同仁县| 吴堡县| 漾濞| 汝州市| 长岭县| 奉节县| 叙永县| 镶黄旗| 巴楚县| 泰顺县| 巴彦淖尔市| 梧州市| 巴中市| 山丹县| 马关县| 河池市| 栾城县| 郸城县| 乌兰察布市| 沽源县| 广饶县| 福海县| 青川县| 襄汾县| 阳江市| 神池县| 英德市| 德令哈市| 荥阳市| 神农架林区| 修水县| 竹溪县| 延庆县| 景德镇市|