新做一个以图片为主的网站,采用的DEDECMS图集,列表页要求直接调内容面的大图,解决方法如下:
(主要是采用php的正则匹配函数preg_match_all函数
来巩固复习下该函数:
preg_match_all("正则表达式",匹配的内容,保存在数组中);
保存在数组中的数据是 按照这样的格式进行保存的
数组[0] 是 符合条件的 一条 语句;
数组[1][2][3]...等等内容分别是正则表达式 第1、2、3个匹配符 所匹配的 数据
preg_match_all 匹配出来的 该数组是三维数组
也就是说
数组[1]仍旧是一个数组)

1、在include/common.func.php增加一函数

////循环输出多张图片
function Getimgs($aid, $imgwith = 300, $imgheight = 270, $num = 0, $style = ''){
global $dsql;
$imgurls = '';
$row = $dsql -> getone("Select imgurls From`#@__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++){
if($style == 'li'){
$imglist .= "<li><a href=#" . $i . "><img src=". trim($wordcount[2][$i]) . " width= '" .$imgwith ."'height='" . $imgheight . "'></li></a>";
}else{
$imglist .= "<img src= " . trim($wordcount[2][$i]) . " width='" . $imgwith . "'height='" . $imgheight . "'>";
}
}
return $imglist; }

2、在列表页{dede:list}之间调用[field:id function="Getimgs(@me,80,80,9)" /],例如:
{dede:list pagesize='12'}   
   [field:id function="Getimgs(@me,80,80,9)" /]   
{/dede:list}
如在其它地方调用,可用:{dede:field.id function="Getimgs(@me,400,400,10)" /}

实战

////循环输出多张图片
function Getimgs($aid, $num = 0){
    global $dsql;
    $imgurls = '';
     $row = $dsql -> getone("Select imgurls From`#@__addonimages` where aid='$aid'"); //
     $imgurls = $row['imgurls'];
     preg_match_all("/{dede:img ddimg='(.*)' text='(.*)' width='(.*)' height='(.*)'}(.*){\/dede:img/isU", $imgurls, $wordcount);
     $count = count($wordcount[2]);
     if ($num > $count || $num == 0){
        $num = $count;
    }
    
    for($i = 0;$i < $num;$i++){
        $factor=$wordcount[4][$i]/$wordcount[3][$i];
        $imgheight=314*$factor;
        $imglist .= "<li><img src= '" . trim($wordcount[5][$i])."' width='314' height='".$imgheight."'></li>";
    }
     return $imglist;
 
}

函数调用语句

{dede:field.id function="Getimgs(@me)" /}

DedeCMS 列表页调用图集内容多张图片的方法的更多相关文章

  1. 【dedecms】DEDE列表页调用文章内容第一张图片(非缩略图)方法

    打开 ../ include/ common.func.php 添加代码 //将缩放图转变为文章第一张图片 function firstimg($str_pic) { $str_sub=substr( ...

  2. dedecms列表页调用子栏目列表,织梦首页调用栏目的子栏目标签代码

    dedecms列表页调用子栏目列表,织梦首页调用栏目的子栏目标签代码. dedecms列表页调用子栏目列表标签: {dede:channelartlist type='sun' }<a href ...

  3. [v9] 列表页 调用 正文内容 或 自定义 字段(moreinfo的调用方法)

    "才能使用的字段) id content readpoint groupids_view paginationtype maxcharperpage template paytype all ...

  4. dedecms列表页调用文章正文内容的方法

    谁说dede:list 标签不能调用body内容,现在就告诉你,直接就可以调用 第一步,打开后台 核心-->频道模型-->内容模型管理-->普通文章,在列表附加字段中添加body. ...

  5. dedecms 列表页调用自定义字段

    在列表附加字段中添加自己定义的字段 如: lwulr调用:{dede:list addfields="lwurl" channelid="1"}[field:l ...

  6. dede 首页或列表页调用文章内容页body内容

    在使用dede过程,有的朋友会调调出文章的列表的内容出来,怎么调呢?当然是用dede的传参的数据查询语句了,方法如下: {dede:arclist flag=h typeid=2 row=1 titl ...

  7. DEDECMS5.5/5.6/5.7列表页调用TAG标签(热门标签)的两种方法

    DEDECMS5.5/5.6/5.7列表页调用TAG标签的两种方法: 一.DedeCMSv5.6及其以前版本: dedecms默认在列表是无法调用tag标签的,经过各位版主们的帮助,现给大家提供出2种 ...

  8. DEDECMS首页和列表页调用单个图片集里的多张图片

    /**DEDECMS首页和列表页调用单个图片集里的多张图片 function Getimg($aid,$imgwith=110,$imgheight=110,$num=0) { global $dsq ...

  9. dedecms列表页如何调用栏目关键词和描述

    问:dedecms列表页如何调用栏目关键词和描述 答:有人问起dedecms列表页如何调用栏目关键词和描述.解答如下: 自己实验了下总结方法如下:(以下方法使用于栏目封面和列表和内容页,其他的地方没有 ...

随机推荐

  1. android adb常用指令

    介绍一个更详细的介绍ADB的: https://github.com/mzlogin/awesome-adb/blob/master/README.md ----------------------- ...

  2. 快速获取Android应用包名和Activity名

    一.获取包名 方法1: 先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root). ①在android设备上点 ...

  3. ACM-ICPC 2018 南京赛区网络预赛

    轻轻松松也能拿到区域赛名额,CCPC真的好难 An Olympian Math Problem 问答 只看题面 54.76% 1000ms 65536K   Alice, a student of g ...

  4. 【转】UGUI(小地图的实现)与游戏关卡选择的简单实现

    http://www.jianshu.com/p/68637029e9df 游戏中小地图的实现(场景用简单Cube组成先搭建如下图场景,真实场景实现方法也是一样) 图1-1小地图效果图 1.创建好场景 ...

  5. 只显示前几条数据的sql语句写法 七种数据库中Select Top的使用方法

    七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT ...

  6. POJ 3683 Priest John's Busiest Day(2-SAT+方案输出)

    Priest John's Busiest Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10010   Accep ...

  7. Javaweb测试

    1.建立web 工程 输入Project name.然后点击finish. 2.右键点击WebContent-New-JSP File,新建jsp文件. 3.然后编写一个jsp登录的程序 <%@ ...

  8. Twitter如何在数千台服务器上快速部署代码?

    答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable arch ...

  9. 移动端px转rem的两种方法

    rem使用方法: rem ,root element,即相对于根元素的大小,浏览器默认字符大小为16px,此时1rem相当于16px.  方法1 设置font-size: body{font-size ...

  10. ios - 工具类

    这几天看项目,把俺旁边小哥哥的一个工具类相中了,希望对大家有所帮助哦~~~~~~~~~ // // PLZ_Tool.h // // Created by penglaizhi on 2017/7/3 ...