也就是上面用arclist标签调用的,要不然就得指定

作者:mgm娱乐

mgm娱乐 ,使用arclist标签的 [field:image/]时,没有指定imgwidth和imgheight发现图片都加了宽度高度,且为120.本来是想指指定高度,宽度自动的。如今却一直是120,要不然就得指定imgwidth。

需求:因为要在列表页中要用arclist 标签调用几篇文章放到头部。所以下面的list标签肯定有重复的,所以要用到noflag属性,也就是上面用arclist标签调用的,下面都不要出现。但是我们看下织梦的手册,list标签是不支持这个属性的。

全局标签

找到includetaglibarclist.lib.php文件。发现指定的有预设值。随即就修改了文件,大概在175行附近。

适用范围:仅列表模板 list_*.htm

arclist 文档列表

//$imgwidth = AttDef;

基本语法:

(DedeCMS>3.0,DedeCMS4,DedeCMS5)

//$imgheight = AttDef;

{dede:list col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby=''

名称:arclist

将其注释掉。随后在arclist标签里 只指定imgheight 就ok了。

pagesize='' orderway=''}{/dede:list}

功能:用于获取系统主从表模型(如:文章、软件、图集、商品等)的一列文档,也称自由列表块标记,

但此时就出现了另一个问题。在ie里面 当width=''时 预览时自动将其值填为1.当去掉width=''时就可以了。那就还需要修改includetaglibarclist.lib.php文件。大概在239行

参数说明:

其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。

$row['image'] = "mgm娱乐 1";

col='' 内容列数;

语法:

这样定义的。去掉width='{$imgwidth}' 就可以了。

titlelen='' 标题长度;

{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''

$row['image'] = "mgm娱乐 2";

infolen='' 内容摘要长度;

limit='0,1'}

imgwidth='' 缩略图宽;

<ahref='[field:arcurl/]'>[field:title/]</a>

imgheight='' 缩略图高;

{/dede:arclist}

orderby='' 排序方式,有效的排序方式有 senddate、pubdate、id、click、lastpost、postnum ,默认为 sortrank,pagesize='20' 分页大小;

文件:

但是我们知道arclist标签是支持这个属性的,然后我们完全可以仿照arclist标签的文件/include/taglib/arclist.lib.php来处理下list标签的那个类文件,也是/include/arc.listview.class.php。

includetaglibarclist.lib.php

下面是具体实现步骤:

functionlib_arclist(&$ctag,&$refObj)

1.要在这个类(/include/arc.listview.class.php)里面定义一下这个变量:在大约45行左右加入这个变量的定义;

默认底层模板:

mgm娱乐 3

imglist:part_imglist.htm

mgm娱乐 4

imginfolist:part_imginfolist.htm

2.在构造函数中也要定义一下:大约72行左右加入;

arclist:part_arclist.htm

mgm娱乐 5

参数:

3.在解析模板里面也要增加一下,解析的时候增加这个条件:大约在621行;

col='' 分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示

mgm娱乐 6

如果col='1'要多列显示的可用div+css实现

4.获得一个单列的文档列表的函数里面加上这个条件:大约在730行;

以下为通过div+css实现多列的范例:

5.在下面的排序方式中增加这段代码。注意这里是完整的代码都要加上,如果你不会你可以照着敲

<styletype=text/css>

mgm娱乐 7

div{width:400px;float:left;}

因为我们填写noflag属性的时候,有时候不止写一个比如noflag='c,h'。所以这里就是分割下然后循环下把这几个属性都加在这个sql语句中。我们知道不管怎么做最后都是要用sql查询 然后return。

</style>

6.在sql语句中加上我们写的这个关于noflag的

{dede:arclistrow='10'titlelen='24'orderby='pubdate'idlist=''col='2'}

mgm娱乐 8

•[field:textlink/]([field:pubdatefunction=MyDate('m-d',@me)/])<br/>

7.还是sql语句

{/dede:arclist}

mgm娱乐 9

当col>1将使用原来的table 多列方式显示

都修改好到这里就已经结束,你可以试下在list标签中加上这个试一下是不是好用。

row='10' 返回文档列表总数

{dede:list noflag='c'}{/dede:list}

typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;

getall='1'在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类

titlelen='30' 标题长度等同于titlelength

infolen='160' 表示内容简介长度等同于infolength(只控制infos,并不控制description的内容)

imgwidth='120' 缩略图宽度

imgheight='90' 缩略图高度

listtype='all' 栏目类型image 含有缩略图commend推荐

orderby='sortrank' 文档排序方式

� orderby='hot'或orderby='click' 表示按点击数排列

� orderby='sortrank'或orderby='pubdate' 按出版时间排列

� orderby='near'

� orderby=='lastpost'按最后评论时间

� orderby=='scores'按得分排序

� orderby='id' 按文章ID排序

� orderby='rand'随机获得指定条件的文档列表

keyword=''含有指定关键字的文档列表,多个关键字用","分

innertext='' 单条记录样式

aid='' 指定文档ID

idlist=''提取特定文档(文档ID)

channelid 频道ID

limit='起始ID,记录数' (起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记

本文由mgm娱乐发布,转载请注明来源

关键词: