Forums / General / Remove newline and carriage return in TEXT doesn't work
Anita H
Tuesday 14 July 2009 5:56:52 am
Hi All,I just cannot find the solution. I need to pass a xml_text to a javascript and therefore try to strip special characters:
I do:{def $a = $childsub.data_map.contact.content.output.output_text |strip_tags | xmlwash() |simplify('\n')|nl2br }
Result:
<br /> 50 Park Terrace<br />8001 Christchurch<br />
I also tried:
{def $a = $childsub.data_map.contact.content.output.output_text |strip_tags | xmlwash() |simplify('\n')|nl2br} {set $a = $a | break}
<br /><br /> 50 Park Terrace<br /><br />8001 Christchurch<br /><br />
What I need:
50 Park Terrace<br />8001 Christchurch<br />
How can I achieve that? Desperate for any help. Many thanksAnita
Peter Keung
Tuesday 14 July 2009 11:24:56 pm
Since there's no str_replace() in Exponential (aside from a custom template operator for which there are extensions), you could run it through explode and then implode to remove those line breaks:
{set $a = $a|explode("\n")|implode()}
For your case you might need some of those extra operators too:
{set $a = $a|trim()|nl2br()|explode("\n")|implode()}
http://www.mugo.ca Mugo Web, eZ Partner in Vancouver, Canada
Wednesday 15 July 2009 1:06:11 am
Hi Peter, many thanks. I will try it asap. I installed the extension swark and - in my desperation -did the following:
Exponential:
{def $a = $childsub.data_map.contact.content.output.output_text |strip_tags | xmlwash() |simplify('\n')|simplify('\r')|nl2br}
call to javascript:map.addOverlay(createMarker(...., '{$a | str_replace("\r","") | str_replace("\n","")}' ));
And now it works.However, I prefer your version as then I would not have to install the extension swark and rebuild the ezgenerateautoload which is giving me other headaches, e.g. how to run php command on remote web-hosting server when only having ftp access?
However, many thanks :-)Anita
Wednesday 15 July 2009 1:35:15 am
Hi Peter, perfect! Your solution works very nicely... brgrdsAnita