jak do new Latte\Engine() dostat vychozi makra a filtry nette?
- flexroad
- Člen | 117
Ahoj,
tusi nekdo jak do nize uvedeneho pridam idealne vsechny latte makra a filtry z nette?
$latte = new Engine();
$latte->onCompile[] = function($latte) {
//filtry a makra pridam asi tady, otazka je jak?
};
$latte->render(__DIR__ . '/../templates/Home/page.latte', $parameters);
Kdyz pouziju vyse uvedeny kod a v page.latte pak pridam napriklad {control
nejakycontol}, vrati to
„Unknown macro {control} “
Diky za rady
@flexroad
- Jan Endel
- Člen | 1016
Ahoj flexi,
nejejednoduší budeš mít život, když použiješ
Nette\Bridges\ApplicationLatte\TemplateFactory a nad tím metodu createTemplate
má bohužel docela hodně závislostí, ale většina z nich je
nepovinná.
- flexroad
- Člen | 117
OK. Zmenil jsem na ILatteFactory… Nize uvedeny kod ale vraci chybu „Undefined variable: _control“
/** @var Nette\Bridges\ApplicationLatte\ILatteFactory @inject */
public $latteFactory;
$parameters = array('records'=>$postsRecords);
$latte = $this->latteFactory->create();
Nette\Bridges\ApplicationLatte\UIMacros::install($latte->getCompiler());
$latte->render(__DIR__ . '/../templates/Home/page.latte', $parameters);
Co delam spatne?
@flexroad
- enumag
- Člen | 2118
V podstatě to že nepoužíváš TemplateFactory: https://api.nette.org/…ory.php.html#92
- flexroad
- Člen | 117
@JanEndel : Diky moc!!! ,ale stejne moc nevim, jak tomu ty zavislosti predat…
Nize uvedene mi pro zmenu vraci:
Call to a member function getComponent() on a non-object na tomto radku…
} elseif ($record->type == "post") { $_l->tmp = $_control->getComponent("contentPanel"); if ($_l->tmp instanceof Nette\Application\UI\IRenderable) $_l->tmp->redrawControl(NULL, FALSE); $_l->tmp->renderItem($item) ;} $iterations++; }
$template = $this->templateFactory->createTemplate();
$template->setFile(__DIR__ . '/../templates/Home/page.latte');
$template->records = $postsRecords;
$template->render();
--edit–
V presenteru mam pochopitelne komponentu „contentPanel“ normalne
vytvorenou:
protected function createComponentContentPanel()
{
$control = $this->contentPanelFactory->create();
return $control;
}
Jen nevim, jak to predat templateFactory… :( Uz nad tim sedim asi tri hodiny a me dlouhe kucerave vlasy zacinaji slusne sedivet … GRRR.
Editoval flexroad (8. 8. 2015 11:46)
- flexroad
- Člen | 117
@enumag
Poradis PROSIM jak?
Jak uz jsem doplnil v postu vyse, komponentu vytvarim v presenteru…
protected function createComponentContentPanel()
{
$control = $this->contentPanelFactory->create();
return $control;
}
Jen nevim, jak ji predat templateFactory :(
DIKY MOC ZA VAS DRAHOCENY CAS!!!