ucbug软件站:安全、绿色、放心的专业下载站!首页|最近更新|专题集合|标签云|站内导航|加入收藏

织梦dedecms调用自定义图片字段路径显示问题解决方法

时间:2019-11-08 08:31:57人气:0

织梦dedecms调用自定义图片字段路径显示问题解决方法

使用正常的调用自定义字段方法 如
{dede:arclist typeid='9' row='15' orderby='pubdate' addfields='youhuaanlilogo' channelid='1'}
[field:youhuaanlilogo/]
  {/dede:arclist} 

显示的内容是

{dede:img text='' width='254' height='138'} /uploads/161027/1-16102G12Z1930.png {/dede:img}

但我们想要的不是这种格式。在网上搜索发现有解决方法,如下

1>创建自定义函数

打开 /include/extend.func.php 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可)
// 获取 'img-图片' 附加字段图片地址
// 针对 '{dede:img text='' width='2534' height='1138'} /uploads/161027/1-16102G12Z1930.png {/dede:img}' 格式
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;       
    }   
}  

 

2>调用我们创建的自定义函数

[field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:
[field:imgurl function='GetOneImgUrl(@me,0)'/] <!--调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />标签)-->
[field:imgurl function='GetOneImgUrl(@me,1)'/] <!--只调用图片地址,一般可用于背景图嵌套-->

标签DedeCMS