StringTemplate a vykreslení komponenty (widget,component)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- 2bfree
- Člen | 248
Zdravím,
všude jsem potkal odkaz na StringTemplate, když chci generovat šablonu
z řetězce.
Nikde jsem ale nepotkal řešení, které by to dělalo jako metoda. Takže jsem si připsal tuto prasáckou funkci
<?php
class StringTemplate extends Nette\Templates\Template{
...
public static final function stringToTemplate($presenter,$text){
if($text!=""){
$template = new StringTemplate();
$template->presenter = $presenter;
$template->registerFilter(new Nette\Templates\LatteFilter);
$template->content = $text;
return $template->__toString();
}
}
}
?>
V presenteru potom volám třeba (reálně $sablona dotahuji z databáze)
<?php
class MyPresenter extends Nette\Application\Presenter {
public function actionShow(){
$sablona = '<div class="pokus">\n';
$sablona .= ' {widget gallery}\n';
$sablona .= '</div>\n';
$this->template->articleTitle = StringTemplate::StringToTemplate($this,$sablona);
}
protected function createComponentGallery() {
$gallery = new Gallery;
...
return $gallery;
}
}
?>
Narazil jsem ale na problém, že když v řetězci volám widget, tak mi to
vrací chybu:
Undefined variable: control
Dokázali byste mi prosím poradit, kterak rozchodit widgety v šabloně StringTemplate?