织梦(dedecms)arclist及list列表调用多张图片的方法
我们平常看到的列表页都是默认调用文章的一张缩略图,那么,如何实现让列表可以调用多张文章的图片呢?
最终实现效果:
操作步骤一:include/extend.func.php 增加函数
// 获取图集第一幅图片[新增的功能]
function Getfirstimg($aid){
global $cfg_basedir;
global $dsql;
$imglist = '';
$row = $dsql -> getone("Select imgurls From`dede_addonimages` where aid='$aid'"); //
$imgurls = $row['imgurls'];
preg_match_all("/{dede:img (.*)}(.*){\/dede:img/isU", $imgurls, $wordcount);
$count = count($wordcount[2]);
if ($num > $count || $num == 0){
$num = $count;
}
for($i = 0;$i < $num;$i++){
$imglist .= "" . trim($wordcount[2][$i]) . "";
}
$firstimg = substr($imglist,0,stripos($imglist,'.jpg'));
if($firstimg !=='')return $firstimg . '.jpg';
else{
$firstimg = substr($imglist,0,stripos($imglist,'.png'));
return $firstimg . '.png';
}
}
function getBodypics($string, $num)
{
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/",$string,$matches);
$imgsrc_arr = array_unique($matches[3]);
$count = count($imgsrc_arr);
$i = 0;
foreach($imgsrc_arr as $imgsrc)
{
if($i == $num) break;
$result .= '<p><img src="'.$imgsrc.'" class="thumb thumbimgsrc"/></p>';
$i++;
}
return $result;
}
操作步骤二:到网站后台-内容模型管理,修改普通文章模型附加列表字段增加body
操作步骤三:标签调用方法:
{dede:list pagesize="10" addfields="body"}
[field:body function=getBodypics(@me,8)/]
{/dede:list}
注释:8 为图片集数量