jinnguyen/puja-paginator

Puja-Paginator 是一个灵活的数据分页组件,用于对数据集进行分页并展示给用户。

v1.0.0 2017-01-18 02:07 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:00:11 UTC


README

Puja-Paginator 是一个灵活的数据分页组件,用于对数据集进行分页并展示给用户。

安装

只需在命令行上运行此命令

composer require jinnguyen/puja-paginator

用法

include '/path/to/vendor/autoload.php';
use Puja\Paginator\Paginator;

示例

简单

$paginator = new Paginator(
    '/news/', // url
    100, // total of records
    10 // number of records per page
);

本文档的其余部分将假设您已经有一个 $paginator 实例,您正在对其调用。

添加渲染器

$paginator->addRenderer('simple', 'Puja\Paginator\Renderer\Simple'); // Puja\Paginator\Renderer\Simple must be extended of Puja\Paginator\Renderer\RendererAbstract

设置标签

$paginator->setLabels($labes); // default $labels is [First, Prev, Next, Last]

首先,最后和当前 CSS 类

    
  • Home
  • // First element
  • Page
  • Subpage
  • // Current Element
  • Subpage 2
  • // Last Element

第一个/最后一个 CSS 类是第一个/最后一个面包屑元素的类

$paginator->setFirstCssClassName($className);
$paginator->setLastCssClassName($className);
$paginator->setCurrentCssClassName($className);

元素

默认的分页元素是 <li class="{CssClassName}">%s{Divider}</li>。要更改它,请使用 setElement 方法如下

$paginator->setElement('<span class="{FirstLastCss}">%s{Divider}</span>');

注意

"%s" is required for Paginator::$element
{CssClassName}: will be replaced by Paginator::$firstCssClassName/Paginator::$currentCssClassName/Paginator::$lastCssClassName if this element is first/current/last element.
{Divider}: will be replaced by Paginator::$divider

列表元素

用于包装分页的默认列表元素是 <ul>%s</ul>。要更改它,请使用 setListElement 方法如下

$paginator->setListElement('<ol class="ol-paging">%s</ol>');

注意

"%s" is required for Paginator::$listElement

分隔符

默认的分隔符是 ``(空)。这将在 Paginator::$element 属性中的占位符 {Divider} 处替换。如果您想将其更改为,例如 /,您可以这样做

$paginator->setDivider('/');

输出

最后,当您实际想要显示面包屑时,您只需在实例上调用 render() 方法即可。

echo $paginator->render('simple');
echo $paginator->render('basic');
echo $paginator->render(); // default is `basic`

注意

You can write custom Renderer by yourself. You can check Puja\Paginator\Renderer\Simple as a sample

示例

class CustomRenderer extends \Puja\Paginator\Renderer\RendererAbstract
{
    public function parse()
    {
        $p = '';
        for ($i = 0; $i < $this->paginator->getTotalPage(); $i++) {
            $p .= $this->paginator->getPageElement($i, true);
        }

        return $p;
    }
}

$paginator->addRenderer('custom', 'CustomRenderer');
$paginator->render('custom');

请注意,默认情况下,第一个/上一个/下一个/最后一个标题会渲染转义 HTML 字符,如果您想忽略它,只需这样做

$paginator->setSafeHtml(false);