ѡ̳

标题: 新增数组分页 可以更灵活使用分页pagesarr [打印本页]

作者: admin    时间: 2018-2-1 21:34
标题: 新增数组分页 可以更灵活使用分页pagesarr
phpcms/libs/classes/template_cache.class.php   和/phpcms/libs/functions/global.func.php  新增$pagesarr
$multipage = array
                (
                         'page_first'  => pageurl($urlrule, 1, $array),
                         'page_prev'  =>'',
                         'page_next'  =>'',  
                         'page_last'  =>'',  
                         'page_number' =>array(),  
                         'page'  => $curr_page,
                         'page_count'  => ceil($num/$perpage),
                         'count'  => $num,
                );


原函数

function pagesarr($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {
        if(defined('URLRULE') && $urlrule == '') {
                $urlrule = URLRULE;
                $array = $GLOBALS['URL_ARRAY'];
        } elseif($urlrule == '') {
                $urlrule = url_par('page={$page}');
        }
        
        
        
        $multipage = array
                (
                         'page_first'  => pageurl($urlrule, 1, $array),
                         'page_prev'  =>'',
                         'page_next'  =>'',  
                         'page_last'  =>'',  
                         'page_number' =>array(),  
                         'page'  => $curr_page,
                         'page_count'  => ceil($num/$perpage),
                         'count'  => $num,
                );

        if($num > $perpage) {
               
               
                $page = $setpages+1;
                $offset = ceil($setpages/2-1);
                $pages = ceil($num / $perpage);
                if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);
                $from = $curr_page - $offset;
                $to = $curr_page + $offset;
                $more = 0;
                if($page >= $pages) {
                        $from = 2;
                        $to = $pages-1;
                } else {
                        if($from <= 1) {
                                $to = $page-1;
                                $from = 2;
                        }  elseif($to >= $pages) {
                                $from = $pages-($page-2);
                                $to = $pages-1;
                        }
                        $more = 1;
                }
               
                //L('page_item')
                 //$multipage .= '<a class="a1">'.$num.L('page_item').'</a>';
                // $multipage['page_count'] = $num;
                 
                // $multipage .= '';
                if($curr_page>0) {
                        
               
                        //$multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous').'</a>';
                        //$multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1"><</a>';
                        $multipage['page_prev'] = pageurl($urlrule, $curr_page-1, $array);
                        
                        if($curr_page==1) {
                                //$multipage .= ' <a class="ok">1</a>';
                                $multipage['page_number'][1] = pageurl($urlrule, 1, $array);
                        } elseif($curr_page>6 && $more) {
                                //$multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..';
                                $multipage['page_number'][1] = pageurl($urlrule, 1, $array);
                        } else {
                                //$multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>';
                                $multipage['page_number'][1] = pageurl($urlrule, 1, $array);
                        }
                        
                        
                }
               
                // echo $from."##".$to; exit;
               
               
                for($i = $from; $i <= $to; $i++) {
                        
                        
                        
                        if($i != $curr_page) {
                                //$multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>';
                          
                            $multipage['page_number'][$i] =  pageurl($urlrule, $i, $array);
                                
                        } else {
                                //$multipage .= ' <a class="ok" >'.$i.'</a';
                                
                                $multipage['page_number'][$i] =  pageurl($urlrule, $i, $array);
                        }
                }
                if($curr_page<$pages) {
                        if($curr_page<$pages-5 && $more) {
                                //L('next');
                                
                                //$multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">></a>';
                        } else {
                                //$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">></a>';
                        }
                        
                    $multipage['page_number'][$pages] =  pageurl($urlrule, $pages, $array);
                        $multipage['page_last'] = pageurl($urlrule, $pages, $array);
                        $multipage['page_next'] = pageurl($urlrule, $curr_page+1, $array);
                        
                } elseif($curr_page==$pages) {
                        //$multipage .= ' <a class="ok" >'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">></a>';
                    $multipage['page_number'][$pages] =  pageurl($urlrule, $pages, $array);
                        $multipage['page_last'] = pageurl($urlrule, $pages, $array);
                        $multipage['page_next'] = pageurl($urlrule, $curr_page, $array);
                        
                } else {
                        //$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">></a>';
                   $multipage['page_last'] = pageurl($urlrule, $pages, $array);
                   $multipage['page_next'] = pageurl($urlrule, $pages, $array);
                }
        }
        
        
        
        return $multipage;
}






欢迎光临 ѡ̳ (http://www.sunminxuan.cn/bbs/) Powered by Discuz! X3.4