用法:
{dede:list pagesize='12'} <li> <a href="[field:id function='getImgsFirstImg(@me)' /]"> <img src="[field:litpic /]" alt="[field:title /]"/> </a> </li> {/dede:list}
操作:
在 /include/extend.func.php 中添加一个函数:
/** * 获取图片集中的第一张图片用于JS特效(缩略图太小) * upall,/ * 20:19 2012年7月3日星期二 */ function getImgsFirstImg($aid){ global $dsql; $aid = (int)$aid; $defaultImg = "/images/defaultpic.gif"; // 取图片模型的图片集字段 $query = " SELECT imgurls FROM site_addonimages WHERE aid = $aid LIMIT 1 "; $rs = $dsql->GetOne($query); $imgurls = $rs['imgurls']; if (empty($imgurls)) return $defaultImg; // 取图片集第一张图片 $reg="/ddimg=\'(.*?)([^\']+)/isu"; $z=preg_match_all($reg,$imgurls,$imgArray); $imgUri = $imgArray[2][0]; // 取到的图片 if (empty($imgUri)) $imgUri = $defaultImg; return $imgUri; }
若需要从文章正文中获取第一张图片,可以使用这个代码:
/** * 获取正文中的第一张图片用于JS特效(缩略图太小) * upall,/ * 9:44 2012年7月4日 */ function getBodyFirstImg($aid){ global $dsql; $aid = (int)$aid; $defaultImg = "/images/defaultpic.gif"; // 取图片模型的图片集字段 $query = " SELECT body FROM site_addonarticle WHERE aid = $aid LIMIT 1 "; $rs = $dsql->GetOne($query); $body = $rs['imgurls']; if (empty($body)) return $defaultImg; // 取body中的第一张图片 $reg='/(src\=\")(.*?)(\".*?\>)/'; $z=preg_match_all($reg,$body,$imgArray); $imgUri = $imgArray[2][0]; // 取到的图片 if (empty($imgUri)) $imgUri = $defaultImg; return $imgUri; }
<完>