给织梦文章模型添加图片字段及调用方法

今天在帮一客户做企业站的时候发现织梦的文章模型中只有一个缩略图,而客户的文章列表是需要获取两张不同的文章缩略图,所以就尝试了一下给织梦的文章模型添加图片字段。

操作步骤:

1、登陆网站后台,找到【模型表单】->【内容模型管理】->【修改】。

给织梦文章模型添加图片字段

2、点击【字段管理】->【添加字段】。

给织梦文章模型添加图片字段

3、填写提示文字、字段名等信息后点击提交保存。(可参考图示)

4、打开/include/extend.func.php文件,添加如下代码:

  1. //解决[field.新字段名/]无法获取图片路径
  2. function GetOneImgUrl($img,$ftype=1){
  3.     if($img <> ''){
  4.         $dtp = new DedeTagParse();
  5.         $dtp->LoadSource($img);
  6.         if(is_array($dtp->CTags)){
  7.             foreach($dtp->CTags as $ctag){
  8.                 if($ctag->GetName()=='img'){
  9.                     $width = $ctag->GetAtt('width');
  10.                     $height = $ctag->GetAtt('height');
  11.                     $imgurl = trim($ctag->GetInnerText());
  12.                     $img = '';
  13.                     if($imgurl != ''){
  14.                         if($ftype==1){
  15.                             $img .= $imgurl;
  16.                         }
  17.                         else{
  18.                             $img .= '<img src="'.$imgurl.'" width="'.$width.'" height="'.$height.'" />';
  19.                         }
  20.                     }
  21.                 }
  22.             }
  23.         }
  24.         $dtp->Clear();
  25.         return $img;
  26.     }
  27. }

5、前台调用标签:

  1. [field:自定义图片字段名 function="GetOneImgUrl(@me,显示类型)"/]
  2. 比如:我们的自定义图片字段名为 imgurl ,那么调用方式有以下两种:
  3. 引用
  4. [field:imgurl function='GetOneImgUrl(@me,0)'/] <!--调用图片的信息,自动调用宽度和高度(已包含Html代码的<img />标签)-->
  5. [field:imgurl function='GetOneImgUrl(@me,1)'/] <!--只调用图片地址,一般可用于背景图嵌套-->

之所以分享这篇文章是因为今天在用[field:新字段名/]的标签调用时获取内容为空,图片不显示。所以这篇文章作为菠菜园收录的笔记之外,也希望能帮到更多做网站的同行。同时列表标签也要更改一下。

  1. {dede:arclist typeid='栏目ID' addfields='新字段名' channelid='1' row='8' orderby='pubdate' }
  2. {/dede:arclist}
  3. //其中channelid='1'是文章模型的ID,如果修改的是其他模型请对应修改

今天分享就到这里,敬请关注菠菜园其他内容。

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!