Nette\Templates – návrh na rozšíření filtru CurlyBracketsFilter

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

Nenapadá mě žádné trefné označení (možná {norender} … {/norender}), ale myšlenka je taková, že by existoval curlyBracket, který by zajistil, že se daná část template ‚přeskočí‘ neboli, že se obsah nebude renderovat.

Využití: do jedné šablony jsem chtěl přidat nastavení WYSIWYG editoru, jehož část je uzavřena do {} závorek, což je logicky považováno za nějakou část CurlyBracketsFilter.

Reálný příklad:

<?php
<h1>{$title}</h1>

$(document).ready(function(){
new nicEditor({height : 100}).panelInstance('frmitem-perex');
new nicEditor({maxHeight : 170}).panelInstance('frmitem-text');
});

{!$form}
?>

Vyhazuje výjimku: Filter CurlyBracketsFilter::invoke: Unknown macro ‚{height : 100}‘.

Je možné, že to jde i nyní udělat nějakou elegantní cestou, ale mně se toho během testování žádným způsobem nepodařilo docílit.

nAS
Člen | 277
+
0
-

Stačí za { dát mezeru. Takže:

<?php
<h1>{$title}</h1>

$(document).ready(function(){
new nicEditor({ height : 100}).panelInstance('frmitem-perex');
new nicEditor({ maxHeight : 170}).panelInstance('frmitem-text');
});

{!$form}
?>
jasir
Člen | 746
+
0
-

Myslím, že už se tu něco podobného řešilo , ale nakonec nedořešilo. Mělo se to jmenovat {literal}.

Nicméně řešením je po (každé) složené závorce { dát mezeru.

Editoval jasir (9. 6. 2009 23:00)

Ondřej Mirtes
Člen | 1536
+
0
-

Nebo za danou závorkou odenterovat. Anebo nejlepší řešení, díky kterému nebudeš muset upravovat svůj JS kód – dát javascript do externího souboru :)

ales.kafka
Člen | 34
+
0
-

Díky za rychlé řešení. Stejně jako zavináčovou magii zapisuju za uši, abych příště nemusel bádat, co s tím:)