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 .=
"<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';
变量的值根据需要自定义。
好了,通过上面的修改就可以实现本文开始说的目标。具体道理自己想吧,不解释了。
?