dedecms专题文章列表的模板修改

如果没有进行特别的设置,专题的文章列表显示默认是采用的default下面的article_spec.htm文件作为模板。

这个模板文件很简单,前面是该专题的一些信息,下面是分割线,分割线以下就是现实节点和节点文章的模块。

这个模块按理说应该是专题模板最重要的内容,可是只有下面几行:

<divclass="speciallist">

{dede:field.note/}

</div>

实在是让人出乎意料-这让人怎么改啊,连htmldedecms,就只能这样了,也许作者是希望减少用户的工作量吧,可以理解。

要灵活的修改这个页面显示节点文章的样式,我想到了两种办法:

1.直接在浏览器显示该页面时查看html代码的方式。

不管你后台是如何做的,显示在浏览器上的才是最终结果。所以我只需看你最终的html代码,查看用到了那些html元素,在将相关元素的css写在样式表里面。这里有点小技巧,用firefox的firebug可以很容易的完成这个工作,至于怎么用,这里就不讲解了,可以直接百度。

原来在最中的页面里面,节点文章列表的显示是这么几行代码:

<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加上classhtml代码放在 {dede:field.note/}里面。

走过的路成为背后的风景,不能回头不能停留,若此刻停留,

dedecms专题文章列表的模板修改

相关文章:

你感兴趣的文章:

标签云: