当前位置:主页 > 织梦教程 >

织梦内容模型新增图片自定义字段调用出现{dede:img text='' width='' height=''}的解决办法

栏目分类:织梦教程   发布日期:2019-04-16   来源:www.zybox.cc   浏览次数:
在织梦dedecms​默认的自定义图片字段模型调用时如果过滤掉 {dede:img text='' width='' height=''} 标签

织梦dedecms默认的自定义图片字段模型调用时,一般调用出来是: {dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}这样的形式。 非常明显,这样是不能正确显示的,这是自定义图片字段的处理方式造成的。

要解决这个问题,我们需要增加一个自定义函数。过滤掉 {dede:img text='' width='' height=''} 标签

具体方式如下:

一、找到include文件夹下extend.func.php,这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。

我们在这个文件的最后一行下加入如下代码

function ZyboxImgUrl($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="ZyboxImgUrl(@me,显示类型)"/]

[field:自定义图片字段名 function='ZyboxImgUrl(@me,0)'/] 调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />)
[field:自定义图片字段名 function='ZyboxImgUrl(@me,1)'/] 只调用图片地址,一般可用于背景图嵌套

实际应用:

{dede:arclist addfields='自定义图片字段名' channelid='内容模型ID' }
<li>
    <a href="[field:arcurl/]" target="_blank">
        <img border="0" src="[field:自定义图片字段名 function='ZyboxImgUrl(@me,1)'/]">
    </a>
</li>
{/dede:arclist}


打赏本站
下一篇:没有了
相关下载
Copyright © 2014 资源盒子 版权所有   黔ICP备14004500号-3   TAG
织梦标签工具下载 ↑↓
织梦标签工具下载