Založení vlastního makra ve verzi 2.3
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Miri
- Člen | 117
Ahoj, podle tohoto návodu https://latte.nette.org/cs/ se snažím založit vlastní makro.
Trošku ale tápu, kde mám tento kus kódu použít. Zkoušel jsem ho dát do basePresenteru do metody action, ale vypsalo mi hlášku Unknown attribute n:try (při použítí n:try v latte)
Předem díky za odpověď
Míra
- Pavel Janda
- Člen | 977
Config:
latte:
macros:
- App\Utils\Macros
Macros.php:
<?php
namespace App\Utils;
use Latte;
class Macros extends Latte\Macros\MacroSet
{
public static function install(Latte\Compiler $compiler)
{
$set = new static($compiler);
$set->addMacro('currency', array($set, 'macroCurrency'));
return $set;
}
public function macroCurrency(Latte\MacroNode $node, Latte\PhpWriter $writer)
{
return $writer->write(
'echo \App\Utils\Macros::renderMacroCurrency(%node.word)'
);
}
public static function renderMacroCurrency($currency = NULL)
{
$currency = $currency ?: self::$currency;
switch ($currency) {
case 'EUR': return "€";
default: return 'Kč';
}
}
}
Editoval Pavel Janda (6. 12. 2015 23:53)