animack/jao-nette-visual-paginator

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

0.1.0 2014-03-17 21:13 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:43:42 UTC


README

#jao-nette-visual-paginator (cc)# 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}