snippet presunie svoj obsah na uplny zaciatok stranky

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

zdravim,

mam takuto sablonu

{block #content}
	<div id="assigner">
		{snippet form}
			{control formYearSelect}
		{/snippet}
			{control formTeacherChooser}
		<div class="courses">
			{control formTeachersCourses}
			{control coursesForm}
		</div>
	</div>
{/block}

pokial nie je pouzity snippet vykresli sa stranka v poriadku, ale akonahle obalim hocico zo sablony snippettom vsetky tie formulare sa vykreslia na uplnom zaciatku stranky, este pred obsahom @layout.
revizia 0.9.2-dev (revision 4bb3b29 released on 2009–10–17)

pritom v inej aplikacii mam takychto snippetov viacero a vsetko je OK.
neviete co to moze byt? dik

Honza Kuchař
Člen | 1662
+
0
-

Hledej na fóru: zavináčová magie

blacksun
Člen | 177
+
0
-

Že by tradiční @{block #content}?

Hledal si tady na fóru?

bazo
Člen | 620
+
0
-

tak pred {block #content} ma zavinac fakt nenapadlo dat. vsade inde ano. takze sorry za blbu otazku

Jan Jakeš
Člen | 177
+
0
-

Zrovna jsem narazil na stejný bug, alu u nejnovější po-webexpovské revize. U mě se bug vyskytoval pouze při zápisu:

<div n:snippet="nazev">...</div>

Při zápisu v novém tvaru s dvojtečkou je vše OK:

{snippet:nazev}
{/snippet}

Navíc se mi kromě snippetu vypsalo na začátek stránky vše, co bylo v šabloně před ním.

EDIT: Koukám, že už jste stihli zareagovat na původní příspěvek. V revizi, kterou používám já, by ale už všechno mělo jít i bez zavináčů, ne?

EDIT2: Tak klasika, když chci, tak se mi to nedaří nasimulovat… Tak třeba tam byl předtím jen překlep. Každopádně, kdybyste na to někdo narazili, tak dejte vědět.

Editoval Juan (27. 10. 2009 0:16)

mkoubik
Člen | 728
+
0
-

Jsou někde popsaný změny ve snippetech po webexpu, nebo to ještě není finální?

Jan Jakeš
Člen | 177
+
0
-

Zatím je to určitě experimental…

bazo
Člen | 620
+
0
-

este mam jednu pikosku:
ked tie formulare zajaxujem a nejaky odoslem na serveri skonci 500 error s hlaskou:
Missing template file ‚../AdminModule/templates/1‘.
ked ten subor vytvorim v odpovedi servera je pekna json odpoved ale neobsahuje snippet

Ondřej Mirtes
Člen | 1536
+
0
-

bazo napsal(a):

este mam jednu pikosku:
ked tie formulare zajaxujem a nejaky odoslem na serveri skonci 500 error s hlaskou:
Missing template file ‚../AdminModule/templates/1‘.
ked ten subor vytvorim v odpovedi servera je pekna json odpoved ale neobsahuje snippet

To se ti někde vyskytuje asi makro {extends}, před něj dej zavináč taky.

lactarius
Člen | 47
+
0
-

Zdravím,

mám ten samý problém, co měl bazo, po přidání zavináče před {extends …} chyba zmizela – ale objevila se druhá – zkouším to ve dvou testovacích aplikacích, a nemůžu najít rozdíl – u jedné to funguje (vytvoří se a překreslí snippet) – u druhé se objeví tato chyba:
func_get_arg(): Argument 1 not passed to function – asi to bude taky nějaký konflikt šablon, je tam použit @layout:

.
.
<body>
<div id="container">
<div class="tabsmenu">
	<ul>
		<li {if $name == 'Default'}class="selected"{/if}><a href="{link Default:}">Informace</a></li>
		<li {if $name == 'Board'}class="selected"{/if}><a href="{link Board:}">Deska</a></li>
		<li {if $name == 'News'}class="selected"{/if}><a href="{link News:}">Novinky</a></li>
	</ul>
</div>
{block #main}
{/block}
</div>
</body>
</html>

který dědí šablona:

@{extends '../@layout.phtml'}

{block #main}
.
.
<p>Money:</p>
{snippet:credit}
{$value}
{/snippet}

<p><a class="ajax" href="{link addTen!}">Add ten</a></p>
.
.

Toto je část výpisu z Firebugu:

FatalErrorException()
.
func_get_arg( 1)
.
LatteMacros::renderSnippets( 'object DefaultPresenter', 'object stdClass', array('component'=>'object DefaultPresenter', 'control'=>'object DefaultPresenter', 'presenter'=> ... ))

U druhé aplikace, která mi připadá úplně identická (pravda – je trochu jednodušší – pouze jeden presenter, layout a šablona), to funguje naprosto v pořádku.

Ondřej Mirtes
Člen | 1536
+
0
-

Ty nové snippety jsou hodně experimentální, použil bych staré a rozstrkal bych zavináče tam, kde mají být.