找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1050|回复: 0

[分享] 完美解决dede内容页列表页调用自定义图片地址

[复制链接]
发表于 2018-7-19 20:34:26 | 显示全部楼层 |阅读模式 来自 河南省新乡市
dede调用自定义图片的时候在内容页或列表页输出的格式如下:
  1. <li>
  2. <a href='/uploads/140420/1-140420164Z2914.jpg' target='_blank'>
  3. <img src='/uploads/140420/1-140420164Z2914.jpg' width='253' border='0'/>
  4. </a>
  5. <br />
  6. <a href='/uploads/140420/1-140420164Z2914.jpg' target='_blank'></a>
  7. </li>
复制代码

        这很难满足我们的实际需要,比如做一个幻灯片的时候会调用图集的图片,而不用默认的dedecms的图集模版,所以自己动手吧,网上查阅了很多这方面的资料,最后总结如下:
       在设置自定义字段为图片的时候一定要选“图片(仅网址)”,这样输出的格式就是
  1. {dede:imgtext='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}
复制代码

       如果自定义字段名为:name,内容页前台这样调用:
  1. <img src="{dede:field.name}"/>
复制代码

       输出的是
  1. <img src="{dede:img text=''width='270' height='129'}/uploads/101017/1-10101H21F54P.gif{/dede:img}"/>
复制代码

      其实是输出的时候没有相关的php函数,找到/include/extend.func. php
     在最下面复制以下代码(?>前面)
  1. function GetOneImgUrl($img,$ftype=1){  
  2.     if($img <> ''){  
  3.         $dtp = new DedeTagParse();  
  4.         $dtp->LoadSource($img);  
  5.         if(is_array($dtp->CTags)){  
  6.             foreach($dtp->CTags as $ctag){
  7.                 if($ctag->GetName()=='img'){  
  8.                     $width = $ctag->GetAtt('width');  
  9.                     $height = $ctag->GetAtt('height');  
  10.                     $imgurl = trim($ctag->GetInnerText());  
  11.                     $img = '';  
  12.                     if($imgurl != ''){  
  13.                         if($ftype==1){  
  14.                             $img .= $imgurl;  
  15.                         }  
  16.                         else{  
  17.                             $img .= '<img src="'.$imgurl.'" width="'.$width.'" height="'.$height.'" />';  
  18.                         }  
  19.                     }  
  20.                 }  
  21.             }  
  22.         }  
  23.         $dtp->Clear();  
  24.         return $img;      
  25.     }  
  26. }  
复制代码

保存即可。
      前台内容页格式为:
<img alt="{dede:field.title/}" src="{dede:field.name function='GetOneImgUrl(@me,1)'/}">

       看得懂的站长容易理解,@me,0   代表只输出路径,@me,0    代表连宽、高一起输出
       同样的列表页或首页用相应的标签套进去就行了。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

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

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-4-19 23:05 , Processed in 0.042136 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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