织梦CMS arclist标签调用自定义字段方法

08-22 39阅读 0评论

织梦CMS使用addfields就可以实现增加自定自段了,不过有一点需要注意的是如果你在在后面加的我们需要把底层给选中,否则是可能调用不到字段的.

 

语法代码如下:

 

{dede:arclist addfields='附加字段1,附加字段2,附加字段3' row='8' channelid='自定义模型id号'} 

[field:textlink /]   [field:附加字段1/]   [field:附加字段2/]<  [field:附加字段3/]<<br /> 

{/dede:arclist} 

实例代码如下:

 

{dede:arclist flag='c' typeid='23'  channelid='1'  addfields='tpic2' limit='0,8'} 

<div class="works"> 

<a title="[field:title /]" href="#"> 

<img src="[field:tpic2 function='GetOneImgUrl(@me,1)'/] " width="940" height="440" alt="#"> 

</a> 

</div> 

{/dede:arclist} 

要求:

 

1、指定 channelid 属性

 

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

 

3、必须选择  使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择),这个可以用来做普通的文字类型,如果要是图片的类型的话会出现.代码如下:

 

{dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img} 

这明显不是我们想要的,这个时候我们弄一个自定函数,代码如下:

 

function GetOneImgUrl($img,$ftype=1){  

if($img <> ''){ //var articleUrl = http://www.最模板zuimoban.com 

 $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:tpic2 function='GetOneImgUrl(@me,1)'/]这样即可.


您需要 登录账户 后才能发表评论

发表评论

表情:
评论列表 (暂无评论,39人围观)

还没有评论,来说两句吧...

取消
支付宝二维码
支付宝二维码
微信二维码