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
+
0
-

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 :)

nightfish
Člen | 519
+
0
-

Funkce callback je od Nette 2.1 deprecated. Zkus použít:

<?php
  $vp->onShowPage[] = $this->triggerShowPage;
?>