设为首页收藏本站

HTML66论坛_dede织梦教程_css技巧_js特效_cms教程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3175|回复: 61

[程序修改] dede织梦自定义字段图片调用怎么才能只调用图片

[复制链接]

83

主题

88

帖子

277

积分

超级版主

Rank: 8Rank: 8

积分
277
发表于 2016-7-15 17:51:32 | 显示全部楼层 |阅读模式
dede织梦自定义字段图片调用怎么才能只调用图片地址?
遇到几个朋友在问:为什么在首页用自定义列表调用出来的图片字段不是正确的图片地址,而是类似于: 引用

{dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}

这样的格式!
非常明显,这样是不能正确显示的,这是织梦自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数,其实现方式为:

一、实现方法
1)创建自定义函数
打开 /include/extend.func.php 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最后另起一行加入以下函数代码:
  1. /****************   
  2.   function GetOneImgUrl   
  3.   @@ 功能:读取自定义字段图片地址   
  4.   @@ 作者:SE7EN℡(QQ:150362433)   
  5.   @@ 网址:唐博科技(www.html66.com)   
  6.   @@ 时间:2015-09-21 12:48   
  7. *****************/   
  8.    
  9. function GetOneImgUrl($img,$ftype=1){   
  10.     if($img <> ''){   
  11.         $dtp = new DedeTagParse();   
  12.         $dtp->LoadSource($img);   
  13.         if(is_array($dtp->CTags)){   
  14.             foreach($dtp->CTags as $ctag){   
  15.                 if($ctag->GetName()=='img'){   
  16.                     $width = $ctag->GetAtt('width');   
  17.                     $height = $ctag->GetAtt('height');   
  18.                     $imgurl = trim($ctag->GetInnerText());   
  19.                     $img = '';   
  20.                     if($imgurl != ''){   
  21.                         if($ftype==1){   
  22.                             $img .= $imgurl;   
  23.                         }   
  24.                         else{   
  25.                             $img .= '<img src="'.$imgurl.'" width="'.$width.'" height="'.$height.'" />';   
  26.                         }   
  27.                     }   
  28.                                 
  29.                 }   
  30.             }   
  31.         }   
  32.         $dtp->Clear();   
  33.         return $img;        
  34.     }   
  35. }  
复制代码

保存后关闭即可。

2)函数调用方法
问:我们创建好函数以后,那么这个函数要如何来调用呢?

答:本函数的调用方法为:

[field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]

比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:

引用

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

注意:如果列表页想要调用图片仅地址:
需要将自定义字段“图片”类型改为“图片(仅网址)”类型。[field:ewmtp function='GetOneImgUrl(@me,1)'/]
内容页要想调用自定义图片仅地址:调用方法为:(字段名假如是ewmtp)
{dede:arclist row='1' channelid='21' addfields='ewmtp'}[field:ewmtp function='GetOneImgUrl(@me,1)'/]{/dede:arclist}



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|HTML66学习网 ( 豫ICP备14015560号-3 )  

GMT+8, 2020-1-27 11:22 , Processed in 0.173544 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表