Komponenty v latte šabloně z databáze
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vcernik
- Člen | 32
V databázi mám HTML článku (stránky) a rád bych občas někam do
obsahu přiložil dynamickou komponentu (např. formulář, galerie, ..).
Následující kód vezme obsah z databáze a vygeneruje do proměnné
přes Latte.
<?php
$latte = new \Latte\Engine();
$latte->setLoader(new \Latte\Loaders\StringLoader());
$this->template->rendered=$latte->renderToString($page->content, []);
?>
Nicméně to nezná makro {control}.. Jak jej ho naučit? A jak tam přiložit vytvořenou komponentu?
Prý nemohu odpovídat na otázku, kterou jsem sám položil. Přišel jsem
na řešení, a tak jej vkládám sem:
ŘEŠENÍ spočívá v tom, že netvořím nový Latte\Engine,
ale vezmu si jej z presenteru. Zbytek je obdobný:
<?php
$template = $this->createTemplate();
$template->getLatte()->setLoader(new \Latte\Loaders\StringLoader);
$this->template->rendered=$template->getLatte()->renderToString($page->content,$template->getParameters());
?>
Editoval vcernik (1. 7. 2015 23:14)