Používání maker ve vlastních makrech

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

Ahoj,

je možné nějakým způsobem používat makra v makrech? Nelíbí se mi, že některé věci musím v nich definovat duplicitně, nemluvě o přepoužití maker frameworku – např.:

<?php
	LatteMacros::$defaultMacros["first"] = '<div class="first">';
	LatteMacros::$defaultMacros["/first"] = '</div>';
	LatteMacros::$defaultMacros["secondOsklivy"] = '<div class="first"><strong>';
	LatteMacros::$defaultMacros["/secondOsklivy"] = '</strong></div>';
	LatteMacros::$defaultMacros["secondHezky"] = '{first}<strong>';
	LatteMacros::$defaultMacros["/secondHezky"] = '</strong>{/first}';
?>

a nebo s makry frameworku:

<?php
	LatteMacros::$defaultMacros["start"] = '{block}{cache %%}';
	LatteMacros::$defaultMacros["/start"] = '{/cache}{/block}';
?>

Editoval knyttr (4. 10. 2010 20:40)

jtousek
Člen | 951
+
0
-

Jde to, ale dělá se to trochu jinak přes PHP fce a bohužel k tomu chybí nějakej example v dokumentaci. Podívej se do zdrojáků Nette LatteMacros, dá se to z nich vyčíst.

medhi
Generous Backer | 255
+
0
-

To bych přesně také potřeboval, bohužel to ze zdrojáků nejsem schopen sestavit, zkouším něco jako

Nette\Templates\LatteFilter::formatString($message);

Ale není to správně. Poradí někdo? Díky moc.

David Grudl
Nette Core | 8082
+
0
-

API pro rozšiřování maker se bude měnit.

jtousek
Člen | 951
+
0
-

@DG: Koukal jsem na github že ty metody jako fetchToken už nejsou statický takže nějak zmizela možnost jak je kloudně používat. Ale vždycky mi přišlo že přidávání maker pomocí statického LatteMacros::$defaultMacros není úplně ono takže na nové API se těším. :)