zeleznypa/jao-nette-visual-paginator

此包已被废弃,不再维护。未建议替代包。

为Nette框架提供的另一个视觉分页组件

0.1.0 2014-03-17 21:13 UTC

This package is not auto-updated.

Last update: 2016-01-06 08:26:45 UTC


README

Pavel Železný (2bfree), 2013 (pavelzelezny.cz)

要求

Nette框架2.1.1或更高版本。PHP 5.3版本

文档

这是基于David Grudl的原始VisualPaginator的Nette框架的另一个视觉分页组件。

增加了一些功能

  • 默认模板与Twitter bootstrap 3兼容。
  • 文本字符串可以翻译。
  • 切换页面由Nette ajax处理。
  • 支持设置额外的事件
  • 可以更改模板。
  • 可以设置可见页面的数量。

安装

首选安装方式是通过Composer

{
    "require":{
        "zeleznypa/jao-nette-visual-paginator": "dev-master"
    }
}

设置

将以下代码添加到neon.conf中

common:
    services:
        paginatorFactory:
            implement: \Zeleznypa\Nette\Utils\IPaginatorFactory
        visualPaginatorFactory:
            implement: \Zeleznypa\Nette\Utils\IVisualPaginatorFactory

使用

安装后,您可以通过构造函数属性或注入方法(cs手册)在presenter中设置对IVisualPaginatorFacotry的依赖。

<?php

/**
 * Base presenter for all application presenters.
 */
class TestPresenter extends \Nette\Application\UI\Presenter
{

    /** @var \Zeleznypa\Nette\Utils\IVisualPaginatorFactory */
    protected $visualPaginatorFactory;

    /**
     * Visual paginator injection
     * @author Pavel Železný <info@pavelzelezny.cz>
     * @param \Zeleznypa\Nette\Utils\IVisualPaginatorFactory $visualPaginatorFactory
     * @return TestPresenter Provides fluent interface
     * @throws \Nette\InvalidStateException
     */
    public function injectVisualPaginatorFactory(\Zeleznypa\Nette\Utils\IVisualPaginatorFactory $visualPaginatorFactory)
    {
        if ($this->visualPaginatorFactory !== NULL)
        {
            throw new \Nette\InvalidStateException('Visual paginator factory has already been set');
        }
        $this->visualPaginatorFactory = $visualPaginatorFactory;
        return $this;
    }

    /**
     * Visual paginator component factory
     * @author Pavel Železný <info@pavelzelezny.cz>
     * @return \Zeleznypa\Nette\Utils\VisualPaginator
     */
    protected function createComponentVisualPaginator()
    {
        $visualPaginator = $this->getVisualPaginatorFactory()->create();
        $visualPaginator->getPaginator()->setItemsPerPage(10);
        $visualPaginator->onSwitch[] = callback($this, 'redrawPaginatedList');
        return $visualPaginator;
    }

    /**
     * Redraw snippet with list of paginated data
     * @author Pavel Železný <info@pavelzelezny.cz>
     * @return void
     */
    protected function redrawPaginatedList()
    {
        $this->redrawComponent('PaginatedList');
    }

    /**
     * Visual paginator getter
     * @author Pavel Železný <info@pavelzelezny.cz>
     * @return \Zeleznypa\Nette\Utils\IVisualPaginatorFactory
     */
    public function getVisualPaginatorFactory()
    {
        return $this->visualPaginatorFactory;
    }

}

在Latte模板中,您可以使用标准的组件渲染器。

{control visualPaginator}