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

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

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

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>