Zakázat čisté php v šabloně

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

Lze nějak zakázat čisté PHP <?php … ?> v šabloně, aby byly přístupné jen věci přes Latte.

Potřebuji dát přístup více lidem k šablonám, ale nepotřebuji aby mohli udělat něco jak

<?php
dibi::query('...')
?>

Díky za odp.

Jakub Nerad
Člen | 21
+
0
-

Super funguje, ale nějak až moc. Pokud ten filter registruji, tak mi nefunguje ani Latte. Zobrazí se textově šablona, ani se nenacte @layout.phtml.

edit:

Vyřešeno, nejdříve jsem musel dát removePhp a pak zapnout Latte.

Editoval Jakub Nerad (20. 7. 2010 18:55)

Majkl578
Moderator | 1364
+
0
-

Ukaž jak a kde to registruješ.

Jakub Nerad
Člen | 21
+
0
-

Už mi to běhá, mám to takto

<?php
    class BasePresenter extends NPresenter {

      public function templatePrepareFilters($template) {
        $template->registerFilter('Nette\Templates\NTemplateFilters::removePhp');
        parent::templatePrepareFilters($template); // výchozí Latte
      }
    }
?>

pokud jsem to měl prohozené (removePhp ↔ Latte), „sežralo“ to i php vytvořené Latte filtrem.

nAS
Člen | 277
+
0
-

Akorát mi není moc jasné k čemu to vlastně bude, když jde úplně stejně napsat:

{?
dibi::query('...')
?}
Jakub Nerad
Člen | 21
+
0
-

Jasně to je potřeba taky ošetřit vlastním filtrem, nahradit {?.

hrach
Člen | 1834
+
0
-

jo a potom udělají {if $var = dibi::…)}{/if}
neblazni, tomu nezabranis…:D

Jakub Nerad
Člen | 21
+
0
-

hrach napsal(a):

jo a potom udělají {if $var = dibi::…)}{/if}
neblazni, tomu nezabranis…:D

Ok, vzdávám to :).