weblog/objectFunctions.js -> modifytime is set to current Date at creation time story/objectFunctions.js -> modifytime is set to current Date at creation time comment/objectFunctions.js -> modifytime is set to current Date at creation time; isonline is set to 1 at creation time; added function isOnline() weblog/type.properties -> two additional subnode-containers: allstories, allcomments weblog/macros.js -> implemented history_macro which renders List of recently modified Objects story/historyview.skin -> will be rendered by the weblog-history macro comment/historyview.skin -> will be rendered by the weblog-history macro weblog/main.skin -> included history.skin story/main.skin -> included history.skin weblog/style.skin -> included "history", "historyStory" and"historyComment" classes weblog/history.skin -> newly created story/macors.js -> title_macro can be rendered as a link; comments_macro renders an invisible anchor-tag before each comment comment/macors.js -> title_macro can be rendered as a link; replies_macro renders an invisible anchor-tag before each comment eliminated renderPrefix() and renderSuffix() documentation.htm -> updated
447 lines
23 KiB
HTML
447 lines
23 KiB
HTML
<html>
|
|
<head>
|
|
<title>Antville Macro Documentation</title>
|
|
<style type="text/css">
|
|
<!--
|
|
|
|
body { font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
font-size: 10pt;
|
|
font-weight: normal;
|
|
color: #000000;
|
|
}
|
|
|
|
// -->
|
|
</style>
|
|
</head>
|
|
<body bgcolor="#ffffff">
|
|
|
|
<h1>Documentation of macros used in Antville</h1>
|
|
|
|
<h2>Table of Contents</h2>
|
|
<ul>
|
|
<li><a href="#general">About skins and macros</a>
|
|
<ul>
|
|
<li><a href="#syntax">Syntax of macros</a></li>
|
|
<li><a href="#params">Macro-parameters</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#all">Macros for all prototypes</a></li>
|
|
<li><a href="#weblog">Macros for weblog</a></li>
|
|
<li><a href="#story">Macros for story</a></li>
|
|
<li><a href="#comment">Macros for comment</a></li>
|
|
</ul>
|
|
|
|
|
|
<h2>About skins and macros</h2>
|
|
|
|
<p>The whole way a weblog is displayed in Antville is determined by "skins". Whenever you create a new weblog, it will start with the default set of skins, but the nice thing with Antville is that you can easily overwrite each of those default skins to give your weblog a totally new look. Think of skins as snippets of HTML-code with special tags called "macros" embedded.</p>
|
|
|
|
<p>The whole set of skins is divided by "prototypes". Nearly everything in Antville belongs to a "prototype", and those prototypes have a number of skins you can use for all objects belonging to these prototyes. I'll give you an example:</p>
|
|
|
|
<p>Whenever you create a story, you actually create a new object of the prototype "story". This new story will be displayed on the frontpage of your weblog if you set it online. And the way this story is displayed is controlled by a skin called "preview" that belongs to the prototype "story". And every change inside the one skin "preview" will change the appearence of all stories on the frontpage (or wherever this skin might be used)!</p>
|
|
|
|
<p>There are some skins that do not belong to a prototype, i.e. the global skin "main" that is used for every page, no matter if frontpage, story detail, form for posting comments or whatever. Think of this skin as the surrounding HTML-code for all your pages. Inside this skin you'll find some special macros like <tt><% response.body %></tt>. These macros refer to parts of a page (head, title, body) that are build by the application on every request.</p>
|
|
<blockquote><i><b>But be careful:</b> if you delete <tt><% response.body %></tt> in the global skin "main" you won't be able to see or edit your weblog anymore (because the whole body of the pages will be generated but not displayed anymore ...)</i></blockquote>
|
|
|
|
<p>In skins you can use a number of "macros". Some of those macros are simple references to content-pieces (like <tt><% story.title %></tt>), some of them are more complex functionalities (i.e. <tt><% weblog.navigation %></tt> actually checks if the current user viewing a page is the owner of the weblog or not and chooses between displaying the navigation for owners or for "normal" users). You do not have to think a lot about this, just bear in mind that some of the macros listed below call other skins that you will have to modify too if you want to give your weblog a whole new layout.</p>
|
|
|
|
<a name="syntax"></a>
|
|
<h3>Syntax of macros</h3>
|
|
<p>All macros that can be used in skins have the following syntax:
|
|
<blockquote><pre><% handler.macro [parameter="value" ...] %></pre></blockquote>
|
|
The term "handler" refers to the type of object this skin is valid for, so i.e. if you have a skin called "preview" for "story", and inside this skin you want to display the title of the story, the appropriate macro would look like this:
|
|
|
|
<blockquote><pre><% story.title %></pre></blockquote>
|
|
This macro will be replaced with the title of the story when the skin "preview" is accessed.</p>
|
|
|
|
<p>Inside the default skins you'll probably find a special handler called <i>this</i>, i.e. in a macro-tag like <tt><% this.title %></tt>. To find out which title will be displayed just look to wich prototype this skin belongs to, so if you found this macro-tag in a skin of "story", you'll know that the tag will be replaced with the title of the story.</p>
|
|
|
|
<a name="params"></a>
|
|
<h3>Macro-parameters</h3>
|
|
<p>Some parameters are mandatory, but most of them are optional. In this documentation, everything in square brackets means it's optional, everything else is mandatory.</p>
|
|
|
|
<p>Nearly every macro has two standard parameters, "prefix" and "suffix", you can use them like this:
|
|
<blockquote><pre><% story.title prefix="<B>" suffix="</B><BR>" %></pre></blockquote></p>
|
|
|
|
<p>Nearly every "piece of content" can easily be switched into "editing mode" with a special parameter, i.e. <% story.title as="editor" %> will display the following:
|
|
|
|
<blockquote><pre><input type="text" name="title" value="[whatever title the story has]" size="20"></pre></blockquote>
|
|
Depending on the type of content you want to switch to edit-mode, this could also appear as a checkbox, a textarea, a password-input and so on. Of course there are parameters (width, height, style, wrap ...) with which you can modify the appearance of the input.</p>
|
|
|
|
<p><blockquote><i>You can only use those parameters that are defined for each macro, everything else you try to use will be ignored. There is no way to nest macros, i.e. something like <% story.title prefix="story.author" %> won't work (instead, it will display "story.author" as the prefix ...)</i></blockquote></p>
|
|
|
|
<a name="all"></a>
|
|
<h2>Macros for all prototypes</h2>
|
|
|
|
The following macros are useable within every prototype, so if you want to place a link inside the text of a story, you just have to type <tt><% story.link to="http://helma.org" %></tt>
|
|
|
|
<p><b>skin</b><br>
|
|
This macro calls another skin for rendering.<br>
|
|
<blockquote><pre><% this.skin name="name of the skin"
|
|
[prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>link</b><br>
|
|
This macro renders a text-link to an external URL or an internal action.<br>
|
|
<blockquote><pre><% this.link to="ext. URL or internal action-name"
|
|
[text="String to appear as link"]
|
|
[prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote>
|
|
If you don't specify a text to appear as link, the macro will display the url instead. If you want to link an image to somewhere else, you should use the image-macro of <i>story</i> or <i>weblog</i> described below.</p>
|
|
|
|
<p><b>input</b><br>
|
|
This macro renders an input-element. Use this macro for those inputs that have no initial value (i.e. in user-registration).<br>
|
|
<blockquote><pre><% this.input type="text|textarea|checkbox|button|password|file"
|
|
name="Name of form-element"
|
|
[prefix="String"]
|
|
[suffix="String"]
|
|
[width="integer"]
|
|
[height="integer"]
|
|
[wrap="off|virtual|physical"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
<a name="weblog"></a>
|
|
<h2>Macros for weblog</h2>
|
|
|
|
<p><b>weblog.title</b><br>
|
|
Displays the title of the weblog<br>
|
|
<blockquote><pre><% weblog.title [prefix="String"]
|
|
[suffix="String"]
|
|
[linkto="ext.URL or action-name title should link to"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.alias</b><br>
|
|
Displays the alias of the weblog<br>
|
|
<blockquote><pre><% weblog.alias [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.tagline</b><br>
|
|
Displays the tagline of the weblog<br>
|
|
<blockquote><pre><% weblog.tagline [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.birthdate</b><br>
|
|
Displays the birthdate of the weblog<br>
|
|
<blockquote><pre><% weblog.birthdate [prefix="String"]
|
|
[suffix="String"]
|
|
[format="format-pattern"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote>
|
|
The default format of this timestamp is "yyyy.MM.dd HH:mm". For a list of valid format-patterns please refer to <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html">http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html</a></p>
|
|
|
|
<p><b>weblog.bgcolor</b><br>
|
|
<b>weblog.textcolor</b><br>
|
|
<b>weblog.titlecolor</b><br>
|
|
<b>weblog.linkcolor</b><br>
|
|
<b>weblog.alinkcolor</b><br>
|
|
<b>weblog.vlinkcolor</b><br>
|
|
These macros display the different colors of the weblog as defined in the preferences (without '#' as prefix!).<br>
|
|
<blockquote><pre><% weblog.bgcolor [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.textfont</b><br>
|
|
<b>weblog.titlefont</b><br>
|
|
Displays the font-specification as defined in the preferences of the weblog<br>
|
|
<blockquote><pre><% weblog.textfont [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.textsize</b><br>
|
|
<b>weblog.titlesize</b><br>
|
|
Displays the fontsize-specification as defined in the preferences of the weblog<br>
|
|
<blockquote><pre><% weblog.textsize [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.lastupdate</b><br>
|
|
Displays the timestamp when weblog was last updated (this timestamp is only updated when a new story is posted!)<br>
|
|
<blockquote><pre><% weblog.lastupdate [prefix="String"]
|
|
[suffix="String"]
|
|
[format="format-pattern"]
|
|
%></pre></blockquote>
|
|
The default format of this timestamp is "yyyy.MM.dd HH:mm". For a list of valid format-patterns please refer to <a href="http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html">http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html</a></p>
|
|
|
|
<p><b>weblog.online</b><br>
|
|
If the weblog is online, this macro displays "yes", otherwise "no". Of course you can call the macro with the parameter as="editor" which will then display a checkbox.<br>
|
|
<blockquote><pre><% weblog.online [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.hasdiscussions</b><br>
|
|
If the discussion-boars of the weblog are enabled, this macro displays "yes", otherwise "no". Of course you can call the macro with the parameter as="editor" which will then display a checkbox.<br>
|
|
<blockquote><pre><% weblog.hasdiscussions [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.showdays</b><br>
|
|
Displays the number of days that are displayed on the frontpage of the weblog.<br>
|
|
<blockquote><pre><% weblog.showdays [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.showarchive</b><br>
|
|
If the archive of the weblog is enabled, this macro displays "yes", otherwise "no". Of course you can call the macro with the parameter as="editor" which will then display a checkbox.<br>
|
|
<blockquote><pre><% weblog.showarchive [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.loginstatus</b><br>
|
|
This macro calls two other skins defined in "membership": if the user is logged in, it calls the skin "statusloggedin", otherwise "statusloggedout". This macro does NOT accept prefix and suffix!<br>
|
|
<blockquote><pre><% weblog.loginstatus %></pre></blockquote></p>
|
|
|
|
<p><b>weblog.navigation</b><br>
|
|
If the current user is the owner of the weblog, this macro calles the skin "adminnavigation", otherwise "usernavigation". This macro does NOT accept prefix and suffix!<br>
|
|
<blockquote><pre><% weblog.navigation %></pre></blockquote></p>
|
|
|
|
<p><b>weblog.storylist</b><br>
|
|
If the weblog contains stories, this macro loops over them and calls the skin "preview" for each story. It refers to the number of days to display defined in preferences. If a story is offline, it will only be displayed if the current user is the owner of the weblog. If this weblog doesn't contain any stories, it calls the skin "welcome". This macro does NOT accept prefix and suffix!<br>
|
|
<blockquote><pre><% weblog.storylist %></pre></blockquote></p>
|
|
|
|
<p><b>weblog.calendar</b><br>
|
|
This macro renders a calendar. It uses the following skins: calendar (the main skin), calendarday (a skin used for rendering a day in the calendar), calendarselday (used for highlighting the selected day), calendarweek (used for displaying a week of the month).<br>
|
|
<blockquote><pre><% weblog.calendar %></pre></blockquote></p>
|
|
|
|
<p><b>weblog.history</b><br>
|
|
This macro renders a chronological list of most recently modified stories and comments. It will render for each listitem the corresponding "historyview" skin. The default number of 5 displayed items can be overridden by passing the argument "show" to this macro.<br>
|
|
<blockquote><pre><% weblog.history [prefix="String"]
|
|
[suffix="String"]
|
|
[show="integer"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.age</b><br>
|
|
This macro calculates the age of the weblog, but only if a birthdate was specified in the preferences. If a format-pattern is given, it displays the formatted birthdate, if the special parameter show="days" is given, it calculates the age of the weblog in days.<br>
|
|
<blockquote><pre><% weblog.age [prefix="String"]
|
|
[suffix="String"]
|
|
[format="format-pattern"]
|
|
[show="days"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>weblog.image</b><br>
|
|
This macro looks for an image with the given name and displays it if found. You can override nearly every parameter, and images also can link to external URLs or internal actions.<br>
|
|
<blockquote><pre><% weblog.image name="imagename"
|
|
[prefix="String"]
|
|
[suffix="String"]
|
|
[width="integer"]
|
|
[height="integer"]
|
|
[alttext="String"]
|
|
[align="HTML-alignment"]
|
|
[valign="HTML-valignment"]
|
|
[border="integer"]
|
|
[linkto="ext.URL or action-name image should link to"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
<a name="story"></a>
|
|
<h2>Macros for story</h2>
|
|
|
|
<p><b>story.title</b><br>
|
|
Displays the title of the story<br>
|
|
<blockquote><pre><% story.title [prefix="String"]
|
|
[suffix="String"]
|
|
[linkto="ext.URL or action-name title should link to"]
|
|
[as="editor" || as="link"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.text</b><br>
|
|
Displays the text of the story. You also can place macros inside the text of a story, i.e. to embed an image or create a link.<br>
|
|
<blockquote><pre><% story.text [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[height="integer"]
|
|
[wrap="off|virtual|physical"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.online</b><br>
|
|
If the story is online, this macro displays "yes", otherwise "no". Of course you can call the macro with the parameter as="editor" which will then display a checkbox.<br>
|
|
<blockquote><pre><% story.online [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.createtime</b><br>
|
|
Displays the timestamp when a story was created. With the optional format-parameter you can modify the display of the createtime<br>
|
|
<blockquote><pre><% story.createtime [prefix="String"]
|
|
[suffix="String"]
|
|
[format="format-pattern"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.editlink</b><br>
|
|
Displays a link for editing this story if the current user is the author of the story<br>
|
|
<blockquote><pre><% story.editlink [prefix="String"]
|
|
[suffix="String"]
|
|
[image="name of image to appear as link"]
|
|
[text="text to appear as link"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.deletelink</b><br>
|
|
Displays a link for deleting the story if the current user is the author of the story<br>
|
|
<blockquote><pre><% story.deletelink [prefix="String"]
|
|
[suffix="String"]
|
|
[image="name of image to appear as link"]
|
|
[text="text to appear as link"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.commentlink</b><br>
|
|
Calls a skin named "commentlink" (if not overruled by parameter "useskin") that contains a link to the form for posting comments to this story - but only if the owner allowed comments on stories in the preferences.<br>
|
|
<blockquote><pre><% story.commentlink [prefix="String"]
|
|
[suffix="String"]
|
|
[useskin="name of skin to use"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.commentcounter</b><br>
|
|
Counts the number of comment-threads of a story and displays it - but only if the owner allowed comments on stories in the preferences.<br>
|
|
<blockquote><pre><% story.commentcounter [prefix="String"]
|
|
[suffix="String"]
|
|
[no="text to appear if no threads found"]
|
|
[one="text to appear if one thread is found"]
|
|
[more="text to appear if more than one thread is found"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
<p><b>story.comments</b><br>
|
|
Loops over threads and displays the toplevel-postings (by calling a "comment"-skin named "toplevel"). This macro is disabled if discussions are disabled in the preferences of the weblog.<br>
|
|
<blockquote><pre><% story.comments [prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.commentform</b><br>
|
|
If the user was blocked, this macro displays nothing. If the user is not logged in, it displays a link to the login-page. If the user is logged in, it displays the form for entering a new posting. This macro does nothing if comments were disabled in the preferences of the weblog.<br>
|
|
<blockquote><pre><% story.commentform [prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>story.image</b><br>
|
|
This macro looks for an image in the image-pool of the weblog with the given name and displays it if found. You can override nearly every parameter, and images also can link to external URLs or internal actions.<br>
|
|
<blockquote><pre><% weblog.image name="imagename"
|
|
[prefix="String"]
|
|
[suffix="String"]
|
|
[width="integer"]
|
|
[height="integer"]
|
|
[alttext="String"]
|
|
[align="HTML-alignment"]
|
|
[valign="HTML-valignment"]
|
|
[border="integer"]
|
|
[linkto="ext.URL or action-name image should link to"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="comment"></a>
|
|
<h2>Macros for comment</h2>
|
|
|
|
<p><b>comment.title</b><br>
|
|
Displays the title of the comment<br>
|
|
<blockquote><pre><% comment.title [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor" || as="link"]
|
|
[width="integer"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>comment.text</b><br>
|
|
Displays the text of the comment. One can also use macros inside a comment-text.<br>
|
|
<blockquote><pre><% comment.text [prefix="String"]
|
|
[suffix="String"]
|
|
[as="editor"]
|
|
[width="integer"]
|
|
[height="integer"]
|
|
[wrap="off|virtual|physical"]
|
|
[style="classname defined in stylesheet"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
<p><b>comment.author</b><br>
|
|
Displays the author of the comment, either as text or as link to the url that the user specified in his/her profile<br>
|
|
<blockquote><pre><% comment.author [prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>comment.createtime</b><br>
|
|
Displays the timestamp when a comment was posted. With the optional format-parameter you can modify the display of the createtime<br>
|
|
<blockquote><pre><% comment.createtime [prefix="String"]
|
|
[suffix="String"]
|
|
[format="format-pattern"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>comment.editlink</b><br>
|
|
Displays a link for editing a comment if the current user is the author of the comment and if discussions are enabled in the preferences of the weblog<br>
|
|
<blockquote><pre><% comment.editlink [prefix="String"]
|
|
[suffix="String"]
|
|
[image="name of image to appear as link"]
|
|
[text="text to appear as link"]
|
|
%></pre></blockquote></p>
|
|
|
|
|
|
<p><b>comment.deletelink</b><br>
|
|
Displays a link for deleting a comment if the current user is the owner of the weblog and discussions are enabled in the preferences<br>
|
|
<blockquote><pre><% comment.deletelink [prefix="String"]
|
|
[suffix="String"]
|
|
[image="name of image to appear as link"]
|
|
[text="text to appear as link"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>comment.replylink</b><br>
|
|
Displays a link for posting a comment to a comment. Only valid for toplevel-postings. This macro does nothing if discussions were disabled in the preferences of the weblog.<br>
|
|
<blockquote><pre><% comment.replylink [prefix="String"]
|
|
[suffix="String"]
|
|
[image="name of image to appear as link"]
|
|
[text="text to appear as link"]
|
|
%></pre></blockquote></p>
|
|
|
|
<p><b>comment.replies</b><br>
|
|
Loops over the replies to a comment and displays them by calling the skin "reply". This macro does nothing if discussions were disabled in the preferences of the weblog.<br>
|
|
<blockquote><pre><% comment.replies [prefix="String"]
|
|
[suffix="String"]
|
|
%></pre></blockquote></p>
|
|
|
|
<hr>
|
|
2001, <a href="mailto:robert.gaggl@orf.at">robert.gaggl@orf.at</a>
|
|
|
|
</body>
|
|
</html>
|