Nahrání externího .latte do snippetu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- sadamek
- Člen | 16
Dobrý den,
stále se mi nedaří dohledat, jak přes signál, pomocí ajaxu, změnit obsah
snippetu na externí šablonový soubor *.latte . Zkoušel jsem něco sám, ale
nedaří se mi.
Výchozí šablona; V @layout.latte mám script na obsluhu ajaxu i knihovnu.
{extends @layout.latte}
{block content}
<div id="cteniDiv">
{snippet stranka}
{block stranka}
<a class="ajax" n:href="precetl!">Dalsi page</a>
{/block}
{/snippet}
</div>
Presenter se signálem
<?php
class TestingPresenter extends SecuredPresenter{
public function renderDefault(){}
public function handlePrecetl(){
if ($this->isAjax())
{
$this->template->stranka = $this->template->setFile(APP_DIR.'/templates/page2.latte');
$this->invalidateControl();
}
}
}
Předem děkuji za pomoc
- Jan Endel
- Člen | 1016
Napadá mě, co něco takového?
default.latte:
{extends @layout.latte}
{block content}
{default $page = 'page.latte'}
<div id="cteniDiv">
{snippet stranka}
{block stranka}
{include $page}
{/block}
{/snippet}
</div>
page.latte:
<a class="ajax" n:href="precetl!">Dalsi page</a>
page2.latte → tak jak to máš
presenter:
class TestingPresenter extends SecuredPresenter{
public function renderDefault(){}
public function handlePrecetl(){
if ($this->isAjax())
{
$this->template->page = 'page2.latte';
$this->invalidateControl();
}
}
}
- sadamek
- Člen | 16
Díky,
sice mi nefunguje deklarování proměnné v default.latte pomocí
{default $page = 'page.latte'}
hlásí totiž, že proměnná page neexistuje
Místo toho jsem udělal menší obměnu v includu pomocí makra ifset
<div id="cteniDiv">
{snippet stranka}
{block stranka}
{ifset $page}
{include $page}
{else}
{include page.latte}
{/ifset}
{/block}
{/snippet}
</div>