有位客户需求是织梦列表list调用文章内容图片多个展示在列表,折腾一番终于搞定
1、在后台核心频道里面对内容模型进行修改,并给加一个字段body,如图:

2、在arclist或者list调用的时候,必须增加字段addfields="body",代码如下:
{dede:arclist addfields="body" channelid='1' }
{/dede:arclist}
{dede:list addfields="body"}
{/dede:list}
3、实际应用中必须配置调用文章内容自定义正则函数,这段代码要放在/include/extend.func.php里面,这里写上:
/**
* 文章内容提取图片(多张)自定义输出
*
* @access public
* @param string $string 文档内容
* @param string $num 输出几张
* @return string
*/
if(!function_exists('getBodypics'))
{
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 .= "<li><img src=\"$imgsrc\"/></li>";
$i++;
}
return $result;
}
}4、织梦arclist列表调用内容图片,代码:
{dede:arclist addfields="body" channelid="1"}
[field:body function="getBodypics(@me, 3)" /] //表示调用3张图片
{/dede:arclist}
5、织梦文章列表list调用多张内容图片,首先要获取内容图片数量,然后根据数量决定显示图片以及调用的样式,这段代码要放在/include/extend.func.php里面,代码:
/**
* 获取图集图片数量
* @access public
* @param string $aid 文章id
* @return string
*/
function BodyImgNum($aid)
{
global $dsql;
$sql = "select aid,body from dede_addonarticle where aid='$aid' ";
$arcRow = $dsql->GetOne($sql);
$body = $arcRow['body'];
$img_array = array();
$patte="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/i";
preg_match_all($patte,$body,$img_array);
$img_array = array_unique($img_array[1]);
$num = count($img_array);
return $num;
}6、在织梦list列表显示一张或者多张图片,代码:
{dede:list addfields="body"}
[field:array runphp="yes"]
$num = BodyImgNum(@me['id']);
$litpic = @me['litpic'];
$title = cn_substr(@me['title'],80);
$click = @me['click'];
$date = MyDate('Y-m-d',@me['pubdate']);
$pics = getBodypics(@me['body'],2);
$pics2 = getBodypics2(@me['body'],3);
$arcurl = getMobileArcUrl(@me['arcurl']);
@me = $num;
if($num == 2){
@me = "<div class='con2 mat15'>
<div class='conn'>
<div class='title2'><a href='{$arcurl}' title='{$title}'>$title</a></div>
<div class='mat10'>
<a href='{$arcurl}'>$pics</a>
</div>
<div class='clearfix'></div>
<div class='bottom2'><i class='fa fa-clock-o' aria-hidden='true'></i> $date <i class='fa fa-thumbs-o-up' aria-hidden='true' style='margin-left:7%;'></i> $click </div>
</div>
</div>";
}
elseif($num == 3){
@me = "<div class='con2 mat15'>
<div class='conn'>
<div class='title2'><a href='{$arcurl}' title='{$title}'>$title</a></div>
<div class='mat10'>
<a href='{$arcurl}'>$pics2</a>
</div>
<div class='clearfix'></div>
<div class='bottom2'><i class='fa fa-clock-o' aria-hidden='true'></i> $date <i class='fa fa-thumbs-o-up' aria-hidden='true' style='margin-left:7%;'></i> $click</div>
</div>
</div>";
}else{
@me = "<div class='con mat15'>
<div class='left'><a href='{$arcurl}'><img src='{$litpic}' alt='{$title}'></a></div>
<div class='right'>
<div class='title'><a href='{$arcurl}' title='{$title}'>$title</a></div>
<div class='mat10 bottom'><i class='fa fa-clock-o' aria-hidden='true'></i> $date <i class='fa fa-thumbs-o-up' aria-hidden='true' style='margin-left:7%;'></i> $click</div>
</div>
</div>";
}
[/field:array]
{/dede:list}织梦二次开发QQ群
本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617)
如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » 织梦列表页list获取文章内容图片或者多张图片方法
















![织梦dedecms联动筛选静态化[伪静态+目录形式],利于SEO](https://www.lol9.cn/uploads/allimg/20170821/1503330192202676-lp.png)




















