Dede织梦调用文章中多张图片

  62 次阅读

CONTENT

dedecms 首页列表页调用文章中多张图片,由于图集模型有标签可以使用而文章模型没有,所以我们需要对文章模型做一个二次开发,下面一起来看教程,首先找到include/extend.func.php在最后一行添加

  1.     function Getpic($body)
  2.     {
  3.     $getpic = '';
  4.     preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|png))/isU",$body,$img_array);
  5.  
  6.     $img_array = array_unique($img_array[2]);
  7.     $img_num=3;//此处数字就是图片数量,你自由设置
  8.     $img_array=array_slice($img_array,0,$img_num);
  9.     if(count($img_array)>0)
  10.     {
  11.     foreach($img_array as $key=>$value)
  12.     {
  13.     $picname = preg_replace("/[\"|'| ]{1,}/", '', $value);
  14.     $getpic .="<a href='".$picname."' target='_blank'><img src='".$picname."' border=0 /></a>";
  15.  
  16.     }
  17.     }
  18.     else
  19.     {
  20.     $getpic="<p>没有图片</p>";
  21.     }
  22.     return $getpic;
  23.     }

需要注意的是这里调用的是文章模型中BODY字段,所以需要在文章模型中列表附加字段选项增加body,前台列表调用标签里需要加上addfields='body',首页调用标签需要加上channelid='1'来调用。
搜索列表页页多图展示(此方法只适合文章模型)找到include/arc.searchview.class.php第694行开始的这一部分。
//搜索

$query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
FROM `{$this->AddTable}` arc LEFT JOIN `dede_arctype` act ON arc.typeid=act.id
WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";

修改为:

//搜索
$query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
FROM `{$this->AddTable}` arc
LEFT JOIN `dede_arctype` act ON arc.typeid=act.id
LEFT JOIN `dede_addonarticle` adt1 ON arc.id=adt1.aid
WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";

调用标签:

[field:body function='Getpic(@me)'/]

Comments | NOTHING

暂无评论...