Dede织梦列表循环调用图集进阶版

  102 次阅读

CONTENT

我们在开发Dede织梦模板时,碰到栏目调用图集所有图片问题,织梦本身解决不了这个问题,只能栏目list标签完成调用文章里的缩略图,无法完成调用图集里的所有图片,需要进行小小的修改文件,才可以完成织梦系统的栏目调用图集里的所有图片列表。

解决办法:

打开 include/helpers/extend.func.php 文件,在最后面添加如下函数:

  1. 	function Getimgurlscp($aid,$num=4)    
  2.     {
  3.         global $dsql;
  4.         $imgurls = $result = '';
  5.         $imgrow = $dsql->GetOne( "Select imgurls From `dede_addonimages` where aid='$aid' ");
  6.         $imgurls = $imgrow['imgurls'];
  7.         if($imgurls != '')
  8.         {
  9.             $dtp = new DedeTagParse();
  10.             $dtp->LoadSource($imgurls);
  11.             $images = array();
  12.             if(is_array($dtp->CTags))
  13.             {
  14.                 foreach($dtp->CTags as $ctag)
  15.                 {
  16.                     if($ctag->GetName() == 'img')
  17.                     {
  18.                         $row = array();
  19.                         $row['width'] = $ctag->GetAtt('width');
  20.                         $row['height'] = $ctag->GetAtt('height');
  21.                         $row['imgsrc'] = trim($ctag->GetInnerText());
  22.                         $row['text'] = $ctag->GetAtt('text');
  23.                         $images[] = $row;
  24.                     }
  25.                 }
  26.             }
  27.             $dtp->Clear();
  28.             $i = 0;
  29.             foreach($images as $row)
  30.             {
  31.                 if($i == $num) break;
  32. //判断是否是第二张图片开始()
  33.                 if($i == 1)
  34.                 {$row1 = hover_image;}
  35. 				else
  36.                 {$row1 = active_image;}
  37. //判断是否是第二张图片开始
  38.                 if($row['imgsrc'] != '')
  39.                 {
  40.                     $result .= "<img itemprop='image' class='{$row1}' src='{$row['imgsrc']}' alt='{$row['text']}' />";
  41.                 }
  42.                 $i++;
  43.             }
  44.             return $result;
  45.         }  
  46.     }

列表调用:

[field:id function="Getimgs(@me,220,80,90)" /]

说明: 第一个参数 当前ID 第二个第三个, 图片尺寸。 第四个图片张数。
如果有多个图集,那么加上图集的类目id,如下

[field:id typeid='6' function="Getimg(@me,80,90,8)" /]

也可以这样用

  1. {dede:arclist row='3'} // row=3 调用三个图集
  2. [field:id function="Getimgs(@me,136,62,4)" /] //每个图集调用前4张
  3. {/dede:arclist}

内容调用:

{dede:field.id function="Getimg(@me,80,90,8)" /}

如果有多个图集,那么加上图集的类目id,如下

{dede:field.id typeid='6' function="Getimg(@me,80,90,8)" /}

Comments | NOTHING

暂无评论...