problém s @{include … a snippety v šabloně

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
RDPanek
Člen | 189
+
0
-

Ahoj, řeším problém, kdy mám šablonu A, která do sebe includuje šablonu B a šablona B obsahuje snippety.
Pokud v sablone A neuvedu zavináč před {include … šablona se vykreslí tak jak má, akorát samozřejmě nefungují snippety – ajaxem získávám informace o nahrání souboru.
pokud tam zavináč uvedu, stránka se úplně rozsype – dokonce je v ní i obsah jiné šablony – ve firebugu my vyskočí jQuery is not defined :-D :-D takže bude problém někde s děděním šablon, akorát jsem se dotoho trochu zamotal :-(

Obsah šablony B:

@{block #content}

<!-- nove video -->
@{if isset($newVideo)}
<fieldset>
    <legend>Přidat Video</legend>
    {snippet:form}
	{if isset($values)}
    <strong>Stav nahrávání:</strong><br />
    <b>{=count($values["upload"])}</b> přijatých souborů.
	<br />
        <br />
        <div id="indicator" style="padding: 5px; background-color: #FFFFFF; ">
            <img src="{$basePath}/images/admin/accept.png" style="border:0;" />
            &nbsp;ukládání je úspěšně u konce.
        </div>
	{else}
		{widget form}
                <br />
                <div id="indicator" style="padding: 5px; background-color: #FFFFFF; display: none;">
                    <img src="{$basePath}/images/admin/reload_green.gif" style="border:0;" />
                    &nbsp;pracuji, čekejte prosím...
                </div>
	{/if}
{/snippet}
</fieldset>
@{/if}
<br />

v čem by mohl být problém? Díky :-)

Editoval Gaudentius (28. 7. 2010 0:18)

Vyki
Člen | 388
+
0
-

Používáš nové dvojtečkové snippety {snippet:form}, ale přitom tam máš zavináče @{block #content}, @{if isset($newVideo)}, @{/if}. Podpora nových „dvojtečkových“ snippetů je až od verze 1.0dev takže jestli používáš starší verzi, např 0.9.5:

  • používej místo dvojtečky mezeru {snippet form}
  • zavináče nech

pokud používáš verzi 1.0dev

  • nech snippet s dvojtečkou {snippet:form}
  • dej pryč (nepoužívej) zavináče {block #content}, {if isset($newVideo)}, {/if}

Editoval Vyki (28. 7. 2010 9:34)

RDPanek
Člen | 189
+
0
-

Dobře, odstranil jsem @ ze šablony B. ale nedostávám zpět informace o nahraným souboru – opět, jako by se snippet přeskočil.
Zkusil jsem v šabloně A naIncludovat šablonu B způsobem:

@{include movies.phtml}

výsledek je takovej, že šablona je rozházená a ve firebugu mi vyskakujou chyby jQuery is not defined :-( co dál?

Vyki
Člen | 388
+
0
-

A proč tam máš zavináč? V NF 1.0 se zavináčová magie nepoužívá. Jestli to nebude fungovat ani tak, bude chyba ještě jinde, nebo se snažíš snippety použít tak jak to verze 1.0 zatím neumožňuje. Nevím jak je to s novými snippety dnes, ale ještě před pár týdny jsem tu na fóru četl, že to spoustu věcí neumí a není to dotažené.

RDPanek
Člen | 189
+
0
-

Používám doplněk: MultipleFileUpload

pokud tento doplněk implementuji do šablony A – vše funguje jak má.
pokud tento doplněk implementuji do šablony B která je includovaná do šablony A – nedostávám výsledek o nahrátí souborů. tak mě právě napadlo, že je nějaký problém se zanořením šablon a snippetů.

RDPanek
Člen | 189
+
0
-

stále žádný nápad?

Vyki
Člen | 388
+
0
-

Vyzkoušej to s Nette 0.9.5 – použij zavináčovou magii a místo dvojtečky mezeru. Pokud ti to bude fungovat pak pravděpodobně verze 1.0alpha zatím takové chování snippetů, které tvá aplikace požaduje, nepodporuje. Když to nebude fungovat ani tak, potom je chyba někde v kódu.