Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2009-07-27 00:13:30

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Solved: Textpattern tag in javascript

Hi,

I have a problem with integrating a textpattern tag into a javascript.
The notion is to show dynamicly generated lists in a “div”.


<head>
<script type=“text/javascript”>
$(document).ready(function() {
$(“#month”).click(function() {
$(“#charts”).html(“<txp:article_custom sort=“custom_3 desc” wraptag=“ol” break=“li” limit=“9” section=“article” form=“hitlists” />”);});
$(“#week”).click(function() {
$(“#charts”).html(“<txp:article_custom sort=“custom_4 desc” wraptag=“ol” break=“li” limit=“9” section=“article” form=“hitlists” />”);});
$(“#day”).click(function() {
$(“#charts”).html(“<txp:article_custom sort=“custom_5 desc” wraptag=“ol” break=“li” limit=“9” section=“article” form=“hitlists” />”);});
});
</script>
</head>
<body>
<a id=“month”>month</a>&nbsp;<a id=“week”>week</a>&nbsp;<a id=“day”>day</a>
<br />
<div id=“charts”><txp:article_custom sort=“custom_3 desc” wraptag=“ol” break=“li” limit=“9” section=“article” form=“hitlists” /></div>
</body>

Textpattern is rendering the lists, but the problem is that I got an “unterminated string literal” error, that I can’t avoid with escape characters. If a replace the textpattern tags with strings everything is working fine, so where I have to change the code? Or exists a better solution for this problem?
Thanks in advance …

Andreas

Last edited by whocarez (2009-07-27 14:15:55)

Offline

#2 2009-07-27 05:44:03

MattD
Plugin Author
From: Monterey, California
Registered: 2008-03-21
Posts: 1,254
Website

Re: Solved: Textpattern tag in javascript

Can you post the html source that it’s outputting?


My Plugins

Piwik Dashboard, Google Analytics Dashboard, Minibar, Article Image Colorpicker, Admin Datepicker, Admin Google Map, Admin Colorpicker

Offline

#3 2009-07-27 10:17:52

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Re: Solved: Textpattern tag in javascript

Ok, here it is

<script type="text/javascript">
$(document).ready(function() {
$("#month").click(function() {
$("#charts").html("<ol>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1671">Russland präferiert angeblich keinen der derzeitigen Präsidentschaftskandidaten</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1673">Ministerkabinett kürzt Ausgaben für die Euro-2012</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1679">Melnitschenko schließt nicht aus, dass Pukatsch in die Ukraine gebracht wurde</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1670">Janukowitsch fürchtet Wählerstimmenkauf</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1674">Joseph Biden traf sich mit den aussichtsreichsten Präsidentschaftsanwärtern</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1672">Timoschenko sieht bereits positiven Wachstumstrend</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1667">Regierung lässt Gaspreiserhöhungen prüfen</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1664">Europa verlangt im Austausch für Kredite Subventionsabbau</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1666">Juschtschenko trifft sich mit Joe Biden</a> 

</li>
</ol>");});
$("#week").click(function() {
$("#charts").html("<ol>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1671">Russland präferiert angeblich keinen der derzeitigen Präsidentschaftskandidaten</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1673">Ministerkabinett kürzt Ausgaben für die Euro-2012</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1679">Melnitschenko schließt nicht aus, dass Pukatsch in die Ukraine gebracht wurde</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1670">Janukowitsch fürchtet Wählerstimmenkauf</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1674">Joseph Biden traf sich mit den aussichtsreichsten Präsidentschaftsanwärtern</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1672">Timoschenko sieht bereits positiven Wachstumstrend</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1667">Regierung lässt Gaspreiserhöhungen prüfen</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1664">Europa verlangt im Austausch für Kredite Subventionsabbau</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1666">Juschtschenko trifft sich mit Joe Biden</a> 

</li>
</ol>");});
$("#day").click(function() {
$("#charts").html("<ol>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1685">Neuer diplomatischer Konflikt zwischen Russland und der Ukraine</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=758">Die nächste ukrainische Bank benötigt einen Kredit von der Zentralbank</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1671">Russland präferiert angeblich keinen der derzeitigen Präsidentschaftskandidaten</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1515">Ihor Shdanow: Megakoalition - Argumente dafür und dagegen in den Waagschalen des Vetrauens</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1670">Janukowitsch fürchtet Wählerstimmenkauf</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1683">Businessvereinigung listet Investitionshindernisse in der Ukraine auf</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1684">Die UkrPromBank soll liquidiert werden</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1679">Melnitschenko schließt nicht aus, dass Pukatsch in die Ukraine gebracht wurde</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1053">Die Krise kommt in den Regalen an</a> 

</li>
</ol>");});
});

</script>


</head>


<a id="month">month</a>&nbsp;<a id="week">week</a>&nbsp;<a id="day">day</a>
<br />
<div id="charts"><ol>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1671">Russland präferiert angeblich keinen der derzeitigen Präsidentschaftskandidaten</a> 

</li>

	<li><a rel="bookmark" href="http://localhost/index.php?id=1673">Ministerkabinett kürzt Ausgaben für die Euro-2012</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1679">Melnitschenko schließt nicht aus, dass Pukatsch in die Ukraine gebracht wurde</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1670">Janukowitsch fürchtet Wählerstimmenkauf</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1674">Joseph Biden traf sich mit den aussichtsreichsten Präsidentschaftsanwärtern</a> 


</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1672">Timoschenko sieht bereits positiven Wachstumstrend</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1667">Regierung lässt Gaspreiserhöhungen prüfen</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1664">Europa verlangt im Austausch für Kredite Subventionsabbau</a> 

</li>
	<li><a rel="bookmark" href="http://localhost/index.php?id=1666">Juschtschenko trifft sich mit Joe Biden</a> 


</li>
</ol></div>

I think the problem lies in the double quotes …

 unterminated string literal
$("#charts").html("<ol>

any idea?

Offline

#4 2009-07-27 10:40:32

ruud
Developer Emeritus
From: a galaxy far far away
Registered: 2006-06-04
Posts: 5,068
Website

Re: Solved: Textpattern tag in javascript

replace

<txp:article_custom sort="custom_3 desc" wraptag="ol" break="li" limit="9" section="article" form="hitlists" />

with:

<txp:php>echo str_replace('"', '\"', article_custom(array(
  'sort'=>'custom_3 desc',
  'wraptag'=>'ol',
  'break'=>'li',
  'limit'=>'9',
  'section'=>'article',
  'form'=>'hitlists'
)));</txp:php>

And similar for the other TXP tags you have there.

Offline

#5 2009-07-27 11:13:53

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Re: Solved: Textpattern tag in javascript

Ruud, I changed it like you proposed and the “double quotes” are now escaped, but I got the same error.

<script type="text/javascript">
$(document).ready(function() {
$("#month").click(function() {
$("#charts").html("<ol>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1671\">Russland präferiert angeblich keinen der derzeitigen Präsidentschaftskandidaten</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1673\">Ministerkabinett kürzt Ausgaben für die Euro-2012</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1679\">Melnitschenko schließt nicht aus, dass Pukatsch in die Ukraine gebracht wurde</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1670\">Janukowitsch fürchtet Wählerstimmenkauf</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1674\">Joseph Biden traf sich mit den aussichtsreichsten Präsidentschaftsanwärtern</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1672\">Timoschenko sieht bereits positiven Wachstumstrend</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1667\">Regierung lässt Gaspreiserhöhungen prüfen</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1664\">Europa verlangt im Austausch für Kredite Subventionsabbau</a> 

</li>
	<li><a rel=\"bookmark\" href=\"http://localhost/index.php?id=1666\">Juschtschenko trifft sich mit Joe Biden</a> 

</li>
</ol>
");});

[...]

The following error

JavaScript - http://localhost/
Inline script compilation
Syntax error while loading: line 4 of inline script at http://localhost/ :
Expected statement
$("#charts").html("<ol>
-----------------------^

Offline

#6 2009-07-27 11:16:42

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: Solved: Textpattern tag in javascript

What about using single quotes, like $("#charts").html('<txp:article />')?


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

#7 2009-07-27 11:25:52

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Re: Solved: Textpattern tag in javascript

@maniqui
the same result

unterminated string literal
http://localhost/
$("#charts").html('<ol>

Offline

#8 2009-07-27 11:45:29

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: Solved: Textpattern tag in javascript

A quick search on Google shows that the problems are new lines in output code. In fact,

Expected statement
$("#charts").html("<ol>
-----------------------^

seems pretty clear about it.

Maybe, a quick and dirty solution (to be tried and be refined) is to removed the wraptag and break attributes and add the “ol” and “li” manually (the “ol”, wrapping the txp article tag, and the “li” inside the form). Be sure to avoid any new line.


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

#9 2009-07-27 11:46:00

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Re: Solved: Textpattern tag in javascript

There are not only “double quotes” to escape. The list has also some “ampersands”.

to replace both, the “double quotes” and the “ampersands” I transformed the code like that, but somewhere is still an error

<txp:php>
$string=str_replace('"', '\"', article_custom(array(
  'sort'=>'custom_3 desc',
  'wraptag'=>'ol',
  'break'=>'li',
  'limit'=>'9',
  'section'=>'artikel',
  'form'=>'hitlisten'
)));
echo str_replace('&', '\&', $string);</txp:php>

Somehow where the ampersands (#160;) not visible in my code posting … don’t know why.
 

Last edited by whocarez (2009-07-27 12:09:10)

Offline

#10 2009-07-27 12:38:46

ruud
Developer Emeritus
From: a galaxy far far away
Registered: 2006-06-04
Posts: 5,068
Website

Re: Solved: Textpattern tag in javascript

Try this (line breaks have to be escaped as well):

<txp:php>echo str_replace(array('"', '&', "\n"), array('\"', '\&', "\\\n"), article_custom(array(
  'sort'=>'custom_3 desc',
  'wraptag'=>'ol',
  'break'=>'li',
  'limit'=>'9',
  'section'=>'article',
  'form'=>'hitlists'
)));</txp:php>

Offline

#11 2009-07-27 13:47:13

whocarez
Plugin Author
From: Germany/Ukraine
Registered: 2007-10-08
Posts: 305
Website GitHub Twitter

Re: Solved: Textpattern tag in javascript

@ruud

there were not only line breaks :-)
now I escaped every special character from http://www.w3schools.com/jS/js_special_characters.asp
the following code made it:

<txp:php>echo str_replace(array("'", '"', '&', "\r", "\t", "\b", "\f", "\n"), array("\'", '\"', '\&', "\\\r", "\\\t", "\\\b", "\\\f", "\\\n"), article_custom(array(
  'sort'=>'custom_3 desc',
  'wraptag'=>'ol',
  'break'=>'li',
  'limit'=>'9',
  'section'=>'article',
  'form'=>'hitlists'
)));</txp:php>

Thanks!

Offline

Board footer

Powered by FluxBB