venca-x/nette-pagination

Nette 插件。Twitter Bootsrap 分页插件

v1.0.1 2023-11-15 14:25 UTC

This package is auto-updated.

Last update: 2024-09-15 16:23:34 UTC


README

Build Status Coverage Status Latest Stable Version Latest Unstable Version Total Downloads License

插件为 Nette。使用 Twitter Bootstrap 风格的分页插件 Twitter Bootstrap 支持 Twitter Bootstrap 3 和 Twitter Bootstrap 4

安装

使用 composer 安装

composer require venca-x/nette-pagination:dev-master

Nette 3.0

对于 Nette 3.0(以及 PHP >= 7.1),使用

composer require venca-x/nette-pagination:^1.0
//or
composer require venca-x/nette-pagination:dev-master

对于 Nette 2.4 和 2.3,使用

composer require venca-x/nette-pagination:^0.1

配置

HomepagePresenter.php

/** @var int shoved page in paginator */
private $paginatorOffset;

public function actionMy()
{
    //$vp = new VencaX\NettePagination\BootstrapRendererV4();
    $vp = new VencaX\NettePagination\BootstrapRendererV4($this, 'vp');
    $vp->setMaximalPagesCount( 5 );//maximal count pages in paginator
    $paginator = $vp->getPaginator();
    $paginator->itemsPerPage = 20;
    $paginator->itemCount = $this->modelTweets->findAll()->count( "*" );

    $this->paginatorOffset = $paginator->offset;

    $this->dataSelection = $this->modelTweets->findAll()->limit( $paginator->itemsPerPage, $paginator->offset );
    //...
}

public function renderMy()
{
    $this->template->paginatorOffset = $this->paginatorOffset;
}

用法

在分页器的所有页面(除了第一页)上使用 meta robots noindex,follow

{block head}
    {if $paginatorOffset > 1}
        <meta name="robots" content="noindex,follow">
    {/if}
{/block}

{block content}
    ...
    {control vp}
    ...
{/block}

技巧

如何更改标签“上一页”和“下一页”?

在构造函数中更改它

$vp = new VencaX\NettePagination\BootstrapRendererV4();
$vp->setPreviousLabel('«');
$vp->setNextLabel('»');
//or
$vp = new VencaX\NettePagination\BootstrapRendererV3();
$vp->setPreviousLabel('«');
$vp->setNextLabel('»');

TwitterBootstrap v3

如何为 TwitterBootstrap v3 使用它?

用法与 TwitterBootstrap v4 相同。只需更改类到 VencaX\NettePagination\BootstrapRendererV3

/** @var int shoved page in paginator */
private $paginatorOffset;

public function actionMy()
{
    $vp = new VencaX\NettePagination\BootstrapRendererV3();
    $vp->setMaximalPagesCount( 5 );//maximal count pages in paginator
    $paginator = $vp->getPaginator();
    $paginator->itemsPerPage = 20;
    $paginator->itemCount = $this->modelTweets->findAll()->count( "*" );

    $this->paginatorOffset = $paginator->offset;

    $this->dataSelection = $this->modelTweets->findAll()->limit( $paginator->itemsPerPage, $paginator->offset );
    //...
}

public function renderMy()
{
    $this->template->paginatorOffset = $this->paginatorOffset;
}