thinkphp框架page类与bootstrap分页(美化)

2025-05-29 0 81

bootstrap分样式使用方法这里写链接内容

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151
<nav aria-label="Page navigation">

<ul class="pagination">

<li>

<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Previous">

<span aria-hidden="true">&laquo;</span>

</a>

</li>

<li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >1</a></li>

<li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2</a></li>

<li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >3</a></li>

<li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >4</a></li>

<li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >5</a></li>

<li>

<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" aria-label="Next">

<span aria-hidden="true">&raquo;</span>

</a>

</li>

</ul>

</nav>

1.找到Thinkphp中的Page.class.php,然后使用下面的文件内容完全替换

<?php

// +----------------------------------------------------------------------

// | 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: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>

// +----------------------------------------------------------------------

namespace Think;

class Page{

public $firstRow; // 起始行数

public $listRows; // 列表每页显示行数

public $parameter; // 分页跳转时要带的参数

public $totalRows; // 总行数

public $totalPages; // 分页总页面数

public $rollPage = 11;// 分页栏每页显示的页数

public $lastSuffix = true; // 最后一页是否显示总页数

private $p = 'p'; //分页参数名

private $url = ''; //当前链接URL

private $nowPage = 1;

// 分页显示定制

private $config = array(

'header' => '<li><span>共 %TOTAL_ROW% 条记录<span class="sr-only"></span></span></li>',

'prev' => '<<',

'next' => '>>',

'first' => '1...',

'last' => '...%TOTAL_PAGE%',

'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',

);

/**

* 架构函数

* @param array $totalRows 总的记录数

* @param array $listRows 每页显示记录数

* @param array $parameter 分页跳转的参数

*/

public function __construct($totalRows, $listRows=20, $parameter = array()) {

C('VAR_PAGE') && $this->p = C('VAR_PAGE'); //设置分页参数名称

/* 基础设置 */

$this->totalRows = $totalRows; //设置总记录数

$this->listRows = $listRows; //设置每页显示行数

$this->parameter = empty($parameter) ? $_GET : $parameter;

$this->nowPage = empty($_GET[$this->p]) ? 1 : intval($_GET[$this->p]);

$this->nowPage = $this->nowPage>0 ? $this->nowPage : 1;

$this->firstRow = $this->listRows * ($this->nowPage - 1);

}

/**

* 定制分页链接设置

* @param string $name 设置名称

* @param string $value 设置值

*/

public function setConfig($name,$value) {

if(isset($this->config[$name])) {

$this->config[$name] = $value;

}

}

/**

* 生成链接URL

* @param integer $page 页码

* @return string

*/

private function url($page){

return str_replace(urlencode('[PAGE]'), $page, $this->url);

}

/**

* 组装分页链接

* @return string

*/

public function show() {

if(0 == $this->totalRows) return '';

/* 生成URL */

$this->parameter[$this->p] = '[PAGE]';

$this->url = U(ACTION_NAME, $this->parameter);

/* 计算分页信息 */

$this->totalPages = ceil($this->totalRows / $this->listRows); //总页数

if(!empty($this->totalPages) && $this->nowPage > $this->totalPages) {

$this->nowPage = $this->totalPages;

}

/* 计算分页零时变量 */

$now_cool_page = $this->rollPage/2;

$now_cool_page_ceil = ceil($now_cool_page);

$this->lastSuffix && $this->config['last'] = $this->totalPages;

//上一页

$up_row = $this->nowPage - 1;

$up_page = $up_row > 0 ? '<li><a class="prev" href="' . $this->url($up_row) . '" rel="external nofollow" >' . $this->config['prev'] . '</a></li>' : '';

//下一页

$down_row = $this->nowPage + 1;

$down_page = ($down_row <= $this->totalPages) ? '<li><a class="next" href="' . $this->url($down_row) . '" rel="external nofollow" >' . $this->config['next'] . '</a></li>' : '';

//第一页

$the_first = '';

if($this->totalPages > $this->rollPage && ($this->nowPage - $now_cool_page) >= 1){

$the_first = '<li><a class="first" href="' . $this->url(1) . '" rel="external nofollow" >' . $this->config['first'] . '</a></li>';

}

//最后一页

$the_end = '';

if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){

$the_end = '<li><a class="end" href="' . $this->url($this->totalPages) . '" rel="external nofollow" >' . $this->config['last'] . '</a></li>';

}

//数字连接

$link_page = "";

for($i = 1; $i <= $this->rollPage; $i++){

if(($this->nowPage - $now_cool_page) <= 0 ){

$page = $i;

}elseif(($this->nowPage + $now_cool_page - 1) >= $this->totalPages){

$page = $this->totalPages - $this->rollPage + $i;

}else{

$page = $this->nowPage - $now_cool_page_ceil + $i;

}

if($page > 0 && $page != $this->nowPage){

if($page <= $this->totalPages){

$link_page .= '<li><a class="num" href="' . $this->url($page) . '" rel="external nofollow" >' . $page . '</a></li>';

}else{

break;

}

}else{

if($page > 0 && $this->totalPages != 1){

$link_page .= '<li class="active "><span>'.$page.'<span class="sr-only"></span></span></li>';

}

}

}

//替换分页内容

$page_str = str_replace(

array('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', '%TOTAL_PAGE%'),

array($this->config['header'], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages),

$this->config['theme']);

return "<ul class='pagination'>{$page_str}</ul>";

}

}

2.相关控制器代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
//所有新闻

public function all_news(){

$Article=M("Article");

$where['article_type']=1;

//查询满足要求的总的记录数

$count=$Article->where($where)->count();

//实例化分页类传入总记录数和煤业显示的记录数

$Page=new \\Think\\Page($count,1);

//分页显示输出

$show=$Page->show();

// 进行分页数据查询 注意limit方法的参数要使用Page类的属性

$news=$Article->where($where)->order('pub_time')->field('id,title,institution_type,author_name,pub_time')->limit($Page->firstRow.','.$Page->listRows)->select();

//赋值数据集

$this->assign('news',$news);

//赋值分页输出

$this->assign('page',$show);

$this->display();

}

3.html中只需要

?

1

2
<div class="panel-body center">

{$page}

以上所述是小编给大家介绍的thinkphp框架page类与bootstrap分页(美化),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

原文链接:http://blog.csdn.net/ethen_xie/article/details/73717491

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 thinkphp框架page类与bootstrap分页(美化) https://www.kuaiidc.com/94194.html

相关文章

发表评论
暂无评论