stránkování pomocí paginátoru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Karel Chramosil
Člen | 114
+
0
-

Nette Framework 2.0.3 (revision eb558ae released on 2012–04–04), EasyPHP 5.3.9
Dobrý den, jsem už starší a pomalu chápu. Potřebuji stránkovat výpis z databáze. V návodu jsem našel paginátor a zadal do svého kódu:

<?php

use Nette\Security as NS;

/**
 * UserList presenter.
 *
 * @author     Karel Chramosil
 * @package    Opravy
 * Presenter, který zajišťuje výpis seznamu oprav.
 */

class OpravaListPresenter extends SecuredPresenter

{
	public function actionDefault()
	{

	}

	public function renderDefault()
	{
		$paginator = new Nette\Utils\Paginator;
		$paginator->setItemCount(356); // celkový počet položek (např. článků)
		$paginator->setItemsPerPage(8); // počet položek na stránce
		$paginator->setPage(1); // číslo aktuální stránky, číslováno od 1

		$this->template->opravas = $this->context->createOpravas()->order('datum_opravy DESC, id DESC')->limit($paginator->getLength(), $paginator->getOffset());
/*
		if ($paginator->first) echo('První stránka'); // jsme na první stránce?
		if ($paginator->last) echo('Poslední stránka'); // jsme na poslední stránce?
		echo $paginator->page; // číslo aktuální stránky
*/
	}

	public function beforeRender()
	{

	}

}

Výsledkem je zobrazení prvních 8 řádků. Ale nezobrazí se možnost stránkování.

Do šablony jsem přidal {control paginator} program ale hlásí že nezná paginátor. Nevím kde ho deklarovat. Děkuji za nakopnutí.

Draffix
Člen | 146
+
0
-

Použil bych spíše visual paginator. Pak stačí Váš kód mírně upravit a musíte si vytvořit ještě továrničku:

protected function createComponentPaginator() {
    $visualPaginator = new VisualPaginator();
    return $visualPaginator;
}
Karel Chramosil
Člen | 114
+
0
-

Děkuji za nasměrování už jsem stránkování vyřešil. Karel Chramosil