织梦DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
来源:本站原创|时间:2021-08-05|栏目: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自定义图片字段中路径无斜杠的问题了。
上一篇:织梦超简单“加载更多”“无限下拉”插件,支持动静态,支持图片延迟加载
栏 目:dedecms
本文标题:织梦DedeCMS自定义图片字段调用方法与无斜杠“/”的解决方法
本文地址:https://www.xiuzhanwang.com/a1/dedecms/16286.html
您可能感兴趣的文章
- 08-05Dedecms文件目录结构解说(能知道织梦每个文件有什么用)
- 08-05Dedecms5.7版ckeditor网页编辑器添加中文字体
- 08-05织梦DedeCMS获取当前栏目文章数量
- 08-05织梦模板如何添加和调用自定义字段的方法
- 08-05DedeCMS后台模块列表显示空白的解决办法
- 08-05DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法
- 08-05织梦DedeCMS调用显示discuz里面主题的方法
- 08-05限制织梦会员每天投稿数量方法
- 08-05常用的织梦dedecms安全设置集合整理
- 08-05织梦教程:后台编辑器添加中文字体方法