Zobrazení navigace v presenteru

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

Ahoj,

momentálně se snažím přijít na kloub navigaci, ale mám menší problém se zobrazením. V presenteru v metodě renderDefault, mám:

<?php

public function renderDefault()
	{
		//vytvorime paginator
		$paginator = new Nette\Utils\Paginator;
		$paginator->setItemCount(20);
		$paginator->setItemsPerPage(5);
		$paginator->setPage(1);

		$this->template->articles = $this->articleRepository->findAll()->limit($paginator->getLength(), $paginator->getOffset());
	        $this->template->paginator = $paginator;


	}
?>

A v šabloně bych teď chtěl zobrazit: (odkaz na první stránku), (aktuální stránku), (odkaz na poslední stránku). Bohužel to podle mě řeším nevhodně a to takto:

<?php
{$paginator->getFirstPage()}  {$paginator->getPage()}  {$paginator->getLastPage()}

?>

Je nějaký lepší, standardní postup, jak by se navigace měla řešit? Díky

Editoval Donkeykong (21. 6. 2013 12:33)

David Matějka
Moderator | 6445
+
0
-

koukni na visualpaginator https://componette.org/search/?… – ten se ti postara o strankovani

Donkeykong
Člen | 39
+
0
-

Díky. Stáhl jsme ho visualpaginator, složku nahrál do /libs vše implementoval a nyní dostávám error:

<?php
Class 'Control' not found

File: .../libs/VisualPaginator/VisualPaginator.php   Line: 31

21:
22:
23:    /**
24:     * Visual paginator control.
25:     *
26:     * @author     David Grudl
27:     * @copyright  Copyright (c) 2009 David Grudl
28:     * @package    Nette Extras
29:     */
30:    class VisualPaginator extends Control
31:    {
32:        /** @var Paginator */
33:        private $paginator;
34:
35:        /** @persistent */

?>

V presenteru mám samozřejmě use Nette\Application\UI\Control;

Editoval Donkeykong (21. 6. 2013 13:23)

David Matějka
Moderator | 6445
+
0
-

ten vp je na starsi verzi nette, takze pridej ten use Nette\Application\UI\Control i na zacatek VisualPaginator.php

Donkeykong
Člen | 39
+
0
-

Díky implementoval jsem a další error.

<?php
Class 'Paginator' not found

File: .../libs/VisualPaginator/VisualPaginator.php   Line: 46

36:        public $page = 1;
37:
38:
39:
40:        /**
41:         * @return Nette\Paginator
42:         */
43:        public function getPaginator()
44:        {
45:            if (!$this->paginator) {
46:                $this->paginator = new Paginator;
47:            }
48:            return $this->paginator;
49:        }
?>
David Matějka
Moderator | 6445
+
0
-

use Nette\Utils\Paginator;

Donkeykong
Člen | 39
+
0
-

Diky uz jsem na to pak taky prisel :)