[Zope] Creating links dynamically
Vital Lobachevsky
tick at web.vi
Tue May 31 12:17:46 EDT 2005
John Poltorak wrote:
> On Tue, May 31, 2005 at 06:23:11PM +0300, Vital Lobachevsky wrote:
>
>>John Poltorak wrote:
>>
>>>I want to provide a set of links on a Zope site dynamically. ie don't want
>>>to hard code a number of links, but would like to load them from an
>>>external source which I can add to independently, but I have no idea as to
>>>how to set about it.
>>>
>>>Any ideas?
>>>
>>>I'd be quite happy to have the links in a text file with one link per
>>>line.
>>
>>1) Create a script that returns a list of links:
>>
>>## Script (Python) "linkList"
>>
>>return [
>> 'link1',
>> ...
>> 'linkN'
>>]
>>
>>2) Use this script on your page. For example,
>>
>><tal:block repeat="link here/linkList">
>> <span tal:replace="structure link" />
>></tal:block>
>
>
> Many thanks for your suggestion.
>
> Is there a worked example of doing this anywhere?
>
> There seem to be quite a few steps involved in trying to get this working
> and I'm no expert in writing python scripts, and it will probably take me
> a couple of days to get this working.
Well, it's really easy. Create 'linkList' (Python Script) in the folder
where you page lives or somewhere higher in folder hierarchy:
## Script (Python) "linkList"
return [
('http://www.google.com/', 'Google'),
('http://www.yahoo.com/', 'Yahoo'),
]
If your page is Page Template, it maybe something like this
<html>
<body>
<h1>Search Engines</h1>
<tal:block repeat="item here/linkList">
<a tal:content="python:item[1]"
tal:attributes="href python:item[0]"></a><br />
</tal:block>
</body>
</html>
If you page is DTML Method, you can do the same using <dtml-in> tag.
More information about the Zope
mailing list