• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ThinkPHP分页类的使用相关有关问题

php 搞代码 3年前 (2022-01-24) 15次浏览 已收录 0个评论

ThinkPHP分页类的使用相关问题

ThinkPHP3.2.3<span style="color: #000000">Page</span>.<span style="color: #0000ff">class</span>.<span style="color: #000000">php文件源码</span><?<span style="color: #000000">php</span><span style="color: #008000">//</span><span style="color: #008000"> +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麦当苗儿  // +----------------------------------------------------------------------</span><span style="color: #000000">namespace Think;</span><span style="color: #0000ff">class</span><span style="color: #000000"> Page{    </span><span style="color: #0000ff">public</span> <span style="color: #800080">$firstRow</span>; <span style="color: #008000">//</span><span style="color: #008000"> 起始行数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$listRows</span>; <span style="color: #008000">//</span><span style="color: #008000"> 列表每页显示行数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$parameter</span>; <span style="color: #008000">//</span><span style="color: #008000"> 分页跳转时要带的参数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$totalRows</span>; <span style="color: #008000">//</span><span style="color: #008000"> 总行数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$totalPages</span>; <span style="color: #008000">//</span><span style="color: #008000"> 分页总页面数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$rollPage</span>   = 11;<span style="color: #008000">//</span><span style="color: #008000"> 分页栏每页显示的页数</span>    <span style="color: #0000ff">public</span> <span style="color: #800080">$lastSuffix</span> = <span style="color: #0000ff">true</span>; <span style="color: #008000">//</span><span style="color: #008000"> 最后一页是否显示总页数</span>    <span style="color: #0000ff">private</span> <span style="color: #800080">$p</span>       = 'p'; <span style="color: #008000">//</span><span style="color: #008000">分页参数名</span>    <span style="color: #0000ff">private</span> <span style="color: #800080">$url</span>     = ''; <span style="color: #008000">//</span><span style="color: #008000">当前链接URL</span>    <span style="color: #0000ff">private</span> <span style="color: #800080">$nowPage</span> = 1<span style="color: #000000">;    </span><span style="color: #008000">//</span><span style="color: #008000"> 分页显示定制</span>    <span style="color: #0000ff">private</span> <span style="color: #800080">$config</span>  = <span style="color: #0000ff">array</span><span style="color: #000000">(        </span>'header' => '<span class="rows">共 %TOTAL_ROW% 条记录</span>',        'prev'   => '< '>>',        'first'  => '1...',        'last'   => '...%TOTAL_PAGE%',        'theme'  => '%FIRST% %UP<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码$网!</span><strong>搞代gaodaima码</strong>_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',<span style="color: #000000">    );    </span><span style="color: #008000">/*</span><span style="color: #008000">*     * 架构函数     * @param array $totalRows  总的记录数     * @param array $listRows  每页显示记录数     * @param array $parameter  分页跳转的参数     </span><span style="color: #008000">*/</span>    <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span> __construct(<span style="color: #800080">$totalRows</span>, <span style="color: #800080">$listRows</span>=20, <span style="color: #800080">$parameter</span> = <span style="color: #0000ff">array</span><span style="color: #000000">()) {        C(</span>'VAR_PAGE') && <span style="color: #800080">$this</span>->p = C('VAR_PAGE'); <span style="color: #008000">//</span><span style="color: #008000">设置分页参数名称</span>        <span style="color: #008000">/*</span><span style="color: #008000"> 基础设置 </span><span style="color: #008000">*/</span>        <span style="color: #800080">$this</span>->totalRows  = <span style="color: #800080">$totalRows</span>; <span style="color: #008000">//</span><span style="color: #008000">设置总记录数</span>        <span style="color: #800080">$this</span>->listRows   = <span style="color: #800080">$listRows</span>;  <span style="color: #008000">//</span><span style="color: #008000">设置每页显示行数</span>        <span style="color: #800080">$this</span>->parameter  = <span style="color: #0000ff">empty</span>(<span style="color: #800080">$parameter</span>) ? <span style="color: #800080">$_GET</span> : <span style="color: #800080">$parameter</span><span style="color: #000000">;        </span><span style="color: #800080">$this</span>->nowPage    = <span style="color: #0000ff">empty</span>(<span style="color: #800080">$_GET</span>[<span style="color: #800080">$this</span>->p]) ? 1 : <span style="color: #008080">intval</span>(<span style="color: #800080">$_GET</span>[<span style="color: #800080">$this</span>-><span style="color: #000000">p]);        </span><span style="color: #800080">$this</span>->nowPage    = <span style="color: #800080">$this</span>->nowPage>0 ? <span style="color: #800080">$this</span>->nowPage : 1<span style="color: #000000">;        </span><span style="color: #800080">$this</span>->firstRow   = <span style="color: #800080">$this</span>->listRows * (<span style="color: #800080">$this</span>->nowPage - 1<span style="color: #000000">);    }    </span><span style="color: #008000">/*</span><span style="color: #008000">*     * 定制分页链接设置     * @param string $name  设置名称     * @param string $value 设置值     </span><span style="color: #008000">*/</span>    <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span> setConfig(<span style="color: #800080">$name</span>,<span style="color: #800080">$value</span><span style="color: #000000">) {        </span><span style="color: #0000ff">if</span>(<span style="color: #0000ff">isset</span>(<span style="color: #800080">$this</span>->config[<span style="color: #800080">$name</span><span style="color: #000000">])) {            </span><span style="color: #800080">$this</span>->config[<span style="color: #800080">$name</span>] = <span style="color: #800080">$value</span><span style="color: #000000">;        }    }    </span><span style="color: #008000">/*</span><span style="color: #008000">*     * 生成链接URL     * @param  integer $page 页码     * @return string     </span><span style="color: #008000">*/</span>    <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span> url(<span style="color: #800080">$page</span><span style="color: #000000">){        </span><span style="color: #0000ff">return</span> <span style="color: #008080">str_replace</span>(<span style="color: #008080">urlencode</span>('[PAGE]'), <span style="color: #800080">$page</span>, <span style="color: #800080">$this</span>-><span style="color: #000000">url);    }    </span><span style="color: #008000">/*</span><span style="color: #008000">*     * 组装分页链接     * @return string     </span><span style="color: #008000">*/</span>    <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> show() {        </span><span style="color: #0000ff">if</span>(0 == <span style="color: #800080">$this</span>->totalRows) <span style="color: #0000ff">return</span> ''<span style="color: #000000">;        </span><span style="color: #008000">/*</span><span style="color: #008000"> 生成URL </span><span style="color: #008000">*/</span>        <span style="color: #800080">$this</span>->parameter[<span style="color: #800080">$this</span>->p] = '[PAGE]'<span style="color: #000000">;        </span><span style="color: #800080">$this</span>->url = U(ACTION_NAME, <span style="color: #800080">$this</span>-><span style="color: #000000">parameter);        </span><span style="color: #008000">/*</span><span style="color: #008000"> 计算分页信息 </span><span style="color: #008000">*/</span>        <span style="color: #800080">$this</span>->totalPages = <span style="color: #008080">ceil</span>(<span style="color: #800080">$this</span>->totalRows / <span style="color: #800080">$this</span>->listRows); <span style="color: #008000">//</span><span style="color: #008000">总页数</span>        <span style="color: #0000ff">if</span>(!<span style="color: #0000ff">empty</span>(<span style="color: #800080">$this</span>->totalPages) && <span style="color: #800080">$this</span>->nowPage > <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages) {            </span><span style="color: #800080">$this</span>->nowPage = <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages;        }        </span><span style="color: #008000">/*</span><span style="color: #008000"> 计算分页临时变量 </span><span style="color: #008000">*/</span>        <span style="color: #800080">$now_cool_page</span>      = <span style="color: #800080">$this</span>->rollPage/2<span style="color: #000000">;        </span><span style="color: #800080">$now_cool_page_ceil</span> = <span style="color: #008080">ceil</span>(<span style="color: #800080">$now_cool_page</span><span style="color: #000000">);        </span><span style="color: #800080">$this</span>->lastSuffix && <span style="color: #800080">$this</span>->config['last'] = <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages;        </span><span style="color: #008000">//</span><span style="color: #008000">上一页</span>        <span style="color: #800080">$up_row</span>  = <span style="color: #800080">$this</span>->nowPage - 1<span style="color: #000000">;        </span><span style="color: #800080">$up_page</span> = <span style="color: #800080">$up_row</span> > 0 ? '$this</span>->url(<span style="color: #800080">$up_row</span>) . '">' . <span style="color: #800080">$this</span>->config['prev'] . '' : ''<span style="color: #000000">;        </span><span style="color: #008000">//</span><span style="color: #008000">下一页</span>        <span style="color: #800080">$down_row</span>  = <span style="color: #800080">$this</span>->nowPage + 1<span style="color: #000000">;        </span><span style="color: #800080">$down_page</span> = (<span style="color: #800080">$down_row</span> <= <span style="color: #800080">$this</span>->totalPages) ? '$this</span>->url(<span style="color: #800080">$down_row</span>) . '">' . <span style="color: #800080">$this</span>->config['next'] . '' : ''<span style="color: #000000">;        </span><span style="color: #008000">//</span><span style="color: #008000">第一页</span>        <span style="color: #800080">$the_first</span> = ''<span style="color: #000000">;        </span><span style="color: #0000ff">if</span>(<span style="color: #800080">$this</span>->totalPages > <span style="color: #800080">$this</span>->rollPage && (<span style="color: #800080">$this</span>->nowPage - <span style="color: #800080">$now_cool_page</span>) >= 1<span style="color: #000000">){            </span><span style="color: #800080">$the_first</span> = '$this</span>->url(1) . '">' . <span style="color: #800080">$this</span>->config['first'] . ''<span style="color: #000000">;        }        </span><span style="color: #008000">//</span><span style="color: #008000">最后一页</span>        <span style="color: #800080">$the_end</span> = ''<span style="color: #000000">;        </span><span style="color: #0000ff">if</span>(<span style="color: #800080">$this</span>->totalPages > <span style="color: #800080">$this</span>->rollPage && (<span style="color: #800080">$this</span>->nowPage + <span style="color: #800080">$now_cool_page</span>) < <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages){            </span><span style="color: #800080">$the_end</span> = '$this</span>->url(<span style="color: #800080">$this</span>->totalPages) . '">' . <span style="color: #800080">$this</span>->config['last'] . ''<span style="color: #000000">;        }        </span><span style="color: #008000">//</span><span style="color: #008000">数字连接</span>        <span style="color: #800080">$link_page</span> = ""<span style="color: #000000">;        </span><span style="color: #0000ff">for</span>(<span style="color: #800080">$i</span> = 1; <span style="color: #800080">$i</span> <= <span style="color: #800080">$this</span>->rollPage; <span style="color: #800080">$i</span>++<span style="color: #000000">){            </span><span style="color: #0000ff">if</span>((<span style="color: #800080">$this</span>->nowPage - <span style="color: #800080">$now_cool_page</span>) <= 0<span style="color: #000000"> ){                </span><span style="color: #800080">$page</span> = <span style="color: #800080">$i</span><span style="color: #000000">;            }</span><span style="color: #0000ff">elseif</span>((<span style="color: #800080">$this</span>->nowPage + <span style="color: #800080">$now_cool_page</span> - 1) >= <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages){                </span><span style="color: #800080">$page</span> = <span style="color: #800080">$this</span>->totalPages - <span style="color: #800080">$this</span>->rollPage + <span style="color: #800080">$i</span><span style="color: #000000">;            }</span><span style="color: #0000ff">else</span><span style="color: #000000">{                </span><span style="color: #800080">$page</span> = <span style="color: #800080">$this</span>->nowPage - <span style="color: #800080">$now_cool_page_ceil</span> + <span style="color: #800080">$i</span><span style="color: #000000">;            }            </span><span style="color: #0000ff">if</span>(<span style="color: #800080">$page</span> > 0 && <span style="color: #800080">$page</span> != <span style="color: #800080">$this</span>-><span style="color: #000000">nowPage){                </span><span style="color: #0000ff">if</span>(<span style="color: #800080">$page</span> <= <span style="color: #800080">$this</span>-><span style="color: #000000">totalPages){                    </span><span style="color: #800080">$link_page</span> .= '$this</span>->url(<span style="color: #800080">$page</span>) . '">' . <span style="color: #800080">$page</span> . ''<span style="color: #000000">;                }</span><span style="color: #0000ff">else</span><span style="color: #000000">{                    </span><span style="color: #0000ff">break</span><span style="color: #000000">;                }            }</span><span style="color: #0000ff">else</span><span style="color: #000000">{                </span><span style="color: #0000ff">if</span>(<span style="color: #800080">$page</span> > 0 && <span style="color: #800080">$this</span>->totalPages != 1<span style="color: #000000">){                    </span><span style="color: #800080">$link_page</span> .= '<span class="current">' . <span style="color: #800080">$page</span> . '</span>'<span style="color: #000000">;                }            }        }        </span><span style="color: #008000">//</span><span style="color: #008000">替换分页内容</span>        <span style="color: #800080">$page_str</span> = <span style="color: #008080">str_replace</span><span style="color: #000000">(            </span><span style="color: #0000ff">array</span>('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', '%TOTAL_PAGE%'),            <span style="color: #0000ff">array</span>(<span style="color: #800080">$this</span>->config['header'], <span style="color: #800080">$this</span>->nowPage, <span style="color: #800080">$up_page</span>, <span style="color: #800080">$down_page</span>, <span style="color: #800080">$the_first</span>, <span style="color: #800080">$link_page</span>, <span style="color: #800080">$the_end</span>, <span style="color: #800080">$this</span>->totalRows, <span style="color: #800080">$this</span>->totalPages),            <span style="color: #800080">$this</span>->config['theme'<span style="color: #000000">]);        </span><span style="color: #0000ff">return</span> "<div>{<span style="color: #800080">$page_str</span>}</div>"<span style="color: #000000">;    }}</span>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ThinkPHP分页类的使用相关有关问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址