Jak psat n:macro?

- Wizzard256
 - Člen | 18
 
Zdravim, potreboval bych vytvorit n:macro, ale zatim ani podle tutoru netusim jak na to, potreboval bych:
<a n:hrefAllowed="Car:view, $car->id">{$car->label}</a>
aby vypsalo tohle:
<a href="/car/view/1">Ferrari</a>
nebo pokud na to uzivatel nema pravo:
Ferrari
takze samotnej kod v makru by mel bejt:
if (Nette\Environment::getUser()->isAllowed('Car', 'view')) {
	echo "<a href=".link(...
else
	echo "...
netusi nekdo jak na to? Predem dik

- Jan Endel
 - Člen | 1016
 
Především bych chtěl odkázat na skvělou dokumentaci ohledně maker.
Sám jsem si podle tohohle manuálu dělal makro pro výpis formulářových errorů i mimo makro form, pro inspiraci přikládám:
Macros.php:
 use Nette\Forms\Form;
 use Nette\Latte\Parser;
 use Nette\Latte\Macros\MacroSet;
 class Macros extends \Nette\Object
 {
	 public function install(Parser $parser, $classFlash = 'alertbox_bad')
	{
		$set = new MacroSet($parser);
		$set->addMacro('formError',
			'$form = $control[%node.word];foreach($form->getErrors() as $error){ echo "<div class=\''. $classFlash .'\'><p>$error</p></div>";}');
	}
 }
úryvek BasePresenter.php:
public function templatePrepareFilters($template)
{
        $latte = new Nette\Latte\Engine;
        $myMacros = new Macros();
	$myMacros->install($latte->parser);
        $template->registerFilter($latte);
}
					Editoval pilec (17. 10. 2011 14:59)

- Wizzard256
 - Člen | 18
 
jj, dokumentaci mam projetou, templatePrepareFilters v BasePresenteru taky mam, nicmene nevim jakym zpusobem se resi makra, pokud jsou primo v tagu a ne zvlast

- Wizzard256
 - Člen | 18
 
aha, tak to asi vazlo celou dobu na tom, ze se to makro nijak
nezaregistrovalo, vytvoril sem ten soubor Macros.php a do BasePresenteru dal ten
templatePrepareFilters, a porad to
pise Nette\Latte\ParseException: Unknown macro {...