织梦Dedecms的默认页面中有个list_article.htm页面,这是dede的列表页面。在列表页显示文章的列表,是通过dede的list和pagelist这两个个标签实现的。本文就这两个标签的使用及pagelist的样式进行下详细的说明。首先介绍下list标签的参数及使用方法:
标签名称:list。功能说明:表示列表模版里的分页内容列表使用范围:仅列表页模版 list_*.htm基本语法:{dede:list col=” titlelen=” infolen=” imgwidth=” listtype=” orderby=” pagesize=” orderway=”}{/dede:list}
参数说明:col=” 内容列数;titlelen=” 标题长度;infolen=” 内容摘要长度;imgwidth=” 缩略图宽度;imgheight=” 缩略图高度;orderby=” 排序方式,有效的排序方式有 senddate、pubdate、id、click、lastpost、postnum,默认为sortrank;pagesize=’20’ 分页大小
底层模版字段:ID(同id), typeid, sortrank, flag, ismake, channel,arcrank,click,money,title,shorttitle,color,writer,source,litpic(同picname),pubdate,senddate,mid,lastpost,scores,goodpost,badpost,notpost,description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,stime(pubdate 的”0000-00-00″格式)。注:list标记除了支持档案表的基本模板变量外,还支持附加表的字段,你可以在模型管理中知道附加表支持列表使用的字段有哪些。
下面介绍pagelist的参数及使用方法:标签名称:pagelist;功能说明:表示分页页码列表;适用范围:仅列表模板 list_*.htm;基本语法:{dede:pagelist listsize=’5′ listitem=”/};参数说明:listsize 表示[1][2][3] 这些项的长度 * 2;listitem 表示页码的样式,可以把下面的值叠加;index 首页;pre 上一页;pageno 页码;next 下一页;end 末页;option 下拉跳转框例:{dede:pagelist listitem=’index,end,pre,next,pageno’ listsize=’5′ /}。
但是有时候直接引用上面的标签的时候,会出现变形问题。因为pagelist本身就有一些样式是在include/arc.listview.class.php定义css样式的。所以如果你不采用默认模板的话,一调用这个标签就容易出现问题。这是因为列表页pagelist的分页标记在v5.1下默认输出这样的样式:<a href='#'>首页</a>;<a href='#'>1</a><a href='#'>2</a><a href='#'>3</a><a href='#'>下一页</a><a href='#'>末页</a>
而在v5.3以后输出样式变成了这样:<li><a href="#">首页</a></li><li><a href="#">1</a></li><li><a href="#">2</a></li><li><a href="#">3</a></li><li><a href="#">下一页</a></li><li><a href="#">末页</a></li>下面是两个解决方法。
方法一:(比较直观的方法,个人感觉此方法最好)首先把这个标签放在一个容器里;<ul class='pagelist'>{dede:pagelist listsize='5' /}</ul>然后定义css:
.pagelist li{ float:left; margin-right:3px; list-style-type:none;}
方法二:去掉<li>标签。在include/arc.listview.class.php中删除相应的<li>代码,输出就变成了v5.1的形式了。另外,include/arc.listview.class.php中option的代码注释掉了,恢复就能用了。
DEDECMS自带样式表CSS定义在 /templets/default/style/page.css 中所有涉及到.dede_pages 的位置,V5.7中大约从第77开始。大家可以把这段CSS复制到自己的样式表中,然后修改成自己想要的样式就行了。