本文实例讲述了dedeCMS使用arclist标签调用自定义字段的方法。分享给大家供大家参考。具体分析如下:
其实方法非常的简单我们只要使用addfields就可以实现增加自定自段了,不过有一点需要注意的是如果你在在后面加的我们需要把底层给选中,否则是可能调用不到字段的.
语法代码如下:
{dede:arclist addfields='附加字段1,附加字段2,附加字段3' row='8' channelid='自定义模型id号'}
[field:textlink /] [field:附加字段1/] [field:附加字段2/]< [field:附加字段3/]<
{/dede:arclist}
实例代码如下:
{dede:arclist flag='c' typeid='23' channelid='1' addfields='tpic2' limit='0,8'}
<div>
<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}
这明显不是我们想要的,这个时候我们弄一个自定函数,代码如下:</p> <p>function GetOneImgUrl($img,$ftype=1){
if($img <> ''){ //var articleUrl = http://www.jb51.net
$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)'/]这样即可.
希望本文所述对大家的dedecms建站有所帮助。