北京东泽互动信息技术有限公司

真正完美解决调用dede织梦自定义字段图片地址内

文章出处:未知 │ 网站编辑:960web │ 发表时间:2017-06-15 02:33 我要分享

    在默认的自定义图片字段模型调用时,一般调用出来是: {dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}这样的形式。 非常明显,这样是不能正确显示的,这是自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数。这里我从新建模型到自定义字段的使用来举例说明下怎么直接调用图片地址。
真正完美解决调用dede织梦自定义字段图片地址内
网上很多方法,不是太神奇就是只对列表页和首页有效,对织梦内容页不起作用或者不适用,那么怎么办?别着急,其实方法很坚定,网上说的都没说到点子上。随州张飞告诉你,方法是:

创建自定义函数
打开 /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; 

}
下面就可以开始调用图片地址了。
列表页和首页调用方法:
[field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
比如:我们的自定义图片字段名为 datu 和 xiaotu,
只举例调用datu字段的方法,那么调用方式有以下两种:
[field:datu function='GetOneImgUrl(@me,0)'/] 调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />)
[field:datu function='GetOneImgUrl(@me,1)'/] 只调用图片地址,一般可用于背景图嵌套
文章阅读页调用方法:
{dede:field name='datu' function='GetOneImgUrl(@me,1)'/} 
更多