nefunkční latte filter v šabloně
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Bejn
- Člen | 17
Mám problém s registrací Latte filtru do šablony. Používám Nette 2(version 2.0-dev 9f535f9 released on 2011–01–10) a PHP 5.2.
Můj kód:
class BaseForm extends AppForm { }
function orderFormSubmit(BaseForm $form)
{
$values = $form->getValues();
$template = new FileTemplate(APP_DIR.'/templates/Default/orderEmail.latte');
$template->registerFilter(new LatteFilter);
$template->labels = $this->orderLabels;
$template->values = $values;
$mail = new Mail;
$mail->setFrom('Franta <franta@example.com>');
$mail->addTo('kubat@vidia-design.cz');
$mail->setHtmlBody($template);
$mail->send();
}
Jedná se o jednoduché odeslání mailu s tělem generovaným ze šablony. Šablona emailu vypadá následovně:
{foreach $labels as $label}
{$label}
{/foreach}
Když dostanu email je v něm následující obsah:
{foreach $labels as $label} {$label} {/foreach}
Podle zprávy to vypadá, že řádek
$template->registerFilter(new LatteFilter);
nemá
žádný efekt.
V čem by prosím mohl být problém?
Děkuji
- dakota
- Člen | 148
Použi:
$template->onPrepareFilters[] = callback($this, 'templatePrepareFilters');
alebo vytváraj šablonu spôsobom:
$template = parent::createTemplate();
$template->setFile(...);
výhodou je štandardne zadefinovaný LatteFilter a nejaké premenné a helpery.
Editoval dakota (21. 2. 2011 12:05)