phpcms v9 自定义分页 带下拉跳转

时间:2022-10-22 13:30:25
<?php

function new_pages($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 = '';
        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;
                }

                // 如果总页数大于1才显示当前页码信息等。
                if ($pages > 1)
                {   
                        
                        $multipage .= '<p>共 '.$num.' 条 每页显示 '.$perpage.' 条 </p>';
                        $multipage .= '<ul>';
                        $multipage .= '<li>';
                        // 首页。
                        $multipage .= '<a href="'.pageurl($urlrule, 1, $array).'">[首页]</a>';
                        $multipage .= '</li>';
                }
               
                if($curr_page>0) {
                        $multipage .= ' <li><a href="'.pageurl($urlrule, $curr_page-1, $array).'" >[上一页]</a></li>';
                        if($curr_page==1) {
                                $multipage .= ' <li><span>1</span></li>';
                        } elseif($curr_page>6 && $more) {
                                $multipage .= ' <li><a href="'.pageurl($urlrule, 1, $array).'">1</a>..</li>';
                        } else {
                                $multipage .= ' <li><a href="'.pageurl($urlrule, 1, $array).'">1</a></li>';
                        }
                }
                for($i = $from; $i <= $to; $i++) {
                        if($i != $curr_page) {
                                $multipage .= ' <li><a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a></li>';
                        } else {
                                $multipage .= ' <li><span>'.$i.'</span></li>';
                        }
                }
                if($curr_page<$pages) {
                        if($curr_page<$pages-5 && $more) {
                                $multipage .= ' <li>..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" >[下一页]</a></li>';
                        } else {
                                $multipage .= ' <li><a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" >[下一页]</a></li>';
                        }
                } elseif($curr_page==$pages) {
                        $multipage .= ' <li><span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" >下一页</a></li>';
                } else {
                        $multipage .= ' <li><a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" >[下一页]</a></li>';
                }
        }
        $str = http_build_query($_GET);
        $ppp=explode(page,$str);
        // 如果总页数大于1才显示“最后一页”。
        if ($pages > 1)
        {   
               
        
                $multipage .= ' <li><a href="'.pageurl($urlrule, $pages, $array).'">[尾页]</a></li>';
                $multipage .=' <li>'.$curr_page.'/'.$pages.'</li>';
                $multipage .= ' <li><select>';
                                $multipage .= "<option value='0'>跳转到</option>";
                                for($i=1; $i<=$pages; $i++)
                                {
                                       
                                        $multipage .= "<option value='index.php?$ppp[0]&page=$i'>第$i 页</option>";        
                                }
           $multipage .= '</select></li> ';
           
                $multipage .= '</ul>';
        }
        return $multipage;
}

?>
http://bbs.phpcms.cn/thread-728832-1-1.html