Jak na úpravu prepare vygenerované templaty?
- norbe
- Backer | 408
Ve starém latte nebyl problém si dynamicky nastavit parentName vygenerované šablony (v makrosetu implementaná metoda finalize, která upravila prolog šablony).
Používáme to v modulární aplikaci na doplňování / přepisování bloků (komponenta se začne vykreslovat od na posledy přidané rozšiřující šablony a postupně volá další až se parentName nastaví na hlavní šablonu komponenty, která si pak ještě může nastavit parentName z {layout }).
V novém latte mne ale nenapadá jak na to. Povedlo se mi to částečně s pomocí coreParentFinder, ale tam narážím na problém toho, že nette ho zavolá pouze jednou (viz commit https://github.com/…24c0d1cb2bdf).
Napadá někoho způsob jak to vyřešit?
- norbe
- Backer | 408
Vyřešeno vlastním FileLoaderem… Zajímalo by mne ale, jak bych tohle byl schopný vyřešit úpravou AST. Nedal by mi @DavidGrudl tip jak na to?
class ExtensionBlockFileLoader extends Latte\Loaders\FileLoader {
public function getContent(string $name): string {
$content = parent::getContent($name);
return '{blockLoader} ' . $content;
}
}