dedecms中有圖集的功能, 對於圖集的顯示,可定義“單頁”、“分多頁顯示”、“多行多列顯示”,其中分多頁系統默認是每個頁面顯示一張圖片,但是在實際使用中,我們有可能需要一個頁面顯示多張圖片,下面就是實現方法。
第一步:修改include/inc_channel_unit.php文件
找到函數function GetImgLinks()
找到和下面代碼類似的部分,修改代碼爲:
//遍歷圖片信息
$mrow = 0;
$mcol = 0;
$photoid = 0;
$images = array();
$i=0;
foreach($dtp->CTags as $ctag){
if($ctag->GetName()=="img"){
$iw = $ctag->GetAtt('width');
$ih = $ctag->GetAtt('heigth');
$alt = str_replace("'","",$ctag->GetAtt('text'));
$src = trim($ctag->GetInnerText());
if($iw > $maxwidth) $iw = $maxwidth;
$iw = (empty($iw) ? "" : "width='$iw'");
//全部列出式或分頁式圖集
if($pagestyle<3){
if($revalue==""){
$revalue = "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}else{
//分頁顯示
if($pagestyle==2) {
if(($i % $GLOBALS['cfg_img_pagesize'])==0)
$revalue .= "#p#分頁標題#e#<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
else $revalue .= "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}
//單頁顯示
if($pagestyle==1) $revalue .= "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}
$i++;
//多列式圖集
}else if($pagestyle==3){
$images[$photoid][0] = $src;
$images[$photoid][1] = $alt;
$photoid++;
}
}
}
$mrow = 0;
$mcol = 0;
$photoid = 0;
$images = array();
$i=0;
foreach($dtp->CTags as $ctag){
if($ctag->GetName()=="img"){
$iw = $ctag->GetAtt('width');
$ih = $ctag->GetAtt('heigth');
$alt = str_replace("'","",$ctag->GetAtt('text'));
$src = trim($ctag->GetInnerText());
if($iw > $maxwidth) $iw = $maxwidth;
$iw = (empty($iw) ? "" : "width='$iw'");
//全部列出式或分頁式圖集
if($pagestyle<3){
if($revalue==""){
$revalue = "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}else{
//分頁顯示
if($pagestyle==2) {
if(($i % $GLOBALS['cfg_img_pagesize'])==0)
$revalue .= "#p#分頁標題#e#<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
else $revalue .= "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}
//單頁顯示
if($pagestyle==1) $revalue .= "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
}
$i++;
//多列式圖集
}else if($pagestyle==3){
$images[$photoid][0] = $src;
$images[$photoid][1] = $alt;
$photoid++;
}
}
}
其中的關鍵部分爲($i % $GLOBALS['cfg_img_pagesize'])==0,意思是當計數用的變量i和全局變量cfg_img_pagesize相除,餘數爲0的時候,產生分頁。
第二步:定義分頁尺寸的全局變量,當然你也可以直接用數字替換上文的$GLOBALS['cfg_img_pagesize'],達到分頁的目的。
修改include/config_hand.php,添加變量:
//圖片集分頁大小設置
$cfg_img_pagesize = '5';
變量的值根據需要自定義。
好了,通過上面的修改就可以實現本文開始說的目標。具體道理自己想吧,不解釋了。
注:上文我提到過修改/include/config_hand.php添加全局變量,我的一般方法是直接修改這個文件,但是後臺管理的系統設置裏面,也可以生成這個文件,如果你修改了文件,然後再到後臺生成,生成的文件就會覆蓋你修改的內容,因此我建議,如果你一直直接修改這個文件,就不要到後臺生成,如果你對代碼不熟悉,又需要修改這個文件,建議你到後臺自定義添加全局變量。