完整版dede自定义模型上传图片显示问题解决办法
1、打开 /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.'
}
}
}
}
}
$dtp->Clear();
return $img;
}
}
2、dede后台-》核心-》内容模型-》添加新缩略图字段
3、函数调用方法:
[field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:
[field:imgurl function='GetOneImgUrl(@me,0)'/]
<!--调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />标签)-->[field:imgurl function='GetOneImgUrl(@me,1)'/]
<!--只调用图片地址,一般可用于背景图嵌套-->
4、前台调用这个字段的方法,就是通过arclist标签的 channelid 与 addfields 两个参数来配合调用,运用刚才的这个函数,调用方法为:
{dede:arclist row='5' orderby='id' channelid='1' addfields='imgurl'} <li>[field:title/][field:imgurl function='GetOneImgUrl(@me,0)'/]</li> {/dede:arclist}