Forums / General / Dynamic URL within text block attribute
Lo' F.
Friday 19 November 2010 6:00:21 am
Hi!
How to set a dynamic link to a node/page within a "text block" attribute (.. the footer text of "Template look" class)?
ezurl or eznode don't work in there. If I just give the node id - e.g. <a href="507">, it returns /content/view/full/507 but depending on the page I bowse it changes to something else and can't always find the object.
Because I cannot give the full URL for some other reasons, how can I pass that dynamically?
Thanks a lot!
loredanaebook.it
Romeo Antony
Sunday 21 November 2010 2:59:58 am
Lo' F,
/*
*/
If I am correct you want to setup a dynamic link in text block attribute .
I think you thinks in wrong way.
May be it should be like this
You have objects(suppose this object is of class article) with one of its attribute is of text block.
If you want to set up a dynamic link from one of its textblock attributes, what you do is,
extend the class article with a url datatype attribte, so that for each object you create you can add some URL to that obejct.
So in your template you can use it with a href whenever click on text block attribute. Set it as it your needs. Hope you understand.
Regards
Romeo
Gaetano Giunta
Sunday 21 November 2010 3:20:28 am
I do not think text block attributes support parsing any of the text you put in them, be they links or other.
Simple solution: use an xml block instead of the text block
Convoluted solution: write your own template operator that given a text block only parses the <a href=""> tags in it, looks up the node id of objects and substitutes it with the proper url alias. Then add an override for the template content/datatype/view/eztext.tpl that passes the text block text through this operator of yore instead of through wash( xhtml )|nl2br
Principal Consultant International Business Member of the Community Project Board
Sunday 21 November 2010 3:33:19 am
Lo'F , you may try the the the first option Gaetano suggested simple , change the textblock to xml block attribute.
If you try the 2nd option ,it will be time consuming
you need to create custom template operator.
custom template for eztext.tpl.
Thursday 02 December 2010 6:50:28 am
Thanks Gaetano and Romeo and sorry for my delay in getting back to this topic! Had to give priority to some other issues...
Changing the text block into xml was definitely the most strightforward solution, no doubt, but for this I tried another solution which seems to work after all.
I passed the url to a javascript variable set within the page_footer template
... {literal}<script type="text/javascript">{/literal} {def $link_to_page=fetch('content', 'node', hash('node_id', 507))} {literal}link_to_page={/literal}{$link_to_page.url|ezurl} {literal}</script>{/literal} ...
and then handed it over inside the "footer text" [text block] attribute this way...
... <script> document.write("<a href=" + link_to_page + ">Policy and Privacy</a>"); </script> ...