注册 | 登录 |
地方论坛门户及新闻和人才网址大全

织梦dede自定义模型 数据类型图片调用方法

时间:2021-07-21人气:-


(5.7sp1版测试通过)织梦DedeCMS网站内容模型普通文章调用自定义图片字段的方法:

方法一:我们首先需要创建一个自定义函数,

找到:/include/extend.func.php ,在< ?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:arclist  addfields='pro_img1,pro_img2' channelid='1' }<img src="[field:pro_img1 function='GetOneImgUrl(@me,1)'/]" width="100" height="100"  /><a href="[field:pro_img2 function='GetOneImgUrl(@me,1)'/]"><img src="[field:pro_img2function='GetOneImgUrl(@me,1)'/]" width="100" height="100"  /></a>{/dede:arclist}

channelid='1'说明一下是频道前面的id数字

'pro_img1,pro_img2' 这些是图片字段替换成你的就可

方法二:

利用正则表达式来

{dede:arclist  addfields='pro_img1' channelid='1' } <img src="[field:pro_img1 runphp='yes']                      $ndtp = new DedeTagParse();                      $ndtp->LoadSource(@me);                      $ntag = $ndtp->GetTag("img");                     @me = trim($ntag->GetInnerText());            [/field:pro_img1]" width="100" height="100"  />{/dede:arclist}

缺点只能保存一个优点不用去改动源核心文件

channelid和typeid区别

channelid频道调用是在内容模型里管理,频道名称的前面也有一个id,这个ID用channelid调用。

Dedecms属性标签channelid和typeid的区别

这个调用需要频道里面有子栏目才可以的。
而typeid就是纯粹的栏目调用可以调用里面的文章

Dedecms属性标签channelid和typeid的区别

这个就是channelid频道和typeid栏目标签调用的区别。


上篇:织梦调用seotitle

下篇:织梦去除tag标签url中的问号