-
- /**
- * The same code encapsulation of TODO basic paging, making the front-end code less
- * @param $m model, passed by reference
- * @param $where query conditions
- * @param int $pagesize Number of queries per page
- * @return ThinkPage
- */
- function getpage(&$m,$where,$pagesize=10){
- $m1=clone $m;//Shallow copy of a model
- $count = $m ->where($where)->count();//After the continuous operation, join and other operations will be reset
- $m=$m1;//To maintain the constant continuous operation, shallow copy A model
- $p=new ThinkPage($count,$pagesize);
- $p->lastSuffix=false;
- $p->setConfig('header','
- Total %TOTAL_ROW%Records per page%LIST_ROW%Records%NOW_PAGE%Pages/Total% TOTAL_PAGE%page
');
- $p->setConfig('prev','previous page');
- $p->setConfig('next','next page');
- $p->setConfig('last','last page');
- $p->setConfig('first','first page');
- $p->setConfig('theme' ,'%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
- $p->parameter=I('get.');
- $m->limit($p- >firstRow,$p->listRows);
- return $p;
- }
-
Copy code
getpage method can be placed in Application/Common/Common/function.php of the TP framework. This document can be specially Place some common methods that can be called anywhere (such as Controller files, View files, etc.).
2. Call the paging method
-
- $m=M('products');
- $p=getpage($m,$where,10);
- $list=$m->field(true)->where($ where)->order('id desc')->select();
- $this->list=$list;
- $this->page=$p->show();
- This is View code
-
Copy code
3. Pagination style
-
- .pagination ul {
- display: inline-block;
- margin-bottom: 0;
- margin-left: 0;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px ;
- border-radius: 3px;
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05) );
- box-shadow: 0 1px 2px rgba(0,0,0,0.05);
- }
- .pagination ul li {
- display: inline;
- }
- .pagination ul li.rows {
- line-height: 30px ;
- padding-left: 5px;
- }
- .pagination ul li.rows b{color: #f00}
- .pagination ul li a, .pagination ul li span {
- float: left;
- padding: 4px 12px;
- line -height: 20px;
- text-decoration: none;
- background-color: #fff;
- background: url('../images/bottom_bg.png') 0px 0px;
- border: 1px solid #d3dbde;
- /* border-left-width: 0;*/
- margin-left: 2px;
- color: #08c;
- }
- .pagination ul li a:hover{
- color: red;
- background: #0088cc;
- }
- .pagination ul li.first-child a, .pagination ul li.first-child span {
- border-left-width: 1px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -moz-border-radius-topleft: 3px ;
- }
- .pagination ul .disabled span, .pagination ul .disabled a, .pagination ul .disabled a:hover {
- color: #999;
- cursor: default;
- background-color: transparent;
- }
- .pagination ul .active a, .pagination ul .active span {
- color: #999;
- cursor: default;
- }
- .pagination ul li a:hover, .pagination ul .active a, .pagination ul .active span {
- background -color: #f0c040;
- }
- .pagination ul li.last-child a, .pagination ul li.last-child span {
- -webkit-border-top-right-radius: 3px;
- border-top-right- radius: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
- -moz-border-radius-topright: 3px;
- -moz-border-radius-bottomright : 3px;
- }
- .pagination ul li.current a{color: #f00;font-weight: bold; background: #ddd}
Copy code
|