魔扣论坛

魔扣源码论坛业务
查看: 1020|回复: 7

[经验交流] DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法

[复制链接]
  • TA的每日心情
    慵懒
    22 小时前
  • 签到天数: 2957 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745759
    贡献
    157915
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-6-7 16:24:40 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    遇到几个朋友在问:为什么在首页用自定义列表调用出来的图片字段不是正确的图片地址,而是类似于:
    引用
    {dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}

    这样的格式!
    非常明显,这样是不能正确显示的,这是织梦自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数,其实现方式为:
    一、实现方法
    1)创建自定义函数
    打开 /include/extend.func.php 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个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.             }   
    24.             $dtp->Clear();   
    25.             return $img;      
    26.         }   
    27.     }  
    复制代码
    保存后关闭即可。
    2)函数调用方法
    问:我们创建好函数以后,那么这个函数要如何来调用呢?
    答:本函数的调用方法为:
    [field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
    比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:
    引用
    [field:imgurl function='GetOneImgUrl(@me,0)'/] <!--调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />标签)-->
    [field:imgurl function='GetOneImgUrl(@me,1)'/] <!--只调用图片地址,一般可用于背景图嵌套-->

    二、示例演示
    1)模型字段添加
    进入网站后台,点击[核心]——[内容模型管理],点击“普通文章”的“更改”按钮,进入编辑界面,切换到“字段管理”选项,点击“添加新字段”,如图:
    2)前台调用
    原本我们前台调用这个字段的方法,就是通过arclist标签的 channelid 与 addfields 两个参数来配合调用(点击查看arclist的标签详解),这里不再重复的一一熬述。但大体的自定义字段的方法是这样的:
    引用
    {dede:arclist row='2' channeld='1' addfields='自定义字段1,自定义字段2'}
    底层模板 insertext
    {/dede:arclist}

    运用到我们刚才的这个函数,调用方法为:
    {dede:arclist row='5' orderby='id' channelid='1' addfields='imgurl'}   
    <li>[field:title/][field:imgurl function='GetOneImgUrl(@me,0)'/]</li>  
    {/dede:arclist}  

    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    3

    主题

    254

    回帖

    511

    积分

    高级魔扣

    Rank: 4

    魔扣币
    254
    贡献
    254
    威望
    0
    发表于 2017-6-7 18:34:05 | 显示全部楼层
    楼下的接上

    该用户从未签到

    1

    主题

    238

    回帖

    477

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    238
    贡献
    238
    威望
    0
    发表于 2017-10-12 16:17:59 | 显示全部楼层
    很多我们以为一辈子都不会忘记的事情,就在我们念念不忘的日子里,魔扣源码论坛被我们遗忘了。

    该用户从未签到

    3

    主题

    248

    回帖

    499

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    248
    贡献
    248
    威望
    0
    发表于 2017-11-21 14:01:32 来自手机 | 显示全部楼层
    我也是坐沙发的

    该用户从未签到

    1

    主题

    248

    回帖

    497

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    248
    贡献
    248
    威望
    0
    发表于 2017-12-16 18:31:13 | 显示全部楼层
    LZ敢整点更有创意的不?兄弟们等着围观捏~

    该用户从未签到

    1

    主题

    223

    回帖

    448

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    224
    贡献
    224
    威望
    0
    发表于 2018-7-5 21:33:29 | 显示全部楼层
    有一种相遇叫缘份,有一种来往叫浪漫;有一种感觉叫难忘,有一种感受叫快乐;有一种关心叫温馨,有一种思念叫关爰;有一种默契叫知心;魔扣源码论坛祝福朋友幸福快乐!

    该用户从未签到

    2

    主题

    250

    回帖

    503

    积分

    高级魔扣

    Rank: 4

    魔扣币
    251
    贡献
    251
    威望
    0
    发表于 2018-8-9 13:53:06 | 显示全部楼层
    我也来顶一下..

    该用户从未签到

    0

    主题

    247

    回帖

    496

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2019-1-22 16:49:41 | 显示全部楼层
    在这网络博客世界里,因为有您,我的生活才能更加丰富多彩。不压抑,还开心,珍贵的友情总是一点一滴凝聚起来的,它包含了许多欢笑、温馨、浪漫,许多记忆,魔扣源码论坛真诚地谢谢您我的好友愿您每天忙碌的工作中有个好心情天热注意休息保重。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表