DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法

前端之家收集整理的这篇文章主要介绍了DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首页自定义列表调用出来的图片字段不是正确的图片地址,而是类似于:

{dede:img text='' width='270' height='129'} /uploads/101017/1-10101H21F54P.gif {/dede:img}

这样的格式!@H_404_4@ 非常明显,这样是不能正确显示的,这是织梦自定义图片字段的处理方式造成的。要解决这个问题,我们必须得创建一个自定义函数,其实现方式为:@H_404_4@ @H_404_4@ 打开 /include/extend.func.PHP 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的?>上一行加入以下函数代码:@H_404_4@

function GetOneImgUrl($img,$ftype=1){ @H_404_4@ if($img <> ''){ @H_404_4@ $dtp = new DedeTagParse(); @H_404_4@ $dtp->LoadSource($img); @H_404_4@ if(is_array($dtp->CTags)){ @H_404_4@ foreach($dtp->CTags as $ctag){ @H_404_4@ if($ctag->GetName()=='img'){ @H_404_4@ $width = $ctag->GetAtt('width'); @H_404_4@ $height = $ctag->GetAtt('height'); @H_404_4@ $imgurl = trim($ctag->GetInnerText()); @H_404_4@ $img = ''; @H_404_4@ if($imgurl != ''){ @H_404_4@ if($ftype==1){ @H_404_4@ $img .= $imgurl; @H_404_4@ } @H_404_4@ else{ @H_404_4@ $img .= ''; @H_404_4@ } @H_404_4@ } @H_404_4@ @H_404_4@ } @H_404_4@ } @H_404_4@ } @H_404_4@ $dtp->Clear(); @H_404_4@ return $img;     @H_404_4@ } @H_404_4@ }

保存后关闭即可,函数调用方法如下所示:@H_404_4@ @H_404_4@ [field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]@H_404_4@ @H_404_4@ 比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:

[field:imgurl function='GetOneImgUrl(@me,0)'/] @H_404_4@ [field:imgurl function='GetOneImgUrl(@me,1)'/]

二、示例演示@H_404_4@ 1)模型字段添加@H_404_4@ @H_404_4@ 进入网站后台,点击[核心]——[内容模型管理],点击“普通文章”的“更改”按钮,进入编辑界面,切换到“字段管理”选项,点击“添加新字段”,如图:
DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法
创建好字段以后,我们在增加或编辑文档时候,那么就会有这个字段了,如图:

DedeCMS自定义字段图片调用的问题{dede:img ...}解决方法

上传好你要显示图片以后,保存即可。@H_404_4@ 2)前台调用@H_404_4@ 原本我们前台调用这个字段的方法,就是通过arclist标签的 channelid 与 addfields 两个参数来配合调用(点击查看arclist的标签详解),这里不再重复的一一熬述。但大体的自定义字段方法是这样的:

{dede:arclist row='5' orderby='id' channelid='1' addfields='imgurl'}  @H_404_4@

  • [field:title/][field:imgurl function='GetOneImgUrl(@me,0)'/]
  •  @H_404_4@ {/dede:arclist}  

    猜你在找的Dedecms相关文章