<?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

phpcms v9 自定义分页 带下拉跳转的更多相关文章

  1. phpcms V9自定义分页函数

    大家做网站的时候,可能很多时候分页样式都得根据模板的要求来控制的,这时很多人都会去修改全局文件phpcms\libs\functions\global.func.php里的pages()函数,这样问题 ...

  2. phpcms v9自定义表单提交后返回上一页实现方法

    PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...

  3. 自定义SWT控件二之自定义多选下拉框

    2.自定义下拉多选框 package com.view.control.select; import java.util.ArrayList; import java.util.HashMap; im ...

  4. jQuery自定义漂亮的下拉框插件8种效果演示

    原始的下拉框不好看这里推荐一个jQuery自定义漂亮的下拉框插件8种效果演示 在线预览 下载地址 实例代码 <!DOCTYPE html> <html lang="en&q ...

  5. Bootstrap页面布局15 - BS带下拉菜单的按钮

    带下拉菜单的按钮 <div class='btn-toolbar'> <div class='btn-group'> <a href='javascript:;' cla ...

  6. jquery带下拉菜单和焦点图

    jQuery,下拉菜单,二级菜单,索引按钮,焦点图代码,jquery带下拉菜单和焦点图是一款顶部通栏带二级下拉菜单和banner导航菜单代码. JQuery特效代码来源:http://www.huiy ...

  7. 用js原生加jquery实现下拉跳转至商品详情页,上拉回到商品简介

    在做一个商城的项目时,做到商品详情页的时候需要实现这种下拉跳转到商品详情页加载许多图片,上拉回到商品简介的效果,并且需要用户在滑动时有一种费力的感觉.最初是通过iscroll插件实现的,但这个插件在使 ...

  8. js select下拉框下拉跳转代码

    下拉跳转原理很简单这个用到了select的onchangeg事件,只要这里改变我们就获取select值直接location.href=this.value即可. <select name=&qu ...

  9. Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件

    带下拉选项的输入框 (Textbox with Dropdown) 是既允许用户从下拉列表中选择输入又允许用户自由键入输入值.这算是比较常见的一种 UI 元素,可以为用户提供候选项节省操作时间,也可以 ...

随机推荐

  1. Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class

    准备给scala项目引入单元测试 <dependency> <groupId>org.scalatest</groupId> <artifactId>s ...

  2. B. Painting Pebbles

    B. Painting Pebbles time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. H - 高桥和低桥

    H - 高桥和低桥 Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit Sta ...

  4. 杂乱无章之javascript(一)

    1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象.只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回f ...

  5. vim粘贴代码格式变乱

    转自netingcn.com 有时候从编辑器里面复制粘贴代码到vim中,代码格式会完全乱套.其原因是vim开启了smartindent(智能缩减)或autoindent(自动对齐)模式.为了保持代码的 ...

  6. [改善Java代码]静态变量一定要先声明后赋值

    建议32: 静态变量一定要先声明后赋值 这标题看着让人很纳闷,什么叫做变量一定要先声明后赋值?Java中的变量不都是先声明后使用的吗?难道还能先使用后声明?能不能暂且不说,我们先来看一个例子,代码如下 ...

  7. Windows 8.1 归档 —— Step 1 选择与安装

    下面是 Windows 8.1 各版本区别: Windows 8.1 标准版(一般就称之为Windows 8.1): 包括全新的 Windows 商店.Windows 资源管理器.任务管理器等等,还将 ...

  8. ActiveMQ(5.10.0) - Wildcards and composite destinations

    In this section we’ll look at two useful features of ActiveMQ: subscribing to multiple destinations ...

  9. Ehcache(2.9.x) - API Developer Guide, Searching a Cache

    About Searching The Search API allows you to execute arbitrarily complex queries against caches. The ...

  10. 【转载】Kafka实现篇之消息和日志

    http://blog.csdn.net/honglei915/article/details/37760631 消息格式 日志 一个叫做“my_topic”且有两个分区的的topic,它的日志有两个 ...