Autor Zpráva
Petroff
Profil
Používá (kolega) systém CMS a potřeboval vložit do stránky(byla OK) JS tag (HTML jde přes WYSiWYG editor => možný kořen problémů - ale nemyslím že v tomto případě).
Normální krátký javascript:
<script....>IsIE6= /MSIE (5|6)/.test(navigator.userAgent);....; function findLI(n){for(...){....}}.....</script>
Výsledkem jsou tato chyb.hlášení:
 string(156) "Smarty error: [in template:20 line 21]: syntax error: unrecognized tag: findLI(document.getElementById("primary-nav")) (Smarty_Compiler.class.php, line 439)" string(111) "Smarty error: [in template:20 line 21]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 583)" string(344) "Smarty error: [in template:20 line 23]: syntax error: unrecognized tag: for(var m=n.firstChild;m!=null;m=m.nextSibling) if (m.nodeType==1){ if (m.nodeName=="LI") { if (JenIE6) m.style.height="0.8em"; if (JenIE6) m.style.marginTop="-0.15em"; m.onmouseover=function(){this.className+=" hvr" (Smarty_Compiler.class.php, line 439)" string(111) "Smarty error: [in template:20 line 23]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 583)" string(159) "Smarty error: [in template:20 line 29]: syntax error: unrecognized tag: this.className=this.className.replace(" hvr", "") (Smarty_Compiler.class.php, line 439)" string(111) "Smarty error: [in template:20 line 29]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 583)"

Z textu JS na stránce zmizela většina (hlavně všechny závorky "{";až do 1.závorky je kód celý)
Já PHP vůbec nerozumím(proto dotaz=>sem); tedy: Nedá se z toho všeho usoudit na příčinu/nápravu? Dík za každý nápad!
bukaj
Profil
pokud jsem správně pochopil tu chybu, tak ten CMS využívá šablonovací systém Smarty. a Smarty vše v šabloně, co je mezi { a } (není-li určeno jinak) bere jako své povely. imho jsou tři možnosti řešení:
1) určit jiné omezovače. což by ale znamenalo nejspíš podstatný zásah do celé šablony a CMS vůbec.
2) javascript do šablony includovat: {include file="název souboru"}, kde za název souboru do sadit soubor, kde je javascipt umístěn
3) vypsat ho v šabloně pomocí PHP přídáním:
{php}
echo <<<SCRIPT
<script....>IsIE6= /MSIE (5|6)/.test(navigator.userAgent);....; function findLI(n){for(...){....}}.....</script>
SCRIPT;
{/php}
na místo, kde má být skript umístěn

imho se mi zdá nejlepší 2. řešení

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: