织梦DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法

(window.slotbydup = window.slotbydup || []).push({ id: "u6201117", container: "_loc2j2sosji", async: true });
我们在使用DedeCMS自定义字段的时候,有时候可能会用到图片字段,而Dede固化的图片字段调用出来的样式是下面这样的:
 
 
{dede:img text='' width='270' height='129'}/uploads/101017/1-10101H21F54P.gif {/dede:img}
 
很多时候这样的样式并不是我们需要的,所以我们需要进行修改来保证我们调用的自定义图片就是纯路径,这样就比较方便我们使用了,例如下面这种格式:
 
 
/uploads/101017/1-10101H21F54P.gif
 
要实现这样的调用并不难,我们需要添加一段自定义函数,打开/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;
 
                      }
 
      }
 
然后我们在调用自定义图片字段的时候加上个函数,如下:
 
 
{dede:field.sjto function='GetOneImgUrl(@me,1)'/} // 调用图片的信息,自动调用宽度和高度(已包含Html代码的<img/>),sjto为自定义的图片字段。
{dede:field.sjto function='GetOneImgUrl(@me,1)'/}//只调用图片地址,sjto为自定义的图片字段。
 
这样就能根据我们具体情况来调用自定义图片的纯路径或者图片信息,但是淘站网在自己本地测试的时候发现一个bug,就是在文章中上传自定义字段的图片后,保存到数据库的样式是下面这样的:
 
DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
 
系统自动把图片路径中的斜杠/给去掉了,最终调出来的图片路径中也没有斜杠,这个问题就涉及到dede底层函数了,淘站网查看不少文件,最后在/include/customfields.func.php文件中寻求到解决方法,这个文件中,第300行有一段代码:
 
 
$iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl));
 
看代码就知道,这里把图片的路径给做了一次替换,替换掉的内容就是变量cfg_basehost,这个变量就在后面系统设置里面:
 
DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
 
就是站点根网址了,因为淘站网的移动站点与pc站点共用一个数据库,这里站点根网址就用斜杠/代替,而自定义图片经过那段函数处理就自动把这个斜杠给删除了,最终原因找到,那么解决方法也很简单,有两种:
 
一、在系统——系统基本参数设置里,把站点根网址的斜杠/换成自己的网址,这个方法适用于pc站与m站分离不用同一个数据库的网站,淘站网的网站不适用。
 
二、打开/include/customfields.func.php,找到代码:
 
 
$iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl));
 
DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
 
注视掉或者删掉。
 
这样就能解决DedeCMS自定义图片字段中路径无斜杠的问题了。
 

精彩推荐

本站承接 WordPress / DedeCMS / ThinkPHP 等
系统建站、仿站、开发、定制等业务!

1. 本站所有资源来源于用户上传和网络,仅作为演示数据,如有侵权请邮件联系站长!
2. 本站承接各类网站建设,仿站,多平台小程序搭建制作!
3. 本站联系QQ:897918909
beetheme资源网 » 织梦DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
售后服务范围1、服务器配置及主机购买推荐
2、模板使用范围内问题免费咨询
3、单价超过100元的模板免费一次安装,需提供服务器信息。
付费增值服务1、提供WordPress主题、插件汉化、优化等服务请详询在线客服
2、承接 WordPress、DedeCMS、ThinkPHP 等系统建站、仿站、开发、定制等服务
3、服务器环境配置(一般 ¥50-300)
4、网站中毒处理(需额外付费,500元/次/质保三个月)
售后服务时间周一至周五(法定节假日除外) 9:00-23:00
免责声明本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: admin@vip.beetheme.cn),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我们联系哦!

联系我们

发表评论

提供最优质的资源集合

立即查看 了解详情

扫码了解我们!

没有账号? 忘记密码?