Standalone Latte a Forms – vykreslení v šabloně

micmar
Člen | 2
+
0
-

Ahoj,
snažím se naroubovat na starší projekt alespoň něco, co by mi pomohlo v práci, Latte jsem rozběhl, ovšem samostatné Forms mě zlobí. V pořádku si založím formulář, přes render() ho vykreslím přímo v PHP, ale do šablon ho nedostanu. Latte vůbec nechápe, že nějaké formuláře existují a nezná tag {form} … {/form} Vzhledem k tomu, že je Latte i Forms vkládané do čistého PHP, je třeba je nějak “propojit”?

// vykreslim sablonu
$latte = new Latte\Engine;
$latte->setTempDirectory('../temp');
$latte->render(__DIR__.'/templates/'.$tpl, $template);
// vytvorim form
use Nette\Forms\Form;
$form = new Form;
$form->addText('name', 'Jméno:');
$form->addPassword('password', 'Heslo:');
$form->addSubmit('send', 'Registrovat');
$template["form"] = $form;

Kód šablony nedávám, zatím nemám nic co by alespoň vypadalo že bude fungovat. Díky za každý postrčení.

chemix
Nette Core | 1246
+
0
-

Ahoj @micmar tohle jde na me uz celkem do hloubky, ale myslim si ze dle souboru: https://github.com/…rmMacros.php ktery prave to veci registruje do Nette Aplikace tak mam pocit ze o to se postara DI & framework a pokud to oddelujes tak se o tuhle registraci a propojeni budes muset postarat sam. A dle runtime https://github.com/…/Runtime.php to vypada ze to neni zavisle na Nette Application form ale jen na formech samotnych …

Zdeno1981
Člen | 101
+
0
-

Ahoj,

myslím si, že je nutné tam zaregistrovat ty macra, asi nějak takto:

$latte->onCompile[] = function () use ($latte) {
	FormMacros::install($latte->getCompiler());
};
micmar
Člen | 2
+
0
-

Díky, demo pomohlo. Stydím se, příště líp hledat…