nittro – prekreslenie konkrétneho snippetu po signále

petak23
Člen | 16
+
0
-

Ahojte,
potreboval by som pomoc:
mám na stránke foto galériu. Vľavo mám veľkú fotku(bigimg) a vpravo náhľady. Na webe požívam na frontende nittro. To čo chcem je že keď kliknem na náhľad vpravo, tak sa mi vľavo zobrazí veľký obrázok
a teda sa prekreslí LEN táto časť. Konkrétne:
GaleryPresenter

<?php
class GaleryPresenter extends BasePresenter {
  /** @var int */
  public $id_bigimg = 1;

  public function renderDefault() {
    $this->template->id_bigimg = $this->id_bigimg;
  }

  public function handleChangeBigImg($id) {
    $this->id_bigimg = $id;
    $this->template->id_bigimg = $this->id_bigimg;
    $this->redrawControl('galery-bigimg');
  }
}
?>

@layout.latte

...
<article n:snippet="content" n:inner-block="content" class="nittro-transition-auto nittro-transition-fade"></article>
...

Galery\default.latte

{block content}
<div>
    <div n:snippet="galery-bigimg">
      <img src="{$basePath}/images/galery/img{$id_bigimg|padLeft:2:'0'}.jpg">
    </div>
    <aside n:snippet="galery-thumbs">
      <ul n:inner-for="$i = 1; $i <= 11; $i++">
        <li>
          <a n:href="changeBigImg! $i">
            <img src="{$basePath}/images/galery/tb_img{$i|padLeft:2:'0'}.jpg">
          </a>
        </li>
      </ul>
    </aside>
</div>

Neviem čo robím zle, ale stále mi to prekreslí celý snippet content a nie len snippet galery-bigimg tak ako by som očakával. Skúšal som aj návod na wiki k nittru Snippet invalidation takto:
BasePresenter

<?php
class BasePresenter extends Presenter {

    private $signalled = false;

    protected function startup() {
        parent::startup();
        $this->setDefaultSnippets(['header', 'content']);
        $this->signalled = $this->getSignal() !== null;
    }

    public function isSignalled() {
      return $this->signalled;
    }

    public function afterRender() {
      if ($this->isAjax() && !$this->isControlInvalid() && !$this->isSignalled()) {
          // redraw all the snippets that should be updated
          // on any regular page load
          $this->redrawControl('content');
      }
    }
}
?>

ale ani toto mi nefungovalo. Celé som to následne skúšal vložiť do dema k nittru petak23/demo forked from nittro/demo
ale ani tam mi to nefungovalo…
Kde je chyba? Vopred ďakujem za každú radu.

Editoval petak23 (5. 12. 2017 16:43)