欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dedecms实现图集内容自定义分页 {dede:field name='imgurls'}

shiping1 的头像

dedecms实现图集内容自定义分页

分类: php开源技术 5469人阅读 评论(3) 收藏 举报

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++;
            }
      }
    }

其中的关键部分为($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添加全局变量,我的一般方法是直接修改这个文件,但是后台管理的系统设置里面,也可以生成这个文件,如果你修改了文件,然后再到后台生成,生成的文件就会覆盖你修改的内容,因此我建议,如果你一直直接修改这个文件,就不要到后台生成,如果你对代码不熟悉,又需要修改这个文件,建议你到后台自定义添加全局变量。

来自 http://blog.csdn.net/expendable/article/details/1643152

普通分类: