Vykreslení stejné komponenty dvakrát s různými šablonami
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- krcuk41
- Člen | 12
Ahoj,
ve svojí aplikaci mám napsanou komponentu, kterou potřebuju vypsat na dvou místech. Jediný rozdíl je v tom, že se použije jiná šablona.
Problém je v tom, že každá šablona má svůj snippet a pokud se snažím při použití ajaxu o jejich překreslení tak se překreslí snippet pouze z jedné šablony.
Nenapadá vás zároveň lepší způsob vyřešení tohodle problému než dvojí vykreslení komponenty? Díky.
šablona
<?php
{control panel, left => false}
{control panel, left => true}
?>
render komponenty
<?php
public function render($params = array()) {
if (isset($params['left']) && $params['left']) {
$this->template->setFile(__DIR__ . '/StopwatchLeft.latte');
} else {
$this->template->setFile(__DIR__ . '/StopwatchPanel.latte');
}
$this->template->render();
}
?>
- David Matějka
- Moderator | 6445
nejjednodussi bude, kdyz to definujes v presenteru jako dve komponenty
protected function createComponentPanel()
{
$control = $this->panelFactory->create();
return $control;
}
protected function createComponentLeftPanel()
{
$control = $this->panelFactory->create();
$control->enableLeftPanel(); //a tam si nastavis do clenske property nejaky flag
return $control;
}