[latte] Přidání textu do existujícího bloku

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

Ahoj,

chtěl bych znát váš názor.

Jak řešíte javascript v děděných šablonách? V layoutu máte např. několikrát <script src="..." /> a v nějakém konkrétním view přidáte jenom napevno blok <script type="text/Javascript">...</script> do #content bloku, nebo se to nějak snažíte přidat k již existujícímu bloku skriptů?

Chtěl jsem jít druhou zmíněnou cestou, takže v layoutu mám

{block scripts}
<script type="text/javascript" src="{$basePath}/js/jquery.js"></script>
<script type="text/javascript" src="{$basePath}/js/jquery.nette.js"></script>
<script type="text/javascript" src="{$basePath}/js/netteForms.js"></script>
<script type="text/javascript" src="{$basePath}/js/main.js"></script>
{/block}

ale v šabloně konkrétního view bych chtěl použít něco jako

{block-append #scripts}
<script type="text/Javascript">
	alert("Trololo!");
</script>
{/block}

případně

{include parent#scripts}
<script type="text/Javascript">
	alert("Trololo!");
</script>

Zatím jsem při všech svých pokusech narazil do zdi. Snažil jsem se o jakési rekurzivní řešení, ale buď to nefungovalo, nebo se se mnou Nette odmítlo bavit, protože jsem vytvořil infinite-recursion. Také jsem zkoušel makro

{capture $var}
	{include #scripts}
{/capture}

, ale také jsem neuspěl, protože proměnnou, do které se výstup zachytí, jsem nedostal za hranice bloku (takže buď undefined variable nebo infinite-recursion).

Vím, že to můžu řešit tak, že na konci bloku #scripts definuji ještě block #scriptsAppend a budu editovat ten, což by mi aktuálně stačilo, ale to není univerzální řešení.

Předem díky za názory a rady.

nanuqcz
Člen | 822
+
+1
-

Ahoj, jestli jsem pochopil správně, co chceš, mělo by to jít takto:

{block scripts}
	{include #parent}  {* include parent #scripts block *}

	<script type="text/Javascript">
		alert("Trololo!");
	</script>
{/block}
Dragonn
Člen | 12
+
0
-

To je přesně to, co jsem scháněl, akorát jsem to v té dokumentaci dočista přehlédl. Měl jsem pocit, že jsem tu stránku celou přečetl aspoň třikrát, ale tohodle jsem si nevšiml.

Omlouvám se za zbytečný thread