POST TIME:2017-11-13 01:09
新做一個以圖片為主的網(wǎng)站,采用的DEDECMS圖集,列表頁要求直接調(diào)內(nèi)容面的大圖,解決方法如下:(主要是采用php的正則匹配函數(shù)preg_match_all函數(shù)來鞏固復習下該函數(shù):preg_match_all("正則表達式",匹配的內(nèi)容,保存在數(shù)組中);保存在數(shù)組中的數(shù)據(jù)是 按照這樣的格式進行保存的數(shù)組[0] 是 符合條件的 一條 語句;數(shù)組[1][2][3]...等等內(nèi)容分別是正則表達式 第1、2、3個匹配符 所匹配的 數(shù)據(jù)preg_match_all 匹配出來的 該數(shù)組是三維數(shù)組也就是說數(shù)組[1]仍舊是一個數(shù)組)
1、在include/common.func.php增加一函數(shù)
////循環(huán)輸出多張圖片
function Getimgs($aid, $imgwith = 300, $imgheight = 270, $num = 0, $style = ''){
global $dsql;
$imgurls = '';
$row = $dsql -> getone("Select imgurls From`dede_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><ahref=#" . $i . "><imgsrc=". 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}之間調(diào)用[field:id function="Getimgs(@me,80,80,9)" /],例如:
{dede:list pagesize='12'}
[field:id function="Getimgs(@me,80,80,9)" /]
{/dede:list}
如在其它地方調(diào)用,可用:{dede:field.id function="Getimgs(@me,400,400,10)" /}
DedeCMS列表頁調(diào)用圖集內(nèi)容多張圖片的方法就是以上方法,趕快試試吧!
