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

我们在使用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自定义图片字段中路径无斜杠的问题了。



【免责声明】:

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

【关于转载】:

本站尊重互联网版权体系,本站部分图片、文章大部分转载于互联网、所有内容不代表本站观点、不对文章中的任何观点负责、转载的目的只用于给网民提供信息阅读,无任何商业用途,所有内容版权归原作者所有
如本站(文章、内容、图片、视频)任何资料有侵权,先说声抱歉;麻烦您请联系请后台提交工单,我们会立即删除、维护您的权益。非常感谢您的理解。

【附】:

二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

注:本站资源来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系我们处理!

-----------------------------------------------------------------------------------------------------------

【版权声明】:

一、本站致力于为源码爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
-----------------------------------------------------------------------------------------------------------


内容投诉
源码村资源网 » 织梦DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论