VisualPaginator – jak ho zobrazit?

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

Zdravím,

mám problém s vykreslením VP. Vypadá byt funkční : selekt funguje omezení počtu řádku na stránku taky funguje ale nezobrazí se mi ta lišta s šíslama stránek pro preklikávání v čem může být chyba ? V template mám {control vp} i pro jistotu {widget vp}.. zadny error

Patrik Votoček
Člen | 2221
+
0
-

A máš dostatek záznamů které je potřeba stránkovat?

riski
Člen | 53
+
0
-

vrtak-cz napsal(a):

A máš dostatek záznamů které je potřeba stránkovat?

jo mám, říkam že omezení funguje… mám 3 záznamy z DB omezení na jeden na stránku.. zobrazí se jeden ale nikde VP na překliknutí stránek

toka
Člen | 253
+
0
-

A šablonu pro paginator máš?

Filip Procházka
Moderator | 4668
+
0
-

dej přidej si tam řádek s dumpem k výpisu toho paginatoru a zkontroluj jestli je dobře nastavený

{control vp}
{dump $preseter['vp']}

2 toka:
pokud má visualpaginator tak má afaik vlastní a řval by pokud by neexistovala

Editoval HosipLan (17. 9. 2010 9:35)

toka
Člen | 253
+
0
-

@HosipLan: Spíše jsem myslel, jestli má přímo šablonu, ne pouze existenci souboru (třeba prázdného) na disku :-D To by znamenalo, že by Nette neřvalo a nic by se nezobrazilo.

riski
Člen | 53
+
0
-

HosipLan napsal(a):

dej přidej si tam řádek s dumpem k výpisu toho paginatoru a zkontroluj jestli je dobře nastavený

{control vp}
{dump $preseter['vp']}

2 toka:
pokud má visualpaginator tak má afaik vlastní a řval by pokud by neexistovala

s tim pridanim dump mi to vyhazuje nove okno:
Nette Debug Console
Template …/templates//@layout.phtml
$presenter[‚vp‘] NULL

a na strance ze nezna $presenter.. chapu ze ho mam asi nekde pridat ovsem co kde jak ? Jsem trochu ztraceny pripad takze trochu trpelivosti prosim :,(

Editoval riski (17. 9. 2010 9:59)

riski
Člen | 53
+
0
-

oprava:

v tom novem okne uz neni NULL ale :

object(VisualPaginator) (10) ▼ {
„paginator“ private ⇒ object(Paginator) (4) ▼ {
„base“ private ⇒ int(1)
„itemsPerPage“ private ⇒ int(1)
„page“ private ⇒ int(1)
„itemCount“ private ⇒ int(1)
}
„page“ ⇒ int(1)
........

Filip Procházka
Moderator | 4668
+
0
-

itemCount je tvůj problém, pokud není větší než itemsPetPage tak by se VP neměl vypsat :)

měl jsem napsat rovnou ať použiješ $control['vp'] :)

Editoval HosipLan (17. 9. 2010 10:16)

riski
Člen | 53
+
0
-

HosipLan napsal(a):

itemCount je tvůj problém, pokud není větší než itemsPetPage tak by se VP neměl vypsat :)

měl jsem napsat rovnou ať použiješ $control['vp'] :)

jasně diky žes mě nakopl nevšiml jsem si že mam $items = select count(*) a pak vysledek jeste v count($items) :) diky moc, možná ještě co s tím souvisí jak udělat counter aby zobrazoval poradi.. kdyz ho mam na jedne strance tak v poradku 1 – neco ale ted ze strankovacem je treba na treti strance zase prvni radek cislo jedna pritom by mel byt třeba 30

Filip Procházka
Moderator | 4668
+
0
-
$counterOffset = $paginator->itemsPerPage*($paginator->page-1); // opraveno

na to bys ale určitě přišel sám že ano? :)

Editoval HosipLan (17. 9. 2010 12:13)

riski
Člen | 53
+
0
-

HosipLan napsal(a):

$counter += $paginator->itemsPerPage * $paginator->page;

na to bys ale určitě přišel sám že ano? :)

no to se mi teda nezdá cos napsal..

Filip Procházka
Moderator | 4668
+
0
-

máš pravdu, je tam trošku krpa :)

$counterOffset = $paginator->itemsPerPage*($paginator->page-1);
Ondřej Mirtes
Člen | 1536
+
0
-

Nějak nechápu, co ten counter má být :) Všechnu potřebnou matematiku poskytuje Nette\Paginator svými metodami.

riski
Člen | 53
+
0
-

Ondřej Mirtes napsal(a):

Nějak nechápu, co ten counter má být :) Všechnu potřebnou matematiku poskytuje Nette\Paginator svými metodami.

no klidne porad … ja neznam fce od paginatoru… doted sem mel pouze pocitani na jedne strance {$iterator->getCounter()} co mi poradil kamos ;)

Filip Procházka
Moderator | 4668
+
0
-

Ondřej Mirtes: jde mu o to že když má v tabulce vypsané nějaké indexy položek tak chce na 3tí stránce kde má po 20ti položkách na stránku začít na 41.

{$iterator->getCounter()+$counterOffset}

Editoval HosipLan (17. 9. 2010 13:47)

Ondřej Mirtes
Člen | 1536
+
0
-

A co se podívat na API?

$paginator->getOffset();

Anebo možná getCountdownOffset()?

riski
Člen | 53
+
0
-

Tak nakonec takhle: {$iterator->getCounter()+$counter}

$this->template->counter = $paginator->getOffset(); /// vlastne to co rikal Hosiplan jen sem si toho nevsiml

Editoval riski (17. 9. 2010 14:10)