Visualpaginator problém s callbackem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Fyasko
- Člen | 106
Ahoj a mám zase menší problém. Prohledávám forum a nic podobného jsem nenašel. Nedivím se protože je to určitě zase nějaká banalita. K věci.
Paginátoru vadí fce callback() a bez ní ajax zřejmě nespustím. Udělal jsem vše podle návodu. když zakomentuju
<?php
$vp->onShowPage[] = callback($this, 'triggerShowPage');
?>
Tak stránkování jede vpho, ale já bych rád i ten ajax.
Komponenta
<?php
class Articles extends UI\Control
{
/**
* trigger pro udalost strankovani
* @param \Nette\Application\UI\Control $component
* @param int $page
*/
public function triggerShowPage($component, $page) {
//jen invalidovat, paginator si stranky ohlida sam
if ($this->presenter->isAjax()) {
$this->invalidateControl();
} else {
$this->presenter->redirect('this');
}
}
/**
* tovarnicka na paginator
* @param strint $name
*/
public function createComponentPaginator($name) {
$vp = new \VisualPaginator($this, $name);
$vp->onShowPage[] = callback($this, 'triggerShowPage');
return $vp;
}
public function render()
{
$this->template->setFile(__DIR__ . '/Articles.latte');
$count = $this->database->table('articles')
->select('id')
->count();
$this->template->allArticles= $count;
$paginator = $this['paginator']->getPaginator();
$paginator->itemsPerPage = 6;
$paginator->itemCount = $count;
....
}
}
?>
Articles.latte
<div class="component ajax" n:snippet="articles">
{foreach $archive as $article}
<div class="article">
<div class="date">
{$article->date|czechMonthDate:2}
</div>
<img class="article" src="{$basePath}/images/articles/thumbs/test.jpg" width="150" height="150" alt="{$article->title}" />
<div class="art-content">
<h2 class="aBlack blue">{$article->title}</h2>
<span class="team">{$article->teamName}</span>
<span>napsal: {$article->author}</span>
<p>{$article->stroke|substr:0,400}...</p>
<a class="detail-h32" href="">Celý článek</a>
<span class="readers">zobrazeno: <span style="color:#000;">{$article->readers}x</span></span>
</div>
</div>
<div class="line-b1m8bottom"><!-- line-B1&M8bottom --></div>
{/foreach}
{if $allArticles > 6}{control paginator}{/if}
</div>
Na dalším projektu mi to jede bez problémů…No na tomhle ne a nevím proč. Všem předem děkuju za radu. Pokud něco chybí dodám :)