织梦调用自定义图片字段方法(在网上找了很久绝对能用)

织梦自定义字段如果设置为图片类型,那么数据库写入进去的数据变成下面这种形式的内容:
{dede:img text='' width='270' height='129'} /uploads/117517/1-11751H21F54P.png {/dede:img}
很明显,这样不方便前台调用,这是织梦自定义图片字段的处理方式(/include/customfields.func.php)造成的,要解决这个问题,我们要创建一个自定义函数,实现方式是:
打开 /include/extend.func.php 文件,在?>前面加入以下函数代码


/****************   
  function GetOneImgUrl   
  @@ 功能:读取自定义字段图片地址   
  @@ 时间:2010-10-17 22:48   
*****************/   
   
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,显示类型)"/]  
 
例如:自定义图片字段名为 nextimg ,其调用方式有如下两种:
第一:只调用图片路径
 
[field:nextimg function='GetOneImgUrl(@me,1)'/]  
 
第二:调用整个img标签
 
[field:nextimg function='GetOneImgUrl(@me,0)'/]  

一定要注意的是:有的版本可能include/extend.func.php文件最后没有

?>结尾,一定要加上不然会报错的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值