Ruzne generovani stejnych sablon v CurlyBracket­sFilter

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

Zdravim,

mam aplikaci ktera vyuziva ajax a (pro zjednoduseni vysvetleni problemu) vyuziva tri sablonovaci soubory. Jeden pro layout, druhy pro content a ve tretim je formular. V pripade ze se vymaze cache sablon a da na strance s formularem obnovit, vygeneruji se soubory spravne. V pripade ze se nejprve spusti uvodni stranka a az pote se prejde na formular, tak nefunguje ajax, nebot se spatne vygeneruji cache sablon.

Spravne vygenerovana cache souboru content (pri prvnim vstupu pres formular):

<?php //netteCache[01]000164a:2:{s:4:"time";s:21:"0.81579400 1236849662";s:2:"df";a:1:{s:80:"C:\....content.phtml";i:1236684011;}}?><?php
// template C:\....content.phtml
?><?php $_cb = CurlyBracketsFilter::initState($template) ?><?php
if (SnippetHelper::$outputAllowed) {
?><div id="advanced-content">

Spatne vygenerovana cache souboru content (pri prvnim vstupu na uvodni stranku):

<?php //netteCache[01]000164a:2:{s:4:"time";s:21:"0.81189000 1236849606";s:2:"df";a:1:{s:80:"C:\.....content.phtml";i:1236684011;}}?><?php
// template C:\.....content.phtml
?><?php $_cb = CurlyBracketsFilter::initState($template) ?><?php
if (SnippetHelper::$outputAllowed) {
?><?php $_cb = CurlyBracketsFilter::initState($template) ?><?php
if (SnippetHelper::$outputAllowed) {
?><div id="advanced-content">

Takze to z nepochopitelnych duvodu zdvojuje podminku, zaroven stejne tak zdvojuje vsechny escape sekvence:

spravne uvnitr content.phtml:

<script type="text/javascript"><?php $_cb->escape = "escapeJs" ?>
structure.hide_submenu();
<?php $_cb->escape = "escape" ?></script>

spatne uvnitr content.phtml:

<script type="text/javascript"><?php $_cb->escape = "escapeJs" ?><?php $_cb->escape = "escapeJs" ?>
structure.hide_submenu();
<?php $_cb->escape = "escape" ?><?php $_cb->escape = "escape" ?></script>`

Stejne tak to zdvoji

?><?php $_cb = CurlyBracketsFilter::initState($template) ?><?php
if (SnippetHelper::$outputAllowed) {

v souboru layout.phtml

Sablona z formularem je stejna.

Zdroj layout.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	.....
{snippet content}
<div id="content">
 <div class="centered-container">
   @{!$viewContent->render()}
  </div>
</div>
{/snippet}
        .......
</html>

Zdroj content.phtml:

....
@{?$form->render()}
....

Vše mi vede na bug v CurlyBrackets, ale to je pro mě už vyšší dívčí :-)
Díky za jakékoliv podněty.

Nette revize 222.

Apache/2.2.11 (Win32) mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9

nAS
Člen | 277
+
0
-

Pravděpodobně při tom požadavku na úvodní stránku registruješ filtr CurlyBrackets 2×.

zdvori
Člen | 10
+
0
-

nAS napsal(a):

Pravděpodobně při tom požadavku na úvodní stránku registruješ filtr CurlyBrackets 2×.

A presne tim to bylo :-). Diky.

PetrP
Člen | 587
+
0
-

nAS napsal(a):

Pravděpodobně při tom požadavku na úvodní stránku registruješ filtr CurlyBrackets 2×.

Nemělo by mě na to nette nějak upozornit? Nebo je někdy potřeba registrovat nějaký filtr 2krát?