Problem s vlastnim helperem a temp

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
acidcliq
Člen | 4
+
0
-

zdravim,
narazil jsem na takovej problemek

v BasePresenteru.php

public function templatePrepareFilters($template){
  parent::templatePrepareFilters($template);
  $template->registerHelper('mena','MyHelpers::mena');
}

v sablone pak {$mena|mena}.

Kdyz smazu temp, tak pri prvnim nacteni stranky je vse v pohode, po dalsim refresh mi vyhodi ladenka
fatal…

Call to undefined method FileTemplate::mena().

Netusi nekdo mi proc to dela?

Editoval acidcliq (15. 3. 2011 13:18)

h4kuna
Backer | 740
+
0
-

Ahoj, definovane to mas dobre.

  1. Jak se prelozi v sablone {$mena|mena} v /temp/*.latte
  2. Zkus zda se bude jinak chovat kdy v metode BasePresenter::beforeRender() pridas
<?php
$this->template->registerHelper('mena','MyHelpers::mena');
?>

a tuto templatePrepareFilters odstran.

bojovyletoun
Člen | 667
+
0
-

Ano, správně je registrovat helpery v beforeRender. Registrovat helper (který je runtime) v OnPrepareFilters je nesmysl, protože helper pak bude dostupný jen při „prvním spuštění“ – výsledek je, jaký jsi napsal (při promazání temp to funguje, jinak ne)

acidcliq
Člen | 4
+
0
-

1.

<?php echo TemplateHelpers::escapeHtml($template->mena($sleva->mena)) ?>

2. vyhazuje fatal i po smazani tempu.

EDIT: tak uz to funguje, nemel jsem v dedene tride v beforeRender parent::beforeRender(), jinak diky za help

Editoval acidcliq (15. 3. 2011 14:44)