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)