找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1879|回复: 0

[分享] dedecms织梦图集每张图片单独调用并自定义样式的办法

[复制链接]
发表于 2018-8-2 09:24:43 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
在织梦的开发中,我们有时候需要对图集中的每张图片单独输出并自定义样式,如果用织梦的dede:productimagelist调用,还是有一定难度的。

下面我们可以对这个类文件进行修改解决这个问题:

方法1:找到:\include\taglib\productimagelist.lib.php  这个文件,在文件中找到如下内容:

foreach($images as $row)
{
中间省略...
}


修改为:
  1. 01
  2. $GLOBALS['autoindex'] = 1;
  3. 02
  4. foreach($images as $row)
  5. 03
  6. {
  7. 04
  8.     $row['autoindex'] =  $GLOBALS['autoindex'];
  9. 05
  10.     foreach($ctp->CTags as $tagid=>$ctag)
  11. 06
  12.     {
  13. 07
  14.         if($ctag->GetName()=='array')
  15. 08
  16.         {
  17. 09
  18.             $ctp->Assign($tagid,$row);
  19. 10
  20.         }
  21. 11
  22.         else
  23. 12
  24.         {
  25. 13
  26.             if(isset($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); }
  27. 14
  28.         }
  29. 15
  30.     }
  31. 16
  32.     $revalue .= $ctp->GetResult();
  33. 17
  34.     $GLOBALS['autoindex']++;
  35. 18
  36. }
复制代码


内容页图集标签调用方法为:
  1. {dede:productimagelist}
  2.     [field:array runphp=yes]
  3.         if(@me['autoindex'] == 1)
  4.         {
  5. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@me =&#160;"<strong>{@me['autoindex']} - <img src='{@me['imgsrc']}'></strong>\n";
  6. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
  7. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;elseif(@me['autoindex'] == 2)
  8. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
  9. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@me =&#160;"<p>{@me['autoindex']} - <img src='{@me['imgsrc']}'></p>\n";
  10. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
  11. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;elseif(@me['autoindex'] == 3)
  12. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
  13. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@me =&#160;"<span>{@me['autoindex']} - <img src='{@me['imgsrc']}'></span>\n";
  14. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
  15. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
  16. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
  17. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@me =&#160;"<div>{@me['autoindex']} - <img src='{@me['imgsrc']}'></div>\n";
  18. &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
  19. &#160;&#160;&#160;&#160;[/field:array]
  20. {/dede:productimagelist}
复制代码



用array runphp的方式,让第一张图片两边加<strong>,第二章加<p>,第三张加<span>,第四张加<div>

方法2:找到:\include\taglib\productimagelist.lib.php  这个文件,在文件中找到如下内容:

  1. $ctp->LoadSource($innerText);
复制代码


在此代码下边添加如下代码:

  1. $GLOBALS['autoindex'] = 0;
复制代码


找到:

  1. $revalue .= $ctp->GetResult();
复制代码


在下面加入如下代码:

  1. $GLOBALS['autoindex']++;
复制代码



此方法的原理其实和方法1的是一样的。首先让productimagelist.php 这个文件支持autoindex,然后再通过判断autoindex的值分别调用。比如autoindex为0的时候就调用第一张图,依次类推,写法不多说了,有喜欢研究的朋友可以分别验证这两种方法。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-29 05:35 , Processed in 0.047439 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表