1. 程式人生 > >dedecms專題文章列表的模板修改

dedecms專題文章列表的模板修改

如果沒有進行特別的設定,專題的文章列表顯示預設是採用的default下面的article_spec.htm檔案作為模板。

這個模板檔案很簡單,前面是該專題的一些資訊,下面是分割線,分割線以下就是現實節點和節點文章的模組。

這個模組按理說應該是專題模板最重要的內容,可是隻有下面幾行:

<divclass="speciallist">

 {dede:field.note/}

</div>

實在是讓人出乎意料-這讓人怎麼改啊,連html標籤都看不到。雖然不滿,但是既然用了dedecms,就只能這樣了,也許作者是希望減少使用者的工作量吧,可以理解。

要靈活的修改這個頁面顯示節點文章的樣式,我想到了兩種辦法:

1.      直接在瀏覽器顯示該頁面時檢視html程式碼的方式。

不管你後臺是如何做的,顯示在瀏覽器上的才是最終結果。所以我只需看你最終的html程式碼,檢視用到了那些html元素,在將相關元素的css寫在樣式表裡面。這裡有點小技巧,用firefoxfirebug可以很容易的完成這個工作,至於怎麼用,這裡就不講解了,可以直接百度。

原來在最中的頁面裡面,節點文章列表的顯示是這麼幾行程式碼:

                            <dlclass="tbox">

                                     <dt><strong>

節點名稱</strong></dt>

                                     <dd>

                                               <ulclass="d1 ico3">

節點文章列表

                                               </ul>

                                     </dd>

                            </dl>

知道這個以後,修改樣式應該不難了吧。

2.      雖然上訴的方法不麻煩,但是總覺得不靈活。那我們直接看原始碼,然後隨意的修改吧。

處理專題主題呼叫標籤{dede:field.note/}php檔案是include/taglib/channel/specialtopic.lib.php.

找到ch_specialtopic()函式的第五行

$tempStr =GetSysTemplets('channel_spec_note.htm');

從這裡可以看到channel_spec_note.htm這個檔案決定了節點和節點文章的顯示。

channel_spec_note.htm檔案放在系統模板檔案裡面templets/system/channel_spec_note.htm

開啟該檔案我們發現裡面的html程式碼和在瀏覽器檢視的幾乎一模一樣:

                   <dlclass="tbox">

                                     <dt><strong>~notename~</strong></dt>

                                     <dd>

                                               <ulclass="d1 ico3">

                             ~spec_arclist~

                                               </ul>

                                     </dd>

                            </dl>

在實際執行的時候notename會被替換成節點名,~spec_arclist~

會被替換成節點文章超連結。~spec_arclist~其實是一個字串:形如<li>文章超連結</li>

找到這個檔案可以修改除了li之外的所以html元素,但是li我們還是不能為其加上類和id

這個應該是在處理的php程式碼裡面。

46行附近有這一句程式碼:

$listTemplet = trim($ctag->GetInnerText())!=''? $ctag->GetInnerText() : GetSysTemplets('spec_arclist.htm');

GetSysTemplets('spec_arclist.htm');其實就是處理單條文章列表的模板了。

spec_arclist.htm是一個系統模板檔案。在templet/system/spec_arclist.htm下面,找到並開啟檔案

<li><span class="date">[field:typename/]</span><ahref="[field:arcurl /]" target="_blank">[field:title /]</a></li>

這就是我們要修改的地方了,你可以給li加上class,或者乾脆不要換成你想要的任何標籤。你還可以直接將這裡面的html程式碼放在  {dede:field.note/}裡面。