dedecms自定义字段标签问题

dedecms自定义字段标签问题,第1张

参考dedecms的帮助文档中的arclist标签

标签名称:arclist

标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。

功能说明:获取指定文档列表

适用范围:全局使用

基本语法:

{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}

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

{/dede:arclist}

参数说明:

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

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

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

<style type=text/css>

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

</style>

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

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

{/dede:arclist}

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

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

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

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

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

infolen='160' 表示内容简介长度 等同于infolength

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的记录开始,取2条记录)

flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]

noflag = '' 同flag,但这里是表示不包含这些属性

orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序

subday='天数' 表示在多少天以内的文档

用arclist调用于附加表字段的方法:

要获取附加表内容,必须符合两个条件

1、指定 channelid 属性

2、指定要获得的字段 addfields='字段1,字段'

如:

{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}

[field:textlink /] - [field:softtype /]<br />

{/dede:arclist}

底层模板字段:

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"格式)

其中:

textlink = <a href='arcurl'>title</a>

typelink = <a href='typeurl'>typename</a>

imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>

image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>

字段调用方法:[field:varname/]

如:

{dede:arclist infolen='100'}

[field:textlink/]

<br>

[field:infos/]

<br>

{/dede:arclist}

注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。

如: 给当天发布的内容加上 (new) 标志

[field:senddate runphp='yes']

$ntime = time();

$oneday = 3600 24;

if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";

else @me = "";

[/field:senddate]

修改方法如下:

1、打开/include/taglib/arclistlibphp,这个文件;

2、找到第540行开始,代码如下:

if($pagesize > 0)

                {

                    if($GLOBALS['autoindex'] <= $pagesize)

                    {

                        $liststr = $dtp2->GetResult();

                        $artlist = $liststr"\r\n";

                    } else {

                        $artlist = "";

                        $orderWeight[] = array(

                            'weight'  => $row['weight'],

                            'arclist' => ''

                        );

                    }

                } else {

                    $liststr = $dtp2->GetResult();

                    $artlist = $liststr"\r\n";

3、把其中的\r\n去掉,你再生成就可以了!

之前选择的自定义图集

一、添加一个获取地址的方法

打开 /include/extendfunc 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的>上一行加入以下函数代码:(如果结尾没有>那就直接在最下面添加)

function GetOneImgUrl($img,$ftype=1){ if($img <> ''){ $dtp = new DedeTagParse(); $dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as $ctag){ if($ctag->GetName()=='img'){ $width = $ctag->GetAtt('width'); $height = $ctag->GetAtt('height'); $imgurl = trim($ctag->GetInnerText()); $img = ''; if($imgurl != ''){ if($ftype==1){ $img = $imgurl; } else{ $img = '<img src="'$imgurl'" width="'$width'" height="'$height'" />'; } } } } } $dtp->Clear(); return $img; } }

可以直接用下面的方法调用

[field:自定义字段名 function="GetOneImgUrl(@me,显示类型)"/]

最终使用方法。

{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}

<li><a href="[field:arcurl/]" target="_blank"><img border="0" src="[field:datu function='GetOneImgUrl(@me,1)'/]"></a></li>

{/dede:arclist}

最终调用到这个地址。

是的,这个属性就是针对article的

、打开\include\目录中的arclistviewclassphp文件,搜索“排序方式”,然后在

else if($orderby=="lastpost") {

$ordersql = " order by arclastpost $orderWay";

}

elseif($orderby == "weight") {

$ordersql = "order by arcweight asc";

}

else {

$ordersql=" order by arcsortrank $orderWay";

}

这段代码中间添加以上红色代码。

再用article的方式就可以按照指定的排序了

调用完整标题可以使用标签[field:fulltitle/],控制好你的a标签的宽度,然后在a标签的css里面加上

white-space: nowrap;

text-overflow: ellipsis;

-o-text-overflow: ellipsis;

-moz-binding:url('ellipsisxml#ellipsis');

overflow: hidden;

加上这几个属性后,自动在你a标签的宽度内把后面那变成省略号()!

一、时间样式(2014年12月22日 12时10分01秒)

{dede:arclist}

[field:pubdate function="MyDate('Y年m月d日 H时i分s秒',@me)"/]

{/dede:arclist}

MyDate里面的参数:

Y全年,y年的末两位,H24小时制,h12小时制

二:扩展:不同格式的时间标签调用方式:

{dede:arclist row='2'}

<p>[field:pubdate function="MyDate('Y年m月d日 H时i分s秒',@me)"/]</p>

{/dede:arclist}

{dede:arclist row='2'}

<p>[field:pubdate function="MyDate('y年m月d日 H时i分s秒',@me)"/]</p>

{/dede:arclist}

{dede:arclist row='2'}

<p>[field:pubdate function="MyDate('Y年m月d日 h时i分s秒',@me)"/]</p>

{/dede:arclist}

{dede:arclist row='2'}

<p>[field:pubdate function="MyDate('Y/m/d H:i:s',@me)"/]</p>

{/dede:arclist}

{dede:arclist row='2'}

<p>[field:pubdate function="MyDate('Y-m-d H:i:s',@me)"/]</p>

{/dede:arclist}

浏览器中展示的样式:

在写文章的时候点红圈圈到的符号就会添加分页符

单独调用文章可以用idlist这个参数

比如{dede:arclist idlist='1000' titlelen='20' infolen='100'}

就是调用文章ID号为1000的这篇文章。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms自定义字段标签问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情