Nette 2.1 – nefunkční VisualPaginator
- dog.big
- Člen | 49
Zdravím,
již jsem dosti zoufalý. Po upgradu na Nette 2.1, přepsání a
přegenerování projektu mi přestali fungovat všechny VP. Jako addon
používám tento kód
VisualPaginatoru.
Situace je aktuálně taková: po klepnutí na číslo
v paginatoru na stránce se nestane nic, jen se do URL přidá
..?pageChooser-page=2
Poznámka: před přechodem na Nette 2.1 vše fungovalo. Pro
test jsem též vykopal pryč všechny AJAXy. Metody databází prověřeny –
fungují.
Kód paginatoru v presenteru:
***
public function actionDefault()
{
$paginator = $this['pageChooser']->getPaginator();
$paginator->setItemsPerPage($this->itemsPerPage);
$paginator->setItemCount($count);
$customers = $CustomersManager->getOffsetData($paginator->getItemsPerPage(),
$paginator->getOffset());
}
***
protected function createComponentPageChooser($name)
{
return new \TachoScan\Addons\VisualPaginator($this, $name);
}
***
Editoval dog.big (21. 1. 2014 16:16)
- David Matějka
- Moderator | 6445
„nic se nedeje“ znamena, ze se to chova, jako by to bylo stale na prvni strance?
co se stane, kdyz dumpnes $paginator->page
, pripadne
$this['pageChooser']->page
?
- Jiří Nápravník
- Člen | 710
Podle mě to máš dobře, a na tohle:
$paginator->setItemCount($count);
prostě tam nastav počet prvků, přes které má paginator jet, tedy například počet všeho zboží v eshopu.
- dog.big
- Člen | 49
Zdravím, zapomněl jsem dopsat, toto $count = $CustomersManager->count() tam mám :), po dumpu se úkáže 983. Tam problém není, navracím se k VP, kde stále hledám ten kód, který by měl nastavovat danou stránku paginatoru.
+ mě děsí to, že nikde nevidím volání kódu $paginator->setPage($page)
Editoval dog.big (30. 1. 2014 14:14)
- Jan Suchánek
- Člen | 404
dog.big: $paginator->page najdeš ho přímo v komponentě VP zde. Ale zajímal by mě důvod, proč ho chceš měnit, když si číslo stránky nastavuje přímo sama komponenta pomocí persistentního parametru $page.
- Tirus91
- Člen | 199
Mne osobně to také běží v pořádku
$comments = $this->database->query('SELECT * FROM article_comments WHERE article_post_id = %i', $storyId, ' ORDER BY created_at DESC');
$result['count'] = count($comments);
$vp = new \VisualPaginator\VisualPaginator($presenter, 'commentPaginator');
$paginator = $vp->getPaginator();
$paginator->itemsPerPage = $limit;
$paginator->itemCount = $result['count'];
$result['values'] = $comments->fetchAll($paginator->offset, $paginator->itemsPerPage);
return $result;
a to sem neupravoval žádný namespace a nic ;)
Editoval Tirus91 (5. 3. 2014 10:57)
- LamA.nOOb
- Člen | 1
Pokud je to stále aktuální, tak jsem momentálně řešil stejný problém a objevil jsem, že v šabloně visual paginatoru (podle vloženého odkazu je to „template.phtml“) je potřeba pro generování odkazů využít makro {plink , NE {link (v mém případě to bylo:
{if $paginator->pageCount > 1}
<ul class="pagination">
<li {if $paginator->isFirst()}class="disabled"{/if}><a href="{plink this, 'page' => $pageMin}">«</a></li>
{foreach $steps as $step}
<li {if $step == $paginator->page}class="active"{/if}><a href="{plink this, 'page' => $step}">{$step}</a></li>
{if $iterator->nextValue > $step + 1}
<li><span>...</span></li>
{/if}
{/foreach}
<li {if $paginator->isLast()}class="disabled"{/if}><a href="{plink this, 'page' => $pageMax}">»</a></li>
</ul>
{/if}
Editoval LamA.nOOb (22. 10. 2014 1:23)