dedecms自定义标签调用自定义模型中非空字段文章
前文:织梦dede:arclist标签调用带有自定义模型的文章时没有关于自定义字段非空的判断,这样调出的自定义图片难以控制
本文以调用自定义图片字段为例
首先
/include/taglib/下加上arclistcgal类,
此类衍生于arclist
下载地址:
http://download.csdn.net/download/wxincome/4651090
模板调用方法:
{dede:arclistcgal falg='p,c' orderby=pubdate typeid=583 channelid=3 row=7 addfields='lmypic' noempty='lmypic'}
<img id="case[field:global.autoindex/]" class="cur" οnmοuseοver="set('case',[field:global.autoindex/],7)" src="[field:lmypic function='GetOneImgUrl(@me,1)'/]" /> {/dede:arclistcgal}
方法解释:调用自定义栏目模型id为3的栏目(id=583)的lmypic字段不为空的推图文章
lmypic:自定义图片字段
noempty='lmypic' :对图片进行非空验证
[field:lmypic function='GetOneImgUrl(@me,1)'/] :调用自定义图片的方法。如果字方法掉不出图片连接可能/include/extend.func.php缺少GetOneImgUrl方法
/include/extend.func.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;
}
}