[PHPTAL] javascript code messed up

2009-09-02 Thread GRolf
I'm using a tal:block fill-slot=script to fill my macro template with
javascript code. However, all  are converted to $lt;, which (seems
to) cause an error in a for loop

for (i=0; i  myarray.lenght; i++) {
 ...
}

is converted to

for (i=0; i lt; myarray.lenght; i++) {
 ...
}

and I get an error at that line.



Any way to enforce phptal to put the content from the tal:block to
be passed as text ?

I tried specifying tal:block define-slot=structure script, but
that doesn't work...




___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] javascript code messed up

2009-09-02 Thread Kornel Lesiński

On 02-09-2009 at 14:12:39 Tjerk Meesters tjerk.meest...@gmail.com wrote:


Start your script with !-- and end with //--


You must *not* do that in XHTML, because in XHTML this may actually  
comment out the script. XHTML doesn't have HTML's magic treatment of  
script and comments in it.


--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] javascript code messed up

2009-09-02 Thread Kornel Lesiński

On 02-09-2009 at 14:04:15 GRolf ger...@pictureparking.com wrote:


I'm using a tal:block fill-slot=script to fill my macro template with
javascript code. However, all  are converted to $lt;, which (seems
to) cause an error in a for loop

for (i=0; i  myarray.lenght; i++) {
 ...
}

is converted to

for (i=0; i lt; myarray.lenght; i++) {
 ...
}

and I get an error at that line.


Apparently you're using text/html mode. Do you use HTML 5 output mode or  
XHTML?



XHTML requires  to be escaped as lt; (otherwise it would be ill-formed  
start of a tag).


HTML requires the opposite - it has hardcoded rule that script content  
is CDATA where entities aren't interpreted.




Any way to enforce phptal to put the content from the tal:block to
be passed as text ?


Strictly speaking it is passed as text, and text in markup has to be  
escaped.


Try wrapping script in fill-slot in /*![CDATA[*/ … /*]]*/. That is a  
workaround for XHTML served as HTML.


--
regards, Kornel

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re[2]: [PHPTAL] javascript code messed up

2009-09-02 Thread GRolf

sorry, I overlooked your answer here.

I was using PHPTal in default output mode, I was not specifying
anything. I'm now specifying
$phpTal-setOutputMode(PHPTAL::XHTML);

My templates have doctype xhtml 1.0


Adding the /*![CDATA[*/ … /*]]*/ works fine (adding !-- -- too, at
least in FF)


thx!



 On 02-09-2009 at 14:04:15 GRolf ger...@pictureparking.com wrote:

 I'm using a tal:block fill-slot=script to fill my macro template with
 javascript code. However, all  are converted to $lt;, which (seems
 to) cause an error in a for loop

 for (i=0; i  myarray.lenght; i++) {
  ...
 }

 is converted to

 for (i=0; i lt; myarray.lenght; i++) {
  ...
 }

 and I get an error at that line.

 Apparently you're using text/html mode. Do you use HTML 5 output mode or
 XHTML?


 XHTML requires  to be escaped as lt; (otherwise it would be ill-formed
 start of a tag).

 HTML requires the opposite - it has hardcoded rule that script content
 is CDATA where entities aren't interpreted.


 Any way to enforce phptal to put the content from the tal:block to
 be passed as text ?

 Strictly speaking it is passed as text, and text in markup has to be  
 escaped.

 Try wrapping script in fill-slot in /*![CDATA[*/ … /*]]*/. That is a
 workaround for XHTML served as HTML.



___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal


Re: [PHPTAL] javascript code messed up

2009-09-02 Thread Yannick Dirou

GRolf a écrit :

what solution would you propose then ?
  

IMHO javascript has nothing to do in (X)HTML,

use external file!

ie :
script type=text/javascript src=javascript.js/script

___
PHPTAL mailing list
PHPTAL@lists.motion-twin.com
http://lists.motion-twin.com/mailman/listinfo/phptal