Have you tried something like: <dtml-var "_['string']"> <dtml-var "_[var or expr (that gets the string) + 'string']"> Goodrichs wrote:
We don't count here until I'm sure I am explaining it correctly ;^)
The line; <dtml-with "_.namespace(imagename='images.hd' + section)">
is where we are building a string that will match the name (or id) of the target image we want to display. The folder has a property called section that has a value of 'mysection'. We are concat'n the value of this property onto the end of the string 'images.hd' which we use to denote a top level image. So the target image we want to display in the folder 'mysection' would be called 'hdmysection', in the top level directory named 'images'
We want to display the image 'images.hdmydirectory'. If I use this tag;
<dtml-var "images.hdmysection">
Something like this as a sting would become: <dtml-var "_['images.hdmysection']"> and if you need to control the behavior of the img attributes: <dtml-var "_['images.hdmysection'].tag(border='0', etc.)">
it works, the image displays. But... if I concatenate two strings (as in the above example) and try to use the result to call the image. Zope objects because Zope knows I'm using strings and not an object reference.
Are you familar with Frontier? We have used Frontier extensively to build large websites. One of the truly great things about Frontier was I could place any image anywhere in a website by using this code;
{imgref ("myimagename")}
and the path to that image would be built on the fly and the html inserted into the page. When I need to choose an image based on the location of the page being rendered I could build the image name on the fly like so;
{imgref ({imagename = "ThisPageTitle()" + "ThisPageId()")})}
The inside macro would expand first creating the correct image name, then the outer macro would expand and insert an image tag pointing to the correct image.
ThisPageTitle = "mypage" andThisPageId = "myid"
{imagename = pageTitle() + pageId())} returns "mypagemyid" which then will execute the macro {imgref ("mypagemyid")} and return the correct image tag.
SO.......... my question is this, "How do I use a string I have constructed on the fly, to reference a Zope path to an object, and tell Zope to insert that object into the web page."
Are you with me?
DAve.
Did I get it? David, tone