其實(shí)分頁(yè)自身的內(nèi)容也不是很多岁钓。不過(guò)牽扯到樣式的問(wèn)題感覺(jué)挺煩。于是找到了分頁(yè)類(lèi)看了一下。把大體的結(jié)構(gòu)說(shuō)一下屡限。如果有需要修改頁(yè)面樣式的可以自行修改樣式品嚣。最好提前備份,防止意外钧大。
首先是分頁(yè)的調(diào)用翰撑,tp5的調(diào)用相對(duì)非常容易
$mod = new \app\index\model\Blogmsg();
$mo = $mod->paginate(1,14);
$this->assign('list', $mo);
// 渲染模板輸出
return $this->fetch('list');
//模板方面
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}
函數(shù)的第一個(gè)參數(shù)是每一頁(yè)顯示幾個(gè),第二個(gè)參數(shù)是總共顯示多少頁(yè)啊央。
(本來(lái)有10頁(yè)眶诈,你只寫(xiě)5頁(yè),那么6-10頁(yè)是不會(huì)顯示的瓜饥,但是地址欄該參數(shù)還是可以跳轉(zhuǎn)過(guò)去獲取對(duì)應(yīng)的內(nèi)容...)
默認(rèn)的是這樣的效果逝撬。不過(guò)這是在bootstrap模板下才有的效果。專(zhuān)門(mén)根據(jù)bootstrap的特點(diǎn)做的命名乓土。
也就是說(shuō)宪潮,在其他的模板下,只是單純的數(shù)字趣苏。
分頁(yè)的文件的位置在thinkphp\library\think\paginator里狡相。
driver里有一個(gè)分頁(yè)樣式的原版。直接改不利于后期維護(hù)食磕。而且tp5也給你一個(gè)非常方便的修改方法尽棕。文件夾內(nèi)源文件復(fù)制粘貼重新命名。然后改一句話(huà)class Bootstrap extends Paginator中的Bootstrap改成文件的名字芬为。再去config.php里找到分頁(yè)相關(guān)的配置萄金。
'type' => 'bootstrap',改成你的文件名字。就可以直接調(diào)用了媚朦。
我把幾個(gè)牽扯到樣式的函數(shù)名稱(chēng)列出來(lái)氧敢,簡(jiǎn)單的說(shuō)一下存在的意義。
render()渲染分頁(yè)询张,大白話(huà)就是這個(gè)分頁(yè)類(lèi)的主體孙乖。
return sprintf(
'<ul class="pagination">%s %s %s</ul>',
$this->getPreviousButton(),
$this->getLinks(),
$this->getNextButton()
);
這里就牽扯到css的樣式,可以根據(jù)自己的需要替換份氧。
頁(yè)碼自身沒(méi)有首頁(yè)和尾頁(yè)單項(xiàng)唯袄。(但是函數(shù)為你提供了尾頁(yè)的值)
可以自己去做一個(gè)填寫(xiě)。復(fù)制getNextButton()進(jìn)行相關(guān)的修改就可以了蜗帜。
在getNextButton()函數(shù)里會(huì)看見(jiàn)另外兩個(gè)函數(shù)
getAvailablePageWrapper($url, $page)和getDisabledTextWrapper($text)恋拷。
剛剛的渲染函數(shù)是可以理解為箱體,這兩個(gè)函數(shù)可以理解為按鈕了厅缺。想改樣式在這里該就行了蔬顾。能做到這里的都不會(huì)有太大的問(wèn)題宴偿。
getLinks()則是管中間的【骰恚看代碼基本是也能看出來(lái)大體意思窄刘。修改分頁(yè)基本從這些地方著手就可以了。