dedecms 获取图集里每个图片的地址,用正则实现

  此刻心情愉快,解决了一个蛋疼的问题,下面开始说问题

  我要做的效果是类似淘宝的那种:上面一张大图,下面4个小图,鼠标划过就切换,客户要求用dedecms做,可对dedecms的开发我没实战经验,只是以前下载下来看过。没办法,公司有困难就是咱的困难,硬着头皮上。经过半天鼓捣,其它页面都做好了,就这个产品展示页的这个效果给难住了,第一想法就是百度查下,可有用的资料几乎没有,没办法,只有从思路上自己寻找突破口,首先找到数据库dede_addonimages,然后就是要知道这个产品的ID,再读取imgurls字段的图片地址(获取图集里每个图片的地址),然后一个一个读取出来

  可能小弟运气好,一会儿就找到了读取imgurls字段的方法,可是dedecms在写入图集的时候用到了自己的模板,所以不得不用PHP正则表达式来提取这些图片,结果......就全部读出来了,废话少说,直接上代码

 

先找到include/common.inc.php文件,把下面代码贴进去(我贴的是我网站上的,具体可根据需要修改): 

function Getimg($aid,$imgwith,$imgheight)
{
    global $dsql;
    $imgurls = '';
    $row =$dsql->getone( "select imgurls from dede_addonimages where aid='$aid' ");
    $imgurls= $row['imgurls'];//获取字段数据
	preg_match_all("/\}.+jpg/",$imgurls,$matches);//取出符合条件的  
    $new_arr=array_unique($matches[0]);//去除数组中重复的值
	$pic_num1=" <dt><DIV class=tu_big><img id=imgInit class=zoom name=imgInit src=\"".substr($new_arr[0],2)."\" /></DIV></dt><dd><ul>";
	foreach($new_arr as $key){
	 $pic_list.="<li><img οnmοuseοver='pic_next(\"".substr($key,2)."\")' src=\"".substr($key,2)."\"' width=".$imgwith." height=".$imgheight." /></li>";
	      } 
		  $pic_end="</ul></dd>";
		  
		  return $pic_num1.$pic_list.$pic_end;//返回结果
}

 

再到模板页面把下面代码贴到要显示的位置:

{dede:field.id function="Getimg(@me,100,50)" /}

 

这样效果就出来了,100跟50就是图片的宽跟高,懂代码的人把方法一看就会明白的哈,不懂的就注意下。

dedecms 获取图集里每个图片的地址,用正则实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值