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
+
0
-

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
+
0
-

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)

Bejn
Člen | 17
+
0
-

dakota napsal(a):

$template = parent::createTemplate();
$template->setFile(...);

Tohle je dokonalé! Děkuju.

Lábus
Bronze Partner | 19
+
0
-

Mam stejny problem, ale nechci vytvaret sablonu popsanym zpusobem. Vytvarim totiz sablonu ve tride, ktera nema s presenterem nic spolecneho. Vite nekdo jak zajistit funkcnost LatteFilteru?

Diky

dakota
Člen | 148
+
0
-

Malo by fungovať:

$template = new FileTemplate();
$template->registerFilter(new LatteFilter);
$template->setFile(...);

Treba si premazať cache (asi sa vytvorila ešte pred tým než sa doplnila registrácia filtru).

Editoval dakota (24. 2. 2011 13:38)

Lábus
Bronze Partner | 19
+
0
-

Diky moc, to s cache me nenapadlo.