Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Pages: 1
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> <a id=“week”>week</a> <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
Re: Solved: Textpattern tag in javascript
Can you post the html source that it’s outputting?
Piwik Dashboard, Google Analytics Dashboard, Minibar, Article Image Colorpicker, Admin Datepicker, Admin Google Map, Admin Colorpicker
Offline
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> <a id="week">week</a> <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
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
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
Re: Solved: Textpattern tag in javascript
What about using single quotes, like $("#charts").html('<txp:article />')
?
Offline
Re: Solved: Textpattern tag in javascript
@maniqui
the same result
unterminated string literal
http://localhost/
$("#charts").html('<ol>
Offline
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.
Offline
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
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
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
Pages: 1