nittro – prekreslenie konkrétneho snippetu po signále
- petak23
- Člen | 16
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)