<dc:date>${config.now.dc}</dc:date>
<items>
<rdf:Seq>
- <list articles as i>
+ <list articles as i>
<rdf:li rdf:resource="${config["Producer.PublicationHost"]}${config.docRoot}${i.publish_path}${i.id}.shtml" />
</list>
</rdf:Seq>
</items>
</channel>
- <list articles as i>
+ <list articles as i>
<item rdf:about="${config["Producer.ProductionHost"]}${config.docRoot}${i.publish_path}${i.id}.shtml">
<title>${i.title}</title>
<link>${config["Producer.ProductionHost"]}${config.docRoot}${i.publish_path}${i.id}.shtml</link>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
+ <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
<title>${config["Mir.Name"]} | ${article.title}</title>
- <meta name="keywords" content="indymedia,imc">
- <meta name="description" content="indymedia,imc">
- <meta http-equiv="expires" content="599">
- <meta http-equiv="pragma" content="no-cache">
+ <meta name="keywords" content="indymedia,imc">
+ <meta name="description" content="indymedia,imc">
+ <meta http-equiv="expires" content="599">
+ <meta http-equiv="pragma" content="no-cache">
<if article.to_media_images>
<meta name="keywords" content="images"></meta>
</if>
<if article.to_media_other>
<meta name="keywords" content="other"></meta>
</if>
- <style type="text/css">
- body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
- {font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
- a {text-decoration:none;}
- #searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
- #searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
- #searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
- </style>
+ <style type="text/css">
+ body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
+ {font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
+ a {text-decoration:none;}
+ #searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
+ #searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
+ #searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
+ </style>
<script language="javascript">
- function addToNewsletter(id){
- var previousValue=getCookie("myNewsletter");
- document.cookie="myNewsletter="+previousValue+","+id + ";path=/";
- alert("Added article id to cookie!");
- }
-
- function clearNewsletter(){
+ function addToNewsletter(id){
+ var previousValue=getCookie("myNewsletter");
+ document.cookie="myNewsletter="+previousValue+","+id + ";path=/";
+ alert("Added article id to cookie!");
+ }
+
+ function clearNewsletter(){
document.cookie="myNewsletter= ;path=/";
alert("newsletter erased!");
}
- function getNewsletter(){
- var cookieValue=getCookie("myNewsletter");
- if (document.images)
- location.replace('${config["Producer.OpenAction"]}?do=getpdf&id='+cookieValue+'&forIE=.pdf');
- else
- location.href = '${config["Producer.OpenAction"]}?do=getpdf&id='+cookieValue+'&forIE=.pdf';
- }
-
- function getCookie(name){
-
- var cookies = document.cookie;
+ function getNewsletter(){
+ var cookieValue=getCookie("myNewsletter");
+ if (document.images)
+ location.replace('${config["Producer.OpenAction"]}?do=getpdf&id='+cookieValue+'&forIE=.pdf');
+ else
+ location.href = '${config["Producer.OpenAction"]}?do=getpdf&id='+cookieValue+'&forIE=.pdf';
+ }
+
+ function getCookie(name){
+
+ var cookies = document.cookie;
- if (cookies.indexOf(name) != -1){
- var startpos = cookies.indexOf(name)+name.length+1;
- var endpos = cookies.indexOf(";",startpos)-1;
- if (endpos == -2) endpos = cookies.length;
- return unescape(cookies.substring(startpos,endpos));
- }
- else{
- return false; // the cookie couldn't be found! it was never set before, or it expired.
- }
- }
+ if (cookies.indexOf(name) != -1){
+ var startpos = cookies.indexOf(name)+name.length+1;
+ var endpos = cookies.indexOf(";",startpos)-1;
+ if (endpos == -2) endpos = cookies.length;
+ return unescape(cookies.substring(startpos,endpos));
+ }
+ else{
+ return false; // the cookie couldn't be found! it was never set before, or it expired.
+ }
+ }
</script>
<body bgcolor="#dddddd" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" link="#003399" alink="#cc0033" vlink="#660033" >
<table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td valign="top">
- <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="../../"><img src="../../../img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
- </tr>
- </table>
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="../../"> <font size="-1" color="#dddddd"><b>${lang("general.start")}</b></font></a></td>
- </tr>
- </table>
- <br>
-
- <!--#include virtual="../../navigation.inc" -->
-
- <table cellpadding="6" cellspacing="0" border="0" width="100%"><tr><td>
- </td></tr></table>
- </td>
- <td valign="top" width="100%">
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033"><tr><td>
-
- <font color="#dddddd" size="-1"><b>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
- </b></font>
- </td></tr></table>
- <table cellpadding="30" cellspacing="0" border="0" width="80%"><tr><td>
- <br>
- <h2>${article.title}</h2>
-
- <p><i><font size="-1">${article.creator}, ${article.creationdate.formatted["dd.MM.yyyy HH:mm"]}</font></i></p>
- <br>
- <p>${article.description_parsed}</p>
- <!-- media -->
- <list article.to_media_audio as media>
- <p>
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}
- </a>
- </p>
- </list>
- <list article.to_media_video as media>
- <p>
- <img src="../../../img/${media["big_icon"]}" border="0" alt="">
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
- </p>
- </list>
- <list article.to_media_other as media>
- <p>
- <img src="../../../img/${media["big_icon"]}" border="0" alt="">
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
- </p>
- </list>
-
- <list article.to_media_images as image>
- <p>
- <img src="${image["publish_server"]}${image["publish_path"]}"
- border="0" width="${image["img_width"]}"
- height="${image["img_height"]}" alt="${image["title"]}">
- <br><i>${image["title"]}</i>
- </p>
- </list>
+ <tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="../../"><img src="../../../img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
+ </tr>
+ </table>
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="../../"> <font size="-1" color="#dddddd"><b>${lang("general.start")}</b></font></a></td>
+ </tr>
+ </table>
+ <br>
+
+ <!--#include virtual="../../navigation.inc" -->
+
+ <table cellpadding="6" cellspacing="0" border="0" width="100%"><tr><td>
+ </td></tr></table>
+ </td>
+ <td valign="top" width="100%">
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033"><tr><td>
+
+ <font color="#dddddd" size="-1"><b>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
+ </b></font>
+ </td></tr></table>
+ <table cellpadding="30" cellspacing="0" border="0" width="80%"><tr><td>
+ <br>
+ <h2>${article.title}</h2>
+
+ <p><i><font size="-1">${article.creator}, ${article.creationdate.formatted["dd.MM.yyyy HH:mm"]}</font></i></p>
+ <br>
+ <p>${article.description_parsed}</p>
+ <!-- media -->
+ <list article.to_media_audio as media>
+ <p>
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}
+ </a>
+ </p>
+ </list>
+ <list article.to_media_video as media>
+ <p>
+ <img src="../../../img/${media["big_icon"]}" border="0" alt="">
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
+ </p>
+ </list>
+ <list article.to_media_other as media>
+ <p>
+ <img src="../../../img/${media["big_icon"]}" border="0" alt="">
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
+ </p>
+ </list>
+
+ <list article.to_media_images as image>
+ <p>
+ <img src="${image["publish_server"]}${image["publish_path"]}"
+ border="0" width="${image["img_width"]}"
+ height="${image["img_height"]}" alt="${image["title"]}">
+ <br><i>${image["title"]}</i>
+ </p>
+ </list>
- <br>
- <p><font size="-1">${article.content_data_parsed}</font></p>
- <br>
- <if article.creator_main_url || article.creator_email>
- <p>
- <font size="-1">
- <if article.creator_email>
- <img src="../../../img/mail_small.gif" width="12" height="10" border="0" alt="-"> ${lang("article.email.prefix")}: <a href="mailto:${article.creator_email}">${article.creator_email}</a><br>
- </if>
- <if article.creator_main_url>
- <img src="../../../img/link_small.gif" width="12" height="10" border="0" alt=""> ${lang("article.homepage.prefix")}: <a href="${article.creator_main_url}" target="extern">${article.creator_main_url}</a><br>
- </if>
- </font>
- </p>
- </if>
- <br>
- <br>
- <br>
- <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
+ <br>
+ <p><font size="-1">${article.content_data_parsed}</font></p>
+ <br>
+ <if article.creator_main_url || article.creator_email>
+ <p>
+ <font size="-1">
+ <if article.creator_email>
+ <img src="../../../img/mail_small.gif" width="12" height="10" border="0" alt="-"> ${lang("article.email.prefix")}: <a href="mailto:${article.creator_email}">${article.creator_email}</a><br>
+ </if>
+ <if article.creator_main_url>
+ <img src="../../../img/link_small.gif" width="12" height="10" border="0" alt=""> ${lang("article.homepage.prefix")}: <a href="${article.creator_main_url}" target="extern">${article.creator_main_url}</a><br>
+ </if>
+ </font>
+ </p>
+ </if>
+ <br>
+ <br>
+ <br>
+ <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
<a href="${config["Producer.OpenAction"]}?do=getpdf&id=${article.id}&forIE=.pdf">
<font color="#dddddd" size="+1"><b>${lang("article.get_as_pdf")}>></b></font></a>
- </td></tr></table>
+ </td></tr></table>
<br>
- <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
+ <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
<a href="javascript:addToNewsletter(${article.id})">
<font color="#dddddd" size="+1"><b>${lang("article.add_to_pdf")}>></b></font></a>
- </td></tr></table>
+ </td></tr></table>
<br>
- <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
+ <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
<a href="javascript:getNewsletter()">
<font color="#dddddd" size="+1"><b>${lang("article.newsletter_checkout")}>></b></font></a>
- </td></tr></table>
+ </td></tr></table>
<br>
- <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
+ <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
<a href="${config["Producer.OpenAction"]}?do=mail&mail_aid=${article.id}&mail_language=${language.code}">
<font color="#dddddd" size="+1"><b>${lang("article.send_as_email")}>></b></font></a>
- </td></tr></table>
+ </td></tr></table>
<br>
- <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
- <a href="${config["Producer.OpenAction"]}?do=addcomment&aid=${article.id}&language=${language.code}">
+ <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
+ <a href="${config["Producer.OpenAction"]}?do=addcomment&aid=${article.id}&language=${language.code}">
<font color="#dddddd" size="+1"><b>${lang("article.addcomment")}>></b></font></a>
- </td></tr></table>
- <if article.to_comments>
- <table border="0" cellpadding="10" cellspacing="0" width="100%"><tr><td bgcolor="#99cccc">
- <list article.to_comments as c>
- <br>
- <font size="+1"><b>${utility.encodeHTML(c.title)}</b></font><br>
- <i>${c.creationdate.formatted["dd.MM.yyyy HH:mm"]}</i><br>
+ </td></tr></table>
+ <if article.to_comments>
+ <table border="0" cellpadding="10" cellspacing="0" width="100%"><tr><td bgcolor="#99cccc">
+ <list article.to_comments as c>
+ <br>
+ <font size="+1"><b>${utility.encodeHTML(c.title)}</b></font><br>
+ <i>${c.creationdate.formatted["dd.MM.yyyy HH:mm"]}</i><br>
- <list c.to_media_audio as media>
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}
- </a>
- </list>
- <list c.to_media_video as media>
- <img src="../../../img/${media["big_icon"]}" border="0" alt="">
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
- </list>
- <list c.to_media_other as media>
- <img src="../../../img/${media["big_icon"]}" border="0" alt="">
- <a href="${media["publish_server"]}${media["publish_path"]}">
- ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
- </list>
-
- <list c.to_media_images as image>
- <img src="${image["publish_server"]}${image["publish_path"]}"
- border="0" width="${image["img_width"]}"
- height="${image["img_height"]}" alt="${image["title"]}">
- <br><i>${image["title"]}</i>
- </list>
+ <list c.to_media_audio as media>
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}
+ </a>
+ </list>
+ <list c.to_media_video as media>
+ <img src="../../../img/${media["big_icon"]}" border="0" alt="">
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
+ </list>
+ <list c.to_media_other as media>
+ <img src="../../../img/${media["big_icon"]}" border="0" alt="">
+ <a href="${media["publish_server"]}${media["publish_path"]}">
+ ${media["title"]} - ${media["media_descr"]} ${media["human_readable_size"]}</a>
+ </list>
+
+ <list c.to_media_images as image>
+ <img src="${image["publish_server"]}${image["publish_path"]}"
+ border="0" width="${image["img_width"]}"
+ height="${image["img_height"]}" alt="${image["title"]}">
+ <br><i>${image["title"]}</i>
+ </list>
- ${c.description_parsed}
- <if c.email || c.main_url || c.address || c.phone || c.creator>
- <i>
- <if c.creator>
- <br>
- ${utility.encodeHTML(c.creator)}>
- </if>
- <if c.email>
- <br>
- <img src="../../../img/mail_small.gif" width="12" height="10" border="0" alt="">${lang("article.email.prefix")}: <a href="mailto:${utility.encodeHTML(c.email)}">${utility.encodeHTML(c.email)}</a>
- </if>
- <if c.main_url>
- <br>
- <img src="../../../img/link_small.gif" width="12" height="10" border="0" alt="">${lang("article.homepage.prefix")}: <a href="${utility.encodeHTML(c.main_url)}" target="_blank">${utility.encodeHTML(c.main_url)}</a>
- </if>
- </i>
- <br>
- </if>
- </list>
- </td></tr></table>
- </if>
+ ${c.description_parsed}
+ <if c.email || c.main_url || c.address || c.phone || c.creator>
+ <i>
+ <if c.creator>
+ <br>
+ ${utility.encodeHTML(c.creator)}>
+ </if>
+ <if c.email>
+ <br>
+ <img src="../../../img/mail_small.gif" width="12" height="10" border="0" alt="">${lang("article.email.prefix")}: <a href="mailto:${utility.encodeHTML(c.email)}">${utility.encodeHTML(c.email)}</a>
+ </if>
+ <if c.main_url>
+ <br>
+ <img src="../../../img/link_small.gif" width="12" height="10" border="0" alt="">${lang("article.homepage.prefix")}: <a href="${utility.encodeHTML(c.main_url)}" target="_blank">${utility.encodeHTML(c.main_url)}</a>
+ </if>
+ </i>
+ <br>
+ </if>
+ </list>
+ </td></tr></table>
+ </if>
</td></tr></table>
- </td>
- </tr>
+ </td>
+ </tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
+ <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
<title>${config["Mir.Name"]} | ${lang("featurearchive.title")}</title>
- <meta name="keywords" content="${lang("general.keywords")}">
- <meta name="description" content="${lang("featurearchive.title")}">
- <meta name="dc:title" content="${lang("featurearchive.title")}">
- <meta name="dc:creator" content="">
- <meta name="dc:subject" content="${lang("featurearchive.title")}">
- <meta name="dc:description" content="${lang("featurearchive.title")}">
- <meta name="dc:publisher" content="">
- <meta name="dc:date" content="${config.now.dc}">
- <meta name="dc:language" content="${language.code}">
- <meta name="dc:coverage" content="">
- <meta name="dc:rights" content="">
- <meta http-equiv="expires" content="599">
- <meta http-equiv="pragma" content="no-cache">
- <style type="text/css">
+ <meta name="keywords" content="${lang("general.keywords")}">
+ <meta name="description" content="${lang("featurearchive.title")}">
+ <meta name="dc:title" content="${lang("featurearchive.title")}">
+ <meta name="dc:creator" content="">
+ <meta name="dc:subject" content="${lang("featurearchive.title")}">
+ <meta name="dc:description" content="${lang("featurearchive.title")}">
+ <meta name="dc:publisher" content="">
+ <meta name="dc:date" content="${config.now.dc}">
+ <meta name="dc:language" content="${language.code}">
+ <meta name="dc:coverage" content="">
+ <meta name="dc:rights" content="">
+ <meta http-equiv="expires" content="599">
+ <meta http-equiv="pragma" content="no-cache">
+ <style type="text/css">
body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
{font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
a {text-decoration:none;}
#searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
#searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
#searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
- </style>
+ </style>
</head>
-
+
<body bgcolor="#dddddd" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" link="#003399" alink="#cc0033" vlink="#660033" >
<table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td valign="top">
- <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
- </tr>
- </table>
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
- </tr>
- </table>
- <br>
- <!--#include virtual="../navigation.inc" -->
- </td>
- <td valign="top" width="100%">
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td>
-
- <font color="#dddddd" size="-1"><b>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
- </b></font>
- </td>
- </tr>
- </table>
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
- <tr>
- <td> </td>
- <td width="100%">
- <br>
- <br>
- <font color="#cc0033" size="+2"><b>${lang("featurearchive.title")}</b></font>
- <br>
- <br>
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- </td>
- <td>
-
- </td>
- </tr>
- <tr>
- <td> </td>
- <td>
- <br>
- <!--- articles --->
- <list articles as i>
- <p><font size="+1">
+ <tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
+ </tr>
+ </table>
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
+ </tr>
+ </table>
+ <br>
+ <!--#include virtual="../navigation.inc" -->
+ </td>
+ <td valign="top" width="100%">
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td>
+
+ <font color="#dddddd" size="-1"><b>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
+ </b></font>
+ </td>
+ </tr>
+ </table>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td> </td>
+ <td width="100%">
+ <br>
+ <br>
+ <font color="#cc0033" size="+2"><b>${lang("featurearchive.title")}</b></font>
+ <br>
+ <br>
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ <br>
+ <!--- articles --->
+ <list articles as i>
+ <p><font size="+1">
<a href="${config["Producer.DocRoot"]}/${language.code}/${i.date.formatted["yyyy'/'MM"]}/${i.id}.shtml"><b>${i.title}</b></a>
- </font><br>
- <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
- <p><font size="-1">
- <if i.to_media_audio >
- <img align="left" vspace="4" hspace="8"
+ </font><br>
+ <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
+ <p><font size="-1">
+ <if i.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
src="${config["Producer.DocRoot"]}/img/${i.to_media_audio[0]["big_icon"]}">
- </if>
- <if i.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
- </if>
- <if i.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
- </if>
- <if i.to_media_images >
- <img align="left" vspace="4" hspace="8"
+ </if>
+ <if i.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
+ </if>
+ <if i.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
+ </if>
+ <if i.to_media_images >
+ <img align="left" vspace="4" hspace="8"
src="${i.to_media_images[0]["icon_path"]}"
width="${i.to_media_images[0]["icon_width"]}"
height="${i.to_media_images[0]["icon_height"]}"
border=0 alt="${i.to_media_images[0]["title"]}">
- </if>
- ${i.description_parsed}
- <br clear="all">
- <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
- </font></p>
-
- <br>
- </list>
- <!--- /articles --->
- <if batch.current.index!=batch.first.index>
- <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
- </if>
- <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
- |
- </if>
- <if batch.next>
- <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
- </if>
-
-
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- <br>
- ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
- <!--#include virtual="${docPrefix}nav${docSuffix}" -->
-
- </td>
- <td>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
+ </if>
+ ${i.description_parsed}
+ <br clear="all">
+ <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
+ </font></p>
+
+ <br>
+ </list>
+ <!--- /articles --->
+ <if batch.current.index!=batch.first.index>
+ <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
+ </if>
+ <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
+ |
+ </if>
+ <if batch.next>
+ <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
+ </if>
+
+
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ <br>
+ ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
+ <!--#include virtual="${docPrefix}nav${docSuffix}" -->
+
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
<!-- the rest -->
- <tr><td colspan="2"> </td></tr>
+ <tr><td colspan="2"> </td></tr>
</table>
</body>
</html>
which do the same thing in XSL:FO -->
<xsl:template match="br">
- <fo:block />
+ <fo:block />
</xsl:template>
<xsl:template match="@*|*|processing-instruction()|comment()">
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#aaaaaa"><tr><td>
- <b>${lang("navigation.languages")}</b>
- <list languages as l>
- <br><a href="${config["Producer.DocRoot"]}/${l.code}/">${l.name}</a>
- </list>
- </td></tr></table>
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#aaaaaa"><tr><td>
+ <b>${lang("navigation.languages")}</b>
+ <list languages as l>
+ <br><a href="${config["Producer.DocRoot"]}/${l.code}/">${l.name}</a>
+ </list>
+ </td></tr></table>
- <br>
- <form action="${config["Producer.OpenAction"]}" method="post">
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#aaaaaa"><tr><td>
- <b>${lang("navigation.search.title")}</b><br>
- <input type="hidden" name="do" value="search">
- <input type="hidden" name="search_boolean" value="or">
- <input type="hidden" name="search_sort" value="score">
-
- <input type="text" name="search_content" size="10" id="searchfield"><br>
- <input type="checkbox" name="search_hasImages"> ${lang("navigation.search.images")} <br>
- <input type="checkbox" name="search_hasAudio"> ${lang("navigation.search.audio")} <br>
- <input type="checkbox" name="search_hasVideo"> ${lang("navigation.search.video")} <br>
-
- <input type="submit" value="${lang("navigation.search.button")}" name="search_submit" size="16">
- </td></tr></table>
- </form>
-
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
- <b><a href="${config["Producer.OpenAction"]}">${lang("navigation.publish")} >></a></b>
- </td></tr></table>
- <br>
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
- <b><a href="${config["Producer.DocRoot"]}/${language.code}/newswire/archive.shtml">${lang("navigation.newswirearchive")} >></a> </b>
- </td></tr></table>
- <br>
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
- <b><a href="${config["Producer.DocRoot"]}/${language.code}/feature/archive.shtml">${lang("navigation.featurearchive")} >></a> </b>
- </td></tr></table>
- <br>
-
- <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc9999"><tr><td>
- <b>${lang("navigation.topics")}</b>
- <list topics as t>
- <br><a href="${config["Producer.DocRoot"]}/${language.code}/${t.filename}/archive.shtml">${t.title}</a>
- </list>
- </td></tr></table>
- <br>
-
+ <br>
+ <form action="${config["Producer.OpenAction"]}" method="post">
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#aaaaaa"><tr><td>
+ <b>${lang("navigation.search.title")}</b><br>
+ <input type="hidden" name="do" value="search">
+ <input type="hidden" name="search_boolean" value="or">
+ <input type="hidden" name="search_sort" value="score">
+
+ <input type="text" name="search_content" size="10" id="searchfield"><br>
+ <input type="checkbox" name="search_hasImages"> ${lang("navigation.search.images")} <br>
+ <input type="checkbox" name="search_hasAudio"> ${lang("navigation.search.audio")} <br>
+ <input type="checkbox" name="search_hasVideo"> ${lang("navigation.search.video")} <br>
+
+ <input type="submit" value="${lang("navigation.search.button")}" name="search_submit" size="16">
+ </td></tr></table>
+ </form>
+
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
+ <b><a href="${config["Producer.OpenAction"]}">${lang("navigation.publish")} >></a></b>
+ </td></tr></table>
+ <br>
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
+ <b><a href="${config["Producer.DocRoot"]}/${language.code}/newswire/archive.shtml">${lang("navigation.newswirearchive")} >></a> </b>
+ </td></tr></table>
+ <br>
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc6666"><tr><td>
+ <b><a href="${config["Producer.DocRoot"]}/${language.code}/feature/archive.shtml">${lang("navigation.featurearchive")} >></a> </b>
+ </td></tr></table>
+ <br>
+
+ <table cellpadding="8" cellspacing="0" border="0" width="100%" bgcolor="#cc9999"><tr><td>
+ <b>${lang("navigation.topics")}</b>
+ <list topics as t>
+ <br><a href="${config["Producer.DocRoot"]}/${language.code}/${t.filename}/archive.shtml">${t.title}</a>
+ </list>
+ </td></tr></table>
+ <br>
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
+ <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
<title>${config["Mir.Name"]} | ${lang("newswirearchive.title")}</title>
- <meta name="keywords" content="${lang("general.keywords")}">
- <meta name="description" content="${lang("newswirearchive.title")}">
- <meta name="dc:title" content="${lang("newswirearchive.title")}">
- <meta name="dc:creator" content="">
- <meta name="dc:subject" content="${lang("newswirearchive.title")}">
- <meta name="dc:description" content="${lang("newswirearchive.title")}">
- <meta name="dc:publisher" content="">
- <meta name="dc:date" content="${config.now.dc}">
- <meta name="dc:language" content="${language.code}">
- <meta name="dc:coverage" content="">
- <meta name="dc:rights" content="">
- <meta http-equiv="expires" content="599">
- <meta http-equiv="pragma" content="no-cache">
- <style type="text/css">
+ <meta name="keywords" content="${lang("general.keywords")}">
+ <meta name="description" content="${lang("newswirearchive.title")}">
+ <meta name="dc:title" content="${lang("newswirearchive.title")}">
+ <meta name="dc:creator" content="">
+ <meta name="dc:subject" content="${lang("newswirearchive.title")}">
+ <meta name="dc:description" content="${lang("newswirearchive.title")}">
+ <meta name="dc:publisher" content="">
+ <meta name="dc:date" content="${config.now.dc}">
+ <meta name="dc:language" content="${language.code}">
+ <meta name="dc:coverage" content="">
+ <meta name="dc:rights" content="">
+ <meta http-equiv="expires" content="599">
+ <meta http-equiv="pragma" content="no-cache">
+ <style type="text/css">
body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
{font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
a {text-decoration:none;}
#searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
#searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
#searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
- </style>
+ </style>
</head>
-
+
<body bgcolor="#dddddd" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" link="#003399" alink="#cc0033" vlink="#660033" >
<table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td valign="top">
- <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
- </tr>
- </table>
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
- </tr>
- </table>
- <br>
- <!--#include virtual="../navigation.inc" -->
- </td>
- <td valign="top" width="100%">
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td>
-
- <font color="#dddddd" size="-1"><b>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
- </b></font>
- </td>
- </tr>
- </table>
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
- <tr>
- <td> </td>
- <td width="100%">
- <br>
- <br>
- <font color="#cc0033" size="+2"><b>${lang("newswirearchive.title")}</b></font>
- <br>
- <br>
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- </td>
- <td>
-
- </td>
- </tr>
- <tr>
- <td> </td>
- <td>
- <br>
- <!--- articles --->
- <list articles as i>
- <p><font size="+1">
+ <tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
+ </tr>
+ </table>
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
+ </tr>
+ </table>
+ <br>
+ <!--#include virtual="../navigation.inc" -->
+ </td>
+ <td valign="top" width="100%">
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td>
+
+ <font color="#dddddd" size="-1"><b>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
+ </b></font>
+ </td>
+ </tr>
+ </table>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td> </td>
+ <td width="100%">
+ <br>
+ <br>
+ <font color="#cc0033" size="+2"><b>${lang("newswirearchive.title")}</b></font>
+ <br>
+ <br>
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ <br>
+ <!--- articles --->
+ <list articles as i>
+ <p><font size="+1">
<a href="${config["Producer.DocRoot"]}/${language.code}/${i.date.formatted["yyyy'/'MM"]}/${i.id}.shtml"><b>${i.title}</b></a>
- </font><br>
- <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
- <p><font size="-1">
- <if i.to_media_audio >
- <img align="left" vspace="4" hspace="8"
+ </font><br>
+ <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
+ <p><font size="-1">
+ <if i.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
src="${config["Producer.DocRoot"]}/img/${i.to_media_audio[0]["big_icon"]}">
- </if>
- <if i.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
- </if>
- <if i.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
- </if>
- <if i.to_media_images >
- <img align="left" vspace="4" hspace="8"
+ </if>
+ <if i.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
+ </if>
+ <if i.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
+ </if>
+ <if i.to_media_images >
+ <img align="left" vspace="4" hspace="8"
src="${i.to_media_images[0]["icon_path"]}"
width="${i.to_media_images[0]["icon_width"]}"
height="${i.to_media_images[0]["icon_height"]}"
border=0 alt="${i.to_media_images[0]["title"]}">
- </if>
- ${i.description_parsed}
- <br clear="all">
- <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
- </font></p>
-
- <br>
- </list>
- <!--- /articles --->
- <if batch.current.index!=batch.first.index>
- <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
- </if>
- <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
- |
- </if>
- <if batch.next>
- <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
- </if>
-
-
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- <br>
- ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
- <!--#include virtual="${docPrefix}nav${docSuffix}" -->
-
- </td>
- <td>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
+ </if>
+ ${i.description_parsed}
+ <br clear="all">
+ <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
+ </font></p>
+
+ <br>
+ </list>
+ <!--- /articles --->
+ <if batch.current.index!=batch.first.index>
+ <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
+ </if>
+ <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
+ |
+ </if>
+ <if batch.next>
+ <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
+ </if>
+
+
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ <br>
+ ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
+ <!--#include virtual="${docPrefix}nav${docSuffix}" -->
+
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
<!-- the rest -->
- <tr><td colspan="2"> </td></tr>
+ <tr><td colspan="2"> </td></tr>
</table>
</body>
</html>
which is to be used to layout the text contained in this
page-sequence-->
<fo:page-sequence master-reference="simple">
- <fo:static-content flow-name="xsl-region-before">
+ <fo:static-content flow-name="xsl-region-before">
<!-- this defines a title -->
<fo:block font-size="24pt"
line-height="23pt"
<fo:external-graphic src="file://${config["Producer.Image.Path"]}/banner.png" />
</fo:block>
<fo:block font-size="10pt"
- font-family="serif"
- color="black"
- line-height="12pt">
- Here is where some descriptive text could go. A fair use disclaimer
+ font-family="serif"
+ color="black"
+ line-height="12pt">
+ Here is where some descriptive text could go. A fair use disclaimer
an attribution of copyright/left rights, etc. the possibilities are endless.
- <fo:leader leader-pattern="rule" leader-length="18cm"
+ <fo:leader leader-pattern="rule" leader-length="18cm"
rule-thickness="1pt" color="black"/>
</fo:block>
-
- </fo:static-content>
-
+
+ </fo:static-content>
+
<!-- start fo:flow
each flow is targeted
at one (and only one) of the following:
<!-- here is the article title -->
<fo:block font-size="16pt"
font-family="sans-serif"
- font-weight="bold"
+ font-weight="bold"
line-height="18pt"
space-after.optimum="3pt"
- text-align="center">
+ text-align="center">
${article.title}
</fo:block>
font-family="sans-serif"
line-height="13pt"
space-after.optimum="3pt"
- text-align="end">
+ text-align="end">
${article.creator}, ${article.webdb_create_formatted}
</fo:block>
<!-- here is the article summary -->
<fo:block font-size="11pt"
font-family="sans-serif"
- font-weight="bold"
+ font-weight="bold"
line-height="13pt"
space-after.optimum="3pt"
- text-align="justify">
+ text-align="justify">
${article.description_parsed}
</fo:block>
- <!-- here is the header stuff -->
+ <!-- here is the header stuff -->
<if article.creator_main_url || article.creator_email>
- <fo:block><fo:leader leader-pattern="rule" leader-length="18cm"
+ <fo:block><fo:leader leader-pattern="rule" leader-length="18cm"
rule-thickness="1pt" color="black"/></fo:block>
</if>
<if article.creator_email>
<fo:block font-size="10pt"
font-family="sans-serif"
line-height="12pt">
- Email: ${article.creator_email}
+ Email: ${article.creator_email}
</fo:block>
</if>
<if article.creator_main_url>
<fo:block font-size="10pt"
font-family="sans-serif"
line-height="12pt">
- URL: ${article.creator_main_url}
+ URL: ${article.creator_main_url}
</fo:block>
</if>
<fo:block><fo:leader leader-pattern="rule" leader-length="18cm"
</list>
</fo:block>
-
+
</fo:flow> <!-- closes the flow element-->
generator="/article.template"
destination="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.shtml"/>
- <!--
+ <!--
<PDFPreFormat
key="article"
numLinesBetweenImages="3"
<function showArticleAsFeature(anArticle)>\r
<h3><call showSafeText(anArticle.title)></h3>
<h4><i><call showSafeText(anArticle.creator)>, ${anArticle.creationdate.formatted["dd.MM.yyyy HH:mm"]}</i></h4>
- <p>
+ <p>
<call showArticleMediaIcons(anArticle)>
${anArticle.description_parsed} \r
</p>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
- <title>${config["Mir.Name"]}</title>
- <meta name="keywords" content="indymedia,imc">
- <meta name="description" content="indymedia,imc">
- <meta http-equiv="expires" content="599">
- <meta http-equiv="pragma" content="no-cache">
- <style type="text/css">
- body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
- {font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
- a {text-decoration:none;}
- #searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
- #searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
- #searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
- </style>
+ <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
+ <title>${config["Mir.Name"]}</title>
+ <meta name="keywords" content="indymedia,imc">
+ <meta name="description" content="indymedia,imc">
+ <meta http-equiv="expires" content="599">
+ <meta http-equiv="pragma" content="no-cache">
+ <style type="text/css">
+ body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
+ {font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
+ a {text-decoration:none;}
+ #searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
+ #searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
+ #searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
+ </style>
</head>
-
+
<body bgcolor="#dddddd" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" link="#003399" alink="#cc0033" vlink="#660033" >
<table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td bgcolor="#cc0033"><img src="/img/logo.gif" width="120" height="120" alt="((i))"></td>
- <td colspan="4" valign="top" background="/img/background2.jpg">
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033"><tr><td>
-
- <font color="#dddddd" size="-1"><b>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
- </b></font>
- </td></tr></table>
- <br>
- <br>
- <font color="#cc0033" size="+3"> <b><span id="indy">${config["Mir.Name"]}</span></b></font>
- </td>
- </tr>
- <tr>
- <td></td>
- <td colspan="3">
- </td>
- </tr>
- <tr>
- <td width="120"></td>
- <td rowspan="100"> </td>
- <td width="100%"> </td>
- <td rowspan="100"> </td>
- <td width="200"><img src="/img/space.gif" alt="" width="200" height="1"></td>
- </tr>
-
- <tr>
- <td valign="top">
-
-
- <!--#include virtual="navigation.inc" -->
-
-
- <table cellpadding="8" cellspacing="0" border="0" width="100%">
- <tr>
- <td bgcolor="#cc0033">
- <b><font color="#dddddd" size="+1">${lang("startpage.imcs")}</font></b>
- </td>
- </tr>
- <tr>
- <td>
- <font size="-1">
- <include "cities.inc">
- </font>
- </td>
- </tr>
- </table>
- <br>
-
+ <tr>
+ <td bgcolor="#cc0033"><img src="/img/logo.gif" width="120" height="120" alt="((i))"></td>
+ <td colspan="4" valign="top" background="/img/background2.jpg">
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033"><tr><td>
+
+ <font color="#dddddd" size="-1"><b>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
+ </b></font>
+ </td></tr></table>
+ <br>
+ <br>
+ <font color="#cc0033" size="+3"> <b><span id="indy">${config["Mir.Name"]}</span></b></font>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="3">
+ </td>
+ </tr>
+ <tr>
+ <td width="120"></td>
+ <td rowspan="100"> </td>
+ <td width="100%"> </td>
+ <td rowspan="100"> </td>
+ <td width="200"><img src="/img/space.gif" alt="" width="200" height="1"></td>
+ </tr>
+
+ <tr>
+ <td valign="top">
+
+
+ <!--#include virtual="navigation.inc" -->
+
+
+ <table cellpadding="8" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td bgcolor="#cc0033">
+ <b><font color="#dddddd" size="+1">${lang("startpage.imcs")}</font></b>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <font size="-1">
+ <include "cities.inc">
+ </font>
+ </td>
+ </tr>
+ </table>
+ <br>
+
- </td>
-
- <td valign="top" width="100%"><a name="features"></a>
-
- <!-- breaking news -->
- <if breakingnews && breakingnews[0].text!=".">
- <table cellpadding="10" cellspacing="0" border="0" width="100%" bgcolor="#cccccc"><tr><td>
- <font color="#cc0033" size="-1"><b>${lang("startpage.breakingnews")}</b></font> <font size="-2"><b>+++</b></font>
- <assign stop="0">
- <list breakingnews as bn>
- <if bn.text=="."><assign stop="1"></if>
- <if stop=="0">
- <font color="#cc0033" size="-2">${bn.creationdate.formatted["dd-MM-yyyy HH:mm"]}:</font> <font size="-1">${bn.text}</font> <font size="-2"><b>+++</b></font>
- </if>
- </list>
- </td></tr></table>
- <br>
- </if>
- <!-- /breaking news -->
+ </td>
+
+ <td valign="top" width="100%"><a name="features"></a>
+
+ <!-- breaking news -->
+ <if breakingnews && breakingnews[0].text!=".">
+ <table cellpadding="10" cellspacing="0" border="0" width="100%" bgcolor="#cccccc"><tr><td>
+ <font color="#cc0033" size="-1"><b>${lang("startpage.breakingnews")}</b></font> <font size="-2"><b>+++</b></font>
+ <assign stop="0">
+ <list breakingnews as bn>
+ <if bn.text=="."><assign stop="1"></if>
+ <if stop=="0">
+ <font color="#cc0033" size="-2">${bn.creationdate.formatted["dd-MM-yyyy HH:mm"]}:</font> <font size="-1">${bn.text}</font> <font size="-2"><b>+++</b></font>
+ </if>
+ </list>
+ </td></tr></table>
+ <br>
+ </if>
+ <!-- /breaking news -->
- <!--- start-special ---> <comment></comment>
- <list startspecial as s>
- <table width="100%" border="0" cellspacing="0" cellpadding="10" bgcolor="#eeeeee"><tr><td>
- <p><font size="+2">
+ <!--- start-special ---> <comment></comment>
+ <list startspecial as s>
+ <table width="100%" border="0" cellspacing="0" cellpadding="10" bgcolor="#eeeeee"><tr><td>
+ <p><font size="+2">
<a href="${config["Producer.DocRoot"]}/${language.code}/${s.date.formatted["yyyy'/'MM"]}/${s.id}.shtml"><b>${s.title}</b></a>
- </font><br>
- <font size="-2">${s.creator}, ${s.webdb_create_formatted}</font></p>
- <p><font size="-1">
- <if s.to_media_audio >
- <img align="left" vspace="4" hspace="8"
- src="/img/${s.to_media_audio[0]["big_icon"]}">
- </if>
- <if s.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="/img/${s.to_media_video[0]["big_icon"]}">
- </if>
- <if s.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="/img/${s.to_media_other[0]["big_icon"]}">
- </if>
- <if s.to_media_images >
- <img align="left" vspace="4" hspace="8"
- src="${s.to_media_images[0]["icon_path"]}"
- width="${s.to_media_images[0]["icon_width"]}"
- height="${s.to_media_images[0]["icon_height"]}"
- border=0 alt="${s.to_media_images[0]["title"]}">
- </if>
- ${s.description_parsed}
- <br clear="all">
+ </font><br>
+ <font size="-2">${s.creator}, ${s.webdb_create_formatted}</font></p>
+ <p><font size="-1">
+ <if s.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
+ src="/img/${s.to_media_audio[0]["big_icon"]}">
+ </if>
+ <if s.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="/img/${s.to_media_video[0]["big_icon"]}">
+ </if>
+ <if s.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="/img/${s.to_media_other[0]["big_icon"]}">
+ </if>
+ <if s.to_media_images >
+ <img align="left" vspace="4" hspace="8"
+ src="${s.to_media_images[0]["icon_path"]}"
+ width="${s.to_media_images[0]["icon_width"]}"
+ height="${s.to_media_images[0]["icon_height"]}"
+ border=0 alt="${s.to_media_images[0]["title"]}">
+ </if>
+ ${s.description_parsed}
+ <br clear="all">
<a href="${config["Producer.DocRoot"]}/${language.code}/${s.date.formatted["yyyy'/'MM"]}/${s.id}.shtml"><b>${lang("general.readmore")} >></b></a>
- </font></p>
-
- </td></tr></table>
- </list>
- <!--- /start-special --->
+ </font></p>
+
+ </td></tr></table>
+ </list>
+ <!--- /start-special --->
- <!--- features ---> <comment></comment>
- <list features as i>
- <p><font size="+1">
+ <!--- features ---> <comment></comment>
+ <list features as i>
+ <p><font size="+1">
<a href="${config["Producer.DocRoot"]}/${language.code}/${i.date.formatted["yyyy'/'MM"]}/${i.id}.shtml"><b>${i.title}</b></a>
- </font><br>
- <font size="-2">${i.creator}, ${i.creationdate.formatted["dd-MM-yyyy HH:mm"]}</font></p>
- <p><font size="-1">
- <if i.to_media_audio >
- <img align="left" vspace="4" hspace="8"
+ </font><br>
+ <font size="-2">${i.creator}, ${i.creationdate.formatted["dd-MM-yyyy HH:mm"]}</font></p>
+ <p><font size="-1">
+ <if i.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
src="/img/${i.to_media_audio[0]["big_icon"]}">
- </if>
- <if i.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="/img/${i.to_media_video[0]["big_icon"]}">
- </if>
- <if i.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="/img/${i.to_media_other[0]["big_icon"]}">
- </if>
- <if i.to_media_images >
- <img align="left" vspace="4" hspace="8"
+ </if>
+ <if i.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="/img/${i.to_media_video[0]["big_icon"]}">
+ </if>
+ <if i.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="/img/${i.to_media_other[0]["big_icon"]}">
+ </if>
+ <if i.to_media_images >
+ <img align="left" vspace="4" hspace="8"
src="${i.to_media_images[0]["icon_path"]}"
width="${i.to_media_images[0]["icon_width"]}"
height="${i.to_media_images[0]["icon_height"]}"
border=0 alt="${i.to_media_images[0]["title"]}">
- </if>
- ${i.description_parsed}
- <br clear="all">
+ </if>
+ ${i.description_parsed}
+ <br clear="all">
<a href="${config["Producer.DocRoot"]}/${language.code}/${i.date.formatted["yyyy'/'MM"]}/${i.id}.shtml"><b>${lang("general.readmore")} >> >></b></a>
- </font></p>
-
- <br>
- </list>
- <!--- /features --->
+ </font></p>
+
+ <br>
+ </list>
+ <!--- /features --->
- </td>
-
- <td valign="top">
-
- <table cellpadding="8" cellspacing="0" border="0" width="100%">
- <tr>
- <td bgcolor="#cc0033">
- <font size="+1" color="#dddddd"><b><a name="newswire">${lang("startpage.newswire")}</a></b></font>
- </td>
- </tr>
- <tr>
- <td>
-
- <!-- newswire -->
- <font size="-1">
- <list newswire as n>
+ </td>
+
+ <td valign="top">
+
+ <table cellpadding="8" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td bgcolor="#cc0033">
+ <font size="+1" color="#dddddd"><b><a name="newswire">${lang("startpage.newswire")}</a></b></font>
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+ <!-- newswire -->
+ <font size="-1">
+ <list newswire as n>
<img alt=${n.to_media_icon.icon_alt} border="0" height="10" src="${n.to_media_icon.tiny_icon}" width="12">
<a href="${config["Producer.DocRoot"]}/${language.code}/${n.date.formatted.yyyy}/${n.date.formatted.MM}/${n.id}.shtml">${n.title}</a>
<br>
<font size="-2">${n.creationdate.formatted["dd-MM-yyyy HH:mm"]}</font><br>
- <br>
- </list>
- </font>
- <!-- /newswire -->
+ <br>
+ </list>
+ </font>
+ <!-- /newswire -->
<img src="/img/space.gif" width="184" height="1" border="0">
-
- </td>
- </tr>
- </table>
- <br>
-
-
- </td>
- </tr>
+
+ </td>
+ </tr>
+ </table>
+ <br>
+
+
+ </td>
+ </tr>
<!-- the rest -->
- <tr><td colspan="5"> </td></tr>
-
- <tr>
- <td> </td>
- <td valign="top">
- <p>
-
- </p>
- </td>
- <td> </td>
- </tr>
+ <tr><td colspan="5"> </td></tr>
+
+ <tr>
+ <td> </td>
+ <td valign="top">
+ <p>
+
+ </p>
+ </td>
+ <td> </td>
+ </tr>
</table>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
- <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
+ <meta http-equiv="Content-Type" content="text/html; charset=${config["Mir.DefaultHTMLCharset"]}">
<title>${config["Mir.Name"]} | ${topic.title}</title>
- <meta name="keywords" content="${lang("general.keywords")}">
- <meta name="description" content="${topic.description}">
- <meta name="dc:title" content="${topic.title}">
- <meta name="dc:creator" content="">
- <meta name="dc:subject" content="${topic.title}">
- <meta name="dc:description" content="${topic.title}">
- <meta name="dc:publisher" content="">
- <meta name="dc:date" content="${config.now.dc}">
- <meta name="dc:language" content="${language.code}">
- <meta name="dc:coverage" content="">
- <meta name="dc:rights" content="">
- <meta http-equiv="expires" content="599">
- <meta http-equiv="pragma" content="no-cache">
- <style type="text/css">
+ <meta name="keywords" content="${lang("general.keywords")}">
+ <meta name="description" content="${topic.description}">
+ <meta name="dc:title" content="${topic.title}">
+ <meta name="dc:creator" content="">
+ <meta name="dc:subject" content="${topic.title}">
+ <meta name="dc:description" content="${topic.title}">
+ <meta name="dc:publisher" content="">
+ <meta name="dc:date" content="${config.now.dc}">
+ <meta name="dc:language" content="${language.code}">
+ <meta name="dc:coverage" content="">
+ <meta name="dc:rights" content="">
+ <meta http-equiv="expires" content="599">
+ <meta http-equiv="pragma" content="no-cache">
+ <style type="text/css">
body, h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote, div, span
{font-family:'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;}
a {text-decoration:none;}
#searchfield {font-size: 12px; width:113px; height:16px; background-color:#aaaaaa;}
#searchselect {font-size: 12px; width:120px; height:22px; background-color:#aaaaaa;}
#searchbutton {font-size: 12px; width:120px; height:20px; background-color:#aaaaaa; text-align: right;}
- </style>
+ </style>
</head>
-
+
<body bgcolor="#dddddd" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" link="#003399" alink="#cc0033" vlink="#660033" >
<table border="0" cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td valign="top">
- <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
- </tr>
- </table>
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
- </tr>
- </table>
- <br>
- <!--#include virtual="../navigation.inc" -->
- </td>
- <td valign="top" width="100%">
- <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
- <tr>
- <td>
-
- <font color="#dddddd" size="-1"><b>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
- <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
- </b></font>
- </td>
- </tr>
- </table>
- <table cellpadding="0" cellspacing="0" border="0" width="100%">
- <tr>
- <td> </td>
- <td width="100%">
- <br>
- <br>
- <font color="#cc0033" size="+2"><b>${topic.title}</b></font>
- <br>
- <br>
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- </td>
- <td>
-
- </td>
- </tr>
- <tr>
- <td> </td>
- <td>
- <br>
- <!--- topic-special ---> <comment></comment>
- <list special as s>
- <table width="100%" border="0" cellspacing="0" cellpadding="10" bgcolor="#eeeeee"><tr><td>
- <p><font size="+2">
+ <tr>
+ <td valign="top">
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"><img src="${config["Producer.DocRoot"]}/img/logo.gif" width="120" height="120" alt="((i))" border="0"></a></td>
+ </tr>
+ </table>
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td><a href="${config["Producer.DocRoot"]}/${language.code}/"> <font color="#dddddd" size="-1"><b>${lang("general.start")}</b></font></a></td>
+ </tr>
+ </table>
+ <br>
+ <!--#include virtual="../navigation.inc" -->
+ </td>
+ <td valign="top" width="100%">
+ <table cellpadding="4" cellspacing="0" border="0" width="100%" bgcolor="#cc0033">
+ <tr>
+ <td>
+
+ <font color="#dddddd" size="-1"><b>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")} >></font></a>
+ <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")} >></font></a>
+ </b></font>
+ </td>
+ </tr>
+ </table>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td> </td>
+ <td width="100%">
+ <br>
+ <br>
+ <font color="#cc0033" size="+2"><b>${topic.title}</b></font>
+ <br>
+ <br>
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>
+ <br>
+ <!--- topic-special ---> <comment></comment>
+ <list special as s>
+ <table width="100%" border="0" cellspacing="0" cellpadding="10" bgcolor="#eeeeee"><tr><td>
+ <p><font size="+2">
<a href="${config["Producer.DocRoot"]}/${language.code}/${s.date.formatted["yyyy'/'MM"]}/${s.id}.shtml"><b>${s.title}</b></a>
- </font><br>
- <font size="-2">${s.creator}, ${s.webdb_create_formatted}</font></p>
- <p><font size="-1">
- <if s.to_media_audio >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${s.to_media_audio[0]["big_icon"]}">
- </if>
- <if s.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${s.to_media_video[0]["big_icon"]}">
- </if>
- <if s.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${s.to_media_other[0]["big_icon"]}">
- </if>
- <if s.to_media_images >
- <img align="left" vspace="4" hspace="8"
- src="${s.to_media_images[0]["icon_path"]}"
- width="${s.to_media_images[0]["icon_width"]}"
- height="${s.to_media_images[0]["icon_height"]}"
- border=0 alt="${s.to_media_images[0]["title"]}">
- </if>
- ${s.description_parsed}
- <br clear="all">
- <a href="${config["Producer.DocRoot"]}${s.publish_path}${s.id}.shtml"><b>${lang("general.readmore")} >></b></a>
- </font></p>
-
- </td></tr></table>
- </list>
- <!--- /topic-special --->
-
- <!--- articles ---> <comment></comment>
- <list articles as i>
- <p><font size="+1">
+ </font><br>
+ <font size="-2">${s.creator}, ${s.webdb_create_formatted}</font></p>
+ <p><font size="-1">
+ <if s.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${s.to_media_audio[0]["big_icon"]}">
+ </if>
+ <if s.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${s.to_media_video[0]["big_icon"]}">
+ </if>
+ <if s.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${s.to_media_other[0]["big_icon"]}">
+ </if>
+ <if s.to_media_images >
+ <img align="left" vspace="4" hspace="8"
+ src="${s.to_media_images[0]["icon_path"]}"
+ width="${s.to_media_images[0]["icon_width"]}"
+ height="${s.to_media_images[0]["icon_height"]}"
+ border=0 alt="${s.to_media_images[0]["title"]}">
+ </if>
+ ${s.description_parsed}
+ <br clear="all">
+ <a href="${config["Producer.DocRoot"]}${s.publish_path}${s.id}.shtml"><b>${lang("general.readmore")} >></b></a>
+ </font></p>
+
+ </td></tr></table>
+ </list>
+ <!--- /topic-special --->
+
+ <!--- articles ---> <comment></comment>
+ <list articles as i>
+ <p><font size="+1">
<a href="${config["Producer.DocRoot"]}/${language.code}/${i.date.formatted["yyyy'/'MM"]}/${i.id}.shtml"><b>${i.title}</b></a>
- </font><br>
- <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
- <p><font size="-1">
- <if i.to_media_audio >
- <img align="left" vspace="4" hspace="8"
+ </font><br>
+ <font size="-2">${i.creator}, ${i.webdb_create_formatted}</font></p>
+ <p><font size="-1">
+ <if i.to_media_audio >
+ <img align="left" vspace="4" hspace="8"
src="${config["Producer.DocRoot"]}/img/${i.to_media_audio[0]["big_icon"]}">
- </if>
- <if i.to_media_video >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
- </if>
- <if i.to_media_other >
- <img align="left" vspace="4" hspace="8"
- src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
- </if>
- <if i.to_media_images >
- <img align="left" vspace="4" hspace="8"
+ </if>
+ <if i.to_media_video >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_video[0]["big_icon"]}">
+ </if>
+ <if i.to_media_other >
+ <img align="left" vspace="4" hspace="8"
+ src="${config["Producer.DocRoot"]}/img/${i.to_media_other[0]["big_icon"]}">
+ </if>
+ <if i.to_media_images >
+ <img align="left" vspace="4" hspace="8"
src="${i.to_media_images[0]["icon_path"]}"
width="${i.to_media_images[0]["icon_width"]}"
height="${i.to_media_images[0]["icon_height"]}"
border=0 alt="${i.to_media_images[0]["title"]}">
- </if>
- ${i.description_parsed}
- <br clear="all">
- <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
- </font></p>
-
- <br>
- </list>
- <!--- /articles --->
- <if batch.current.index!=batch.first.index>
- <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
- </if>
- <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
- |
- </if>
- <if batch.next>
- <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
- </if>
-
-
- </td>
- <td> </td>
- <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
- <br>
- ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
- <!--#include virtual="${docPrefix}nav${docSuffix}" -->
-
- </td>
- <td>
-
- </td>
- </tr>
- </table>
- </td>
- </tr>
+ </if>
+ ${i.description_parsed}
+ <br clear="all">
+ <a href="${config["Producer.DocRoot"]}${i.publish_path}${i.id}.shtml"><b>${lang("general.readmore")} >></b></a>
+ </font></p>
+
+ <br>
+ </list>
+ <!--- /articles --->
+ <if batch.current.index!=batch.first.index>
+ <a href="${docPrefix}${batch.previous.identifier}${docSuffix}"><font size="+1"><b><< ${lang("general.page.prefix")} ${batch.previous.index}</b></font></a>
+ </if>
+ <if batch.current.index!=batch.first.index && batch.current.index!=batch.last.index>
+ |
+ </if>
+ <if batch.next>
+ <a href="${docPrefix}${batch.next.identifier}${docSuffix}"><font size="+1"><b>${lang("general.page.prefix")} ${batch.next.index} >></b></font></a>
+ </if>
+
+
+ </td>
+ <td> </td>
+ <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+ <br>
+ ${lang("general.page.prefix")} <b>${batch.current.index}</b> ${lang("general.page.infix")}
+ <!--#include virtual="${docPrefix}nav${docSuffix}" -->
+
+ </td>
+ <td>
+
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
<!-- the rest -->
- <tr><td colspan="2"> </td></tr>
+ <tr><td colspan="2"> </td></tr>
</table>
</body>
</html>
}
public static interface GeneratorLibraryFactory {
- public GeneratorLibrary makeLibrary(String anInitializationString);
+ public GeneratorLibrary makeLibrary(String anInitializationString) throws GeneratorExc, GeneratorFailure ;
}
public static interface GeneratorFunction {
--- /dev/null
+/*\r
+ * Copyright (C) 2001, 2002 The Mir-coders group\r
+ *\r
+ * This file is part of Mir.\r
+ *\r
+ * Mir is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Mir is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with Mir; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+ *\r
+ * In addition, as a special exception, The Mir-coders gives permission to link\r
+ * the code of this program with any library licensed under the Apache Software License,\r
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library\r
+ * (or with modified versions of the above that use the same license as the above),\r
+ * and distribute linked combinations including the two. You must obey the\r
+ * GNU General Public License in all respects for all of the code used other than\r
+ * the above mentioned libraries. If you modify this file, you may extend this\r
+ * exception to your version of the file, but you are not obligated to do so.\r
+ * If you do not wish to do so, delete this exception statement from your version.\r
+ */\r
+package mir.generator;\r
+\r
+import java.io.PrintWriter;\r
+import java.io.StringWriter;\r
+import java.util.AbstractList;\r
+import java.util.Date;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Vector;\r
+\r
+import org.apache.commons.beanutils.MethodUtils;\r
+import org.apache.commons.beanutils.PropertyUtils;\r
+import org.apache.velocity.Template;\r
+import org.apache.velocity.VelocityContext;\r
+import org.apache.velocity.app.VelocityEngine;\r
+import org.apache.velocity.context.Context;\r
+import org.apache.velocity.exception.ParseErrorException;\r
+import org.apache.velocity.exception.ResourceNotFoundException;\r
+import org.apache.velocity.runtime.RuntimeServices;\r
+import org.apache.velocity.runtime.log.LogSystem;\r
+import mir.log.LoggerWrapper;\r
+import mir.util.GeneratorFormatAdapters;\r
+import mir.util.RewindableIterator;\r
+\r
+public class VelocityGenerator implements Generator {\r
+ private String templateIdentifier;\r
+ private VelocityGeneratorLibrary library;\r
+ private static LoggerWrapper logger = new LoggerWrapper("Generator.velocity");\r
+\r
+ public VelocityGenerator(String aTemplate, VelocityGeneratorLibrary aLibrary) {\r
+ templateIdentifier = aTemplate;\r
+ library = aLibrary;\r
+ }\r
+\r
+ public void generate(Object anOutputWriter, Map aValues, LoggerWrapper aLogger) throws GeneratorExc, GeneratorFailure {\r
+ Template template;\r
+ Context context = makeMapAdapter(aValues);\r
+ StringWriter stringWriter = new StringWriter();\r
+\r
+ try {\r
+ template = library.engine.getTemplate(templateIdentifier);\r
+ if (template == null) {\r
+ throw new GeneratorExc("VelocityGeneratorLibrary: Can't find template " + templateIdentifier);\r
+ }\r
+ template.merge(context, stringWriter);\r
+\r
+ ( (PrintWriter) anOutputWriter).print(stringWriter.toString());\r
+ }\r
+ catch (ResourceNotFoundException t) {\r
+ throw new GeneratorExc("VelocityGeneratorLibrary: Can't find template " + templateIdentifier);\r
+ }\r
+ catch (ParseErrorException t) {\r
+ ( (PrintWriter) anOutputWriter).print(t.toString());\r
+ }\r
+ catch (Throwable t) {\r
+ throw new GeneratorFailure(t);\r
+ }\r
+\r
+ }\r
+\r
+ private static class ContextAdapter implements Context {\r
+ public boolean containsKey(java.lang.Object key) {\r
+ return false;\r
+ }\r
+\r
+ public Object get(java.lang.String key) {\r
+ return null;\r
+ }\r
+\r
+ public Object[] getKeys() {\r
+ return new Object[] {};\r
+ }\r
+\r
+ public Object put(java.lang.String key, java.lang.Object value) {\r
+ return null;\r
+ }\r
+\r
+ public Object remove(java.lang.Object key) {\r
+ return null;\r
+ }\r
+ }\r
+\r
+ private static Context makeMapAdapter(Map aMap) {\r
+ return new MapAdapter(aMap);\r
+ }\r
+\r
+ private static List makeIteratorAdapter(Iterator anIterator) {\r
+ return new IteratorAdapter(anIterator);\r
+ }\r
+\r
+ private static List makeListAdapter(List aList) {\r
+ return new ListAdapter(aList);\r
+ }\r
+\r
+\r
+ private static Object makeFunctionAdapter(Generator.GeneratorFunction aFunction) {\r
+ return new FunctionAdapter(aFunction);\r
+ }\r
+\r
+ private static Object makeBeanAdapter(Object anObject) {\r
+ return new BeanAdapter(anObject);\r
+ }\r
+\r
+ private interface VelocityAdapter {\r
+ public Object getOriginal();\r
+ }\r
+\r
+ public static Object unmakeAdapter(Object anObject) {\r
+ if (anObject instanceof VelocityAdapter) {\r
+ return ((VelocityAdapter) anObject).getOriginal();\r
+ }\r
+ else\r
+ return anObject;\r
+ }\r
+\r
+ public static Object makeAdapter(Object anObject) {\r
+ if (anObject == null)\r
+ return null;\r
+\r
+ if (anObject instanceof Context)\r
+ return anObject;\r
+\r
+ else if (anObject instanceof Generator.GeneratorFunction)\r
+ return makeFunctionAdapter((Generator.GeneratorFunction) anObject);\r
+ else if (anObject instanceof Integer)\r
+ return anObject;\r
+ else if (anObject instanceof Boolean)\r
+ return anObject;\r
+ else if (anObject instanceof String)\r
+ return anObject;\r
+ else if (anObject instanceof Map)\r
+ return makeMapAdapter((Map) anObject);\r
+ else if (anObject instanceof Iterator)\r
+ return makeIteratorAdapter((Iterator) anObject);\r
+ else if (anObject instanceof List)\r
+ return makeListAdapter(((List) anObject));\r
+ else if (anObject instanceof Number)\r
+ return makeAdapter(new GeneratorFormatAdapters.NumberFormatAdapter((Number) anObject));\r
+ else if (anObject instanceof Date)\r
+ return makeAdapter(new GeneratorFormatAdapters.DateFormatAdapter((Date) anObject));\r
+ else\r
+ return makeBeanAdapter(anObject);\r
+ }\r
+\r
+ public static class FunctionAdapter implements VelocityAdapter {\r
+ private GeneratorFunction function;\r
+\r
+ public Object getOriginal() {\r
+ return function;\r
+ }\r
+\r
+ private FunctionAdapter(GeneratorFunction aFunction) {\r
+ function = aFunction;\r
+ }\r
+\r
+ public Object call(Object aParameters[]) throws GeneratorExc {\r
+ List parameters = new Vector();\r
+\r
+ for (int i = 0; i<aParameters.length; i++) {\r
+ parameters.add(unmakeAdapter(aParameters[i]));\r
+ }\r
+\r
+ return makeAdapter(function.perform(parameters));\r
+ }\r
+\r
+ public Object call() throws GeneratorExc {\r
+ return makeAdapter(function.perform(new Vector()));\r
+ }\r
+\r
+ public Object call(Object anObject) throws GeneratorExc {\r
+ return call(new Object[] { anObject });\r
+ }\r
+\r
+ public Object call(Object anObject1, Object anObject2) throws GeneratorExc {\r
+ return call(new Object[] { anObject1, anObject2 });\r
+ }\r
+\r
+ public Object call(Object anObject1, Object anObject2, Object anObject3) throws GeneratorExc {\r
+ return call(new Object[] { anObject1, anObject2, anObject3 });\r
+ }\r
+\r
+ public Object call(Object anObject1, Object anObject2, Object anObject3, Object anObject4) throws GeneratorExc {\r
+ return call(new Object[] { anObject1, anObject2, anObject3, anObject4 });\r
+ }\r
+ }\r
+\r
+\r
+ private static class MapAdapter implements Context, VelocityAdapter {\r
+ private Map map;\r
+ private Map valuesCache;\r
+\r
+ private MapAdapter(Map aMap) {\r
+ map = aMap;\r
+ valuesCache = new HashMap();\r
+ }\r
+\r
+ public Object getOriginal() {\r
+ return map;\r
+ }\r
+\r
+ public boolean containsKey(Object aKey) {\r
+ return map.containsKey(aKey);\r
+ }\r
+\r
+ public Object get(String aKey) {\r
+ try {\r
+ if (!valuesCache.containsKey(aKey)) {\r
+ Object value = map.get(aKey);\r
+\r
+ if (value == null && !map.containsKey(aKey)) {\r
+ return "no key "+aKey+" available";\r
+ }\r
+ else\r
+ valuesCache.put(aKey, makeAdapter(value));\r
+ }\r
+\r
+ return valuesCache.get(aKey);\r
+ }\r
+ catch (Throwable t) {\r
+ throw new GeneratorFailure(t);\r
+ }\r
+ }\r
+\r
+ public Object[] getKeys() {\r
+ return new Object[] {};\r
+ }\r
+\r
+ public Object put(String aKey, Object aValue) {\r
+ valuesCache.remove(aKey);\r
+ map.put(aKey, unmakeAdapter(aValue));\r
+\r
+ return aValue;\r
+ }\r
+\r
+ public Object remove(java.lang.Object key) {\r
+ return null;\r
+ }\r
+ }\r
+\r
+ private static class IteratorAdapter extends AbstractList implements VelocityAdapter {\r
+ private Iterator iterator;\r
+ private List valuesCache;\r
+ private int position;\r
+\r
+ private IteratorAdapter(Iterator anIterator) {\r
+ iterator = anIterator;\r
+\r
+ valuesCache = new Vector();\r
+ position=0;\r
+\r
+\r
+ if (iterator instanceof RewindableIterator) {\r
+ ((RewindableIterator) iterator).rewind();\r
+ }\r
+ }\r
+\r
+ private void getUntil(int anIndex) {\r
+ while ((anIndex==-1 || valuesCache.size()<=anIndex) && iterator.hasNext())\r
+ {\r
+ valuesCache.add(makeAdapter(iterator.next()));\r
+ }\r
+ };\r
+\r
+ public Object getOriginal() {\r
+ return iterator;\r
+ }\r
+\r
+ public Object get(int anIndex) {\r
+ Object result;\r
+\r
+ getUntil(anIndex);\r
+\r
+ if (anIndex<valuesCache.size())\r
+ {\r
+ result = valuesCache.get(anIndex);\r
+\r
+ return result;\r
+ }\r
+ else\r
+ throw new RuntimeException( "Iterator out of bounds" );\r
+ }\r
+\r
+ public int size() {\r
+ getUntil(-1);\r
+ return valuesCache.size();\r
+ }\r
+\r
+ }\r
+\r
+ private static class ListAdapter extends AbstractList implements VelocityAdapter {\r
+ private List list;\r
+ private List valuesCache;\r
+ private int position;\r
+\r
+ private ListAdapter(List aList) {\r
+ list = aList;\r
+\r
+ valuesCache = new Vector();\r
+ position=0;\r
+ }\r
+\r
+ private void getUntil(int anIndex) {\r
+ while ((anIndex==-1 || valuesCache.size()<=anIndex) && valuesCache.size()<list.size())\r
+ {\r
+ valuesCache.add(makeAdapter(list.get(valuesCache.size())));\r
+ }\r
+ };\r
+\r
+ public Object getOriginal() {\r
+ return list;\r
+ }\r
+\r
+ public Object get(int anIndex) {\r
+ Object result;\r
+\r
+ getUntil(anIndex);\r
+\r
+ if (anIndex<valuesCache.size())\r
+ {\r
+ result = valuesCache.get(anIndex);\r
+\r
+ return result;\r
+ }\r
+ else\r
+ throw new RuntimeException( "Iterator out of bounds" );\r
+ }\r
+\r
+ public int size() {\r
+ return list.size();\r
+ }\r
+\r
+ }\r
+\r
+/*\r
+ private static class FunctionAdapter implements TemplateMethodModel {\r
+ private Generator.GeneratorFunction function;\r
+\r
+ public FunctionAdapter(Generator.GeneratorFunction aFunction) {\r
+ function = aFunction;\r
+ }\r
+\r
+ public TemplateModel exec(List anArguments) throws TemplateModelException {\r
+ try {\r
+ return makeAdapter(function.perform(anArguments));\r
+ }\r
+ catch (Throwable t) {\r
+ throw new TemplateModelException(t.getMessage());\r
+ }\r
+ }\r
+\r
+ public boolean isEmpty() {\r
+ return false;\r
+ }\r
+\r
+ }\r
+\r
+*/\r
+\r
+ private static class BeanAdapter implements Context, VelocityAdapter {\r
+ private Object object;\r
+\r
+ public BeanAdapter(Object anObject) {\r
+ object = anObject;\r
+ }\r
+\r
+ public boolean containsKey(Object key) {\r
+ return true;\r
+ }\r
+\r
+ public Object getOriginal() {\r
+ return object;\r
+ }\r
+\r
+ public Object get(String aKey) {\r
+ try {\r
+ if (PropertyUtils.isReadable(object, aKey))\r
+ return makeAdapter(PropertyUtils.getSimpleProperty(object, aKey));\r
+ else\r
+ return makeAdapter(MethodUtils.invokeExactMethod(object, "get", aKey));\r
+ }\r
+ catch (Throwable t) {\r
+ throw new GeneratorFailure(t);\r
+ }\r
+ }\r
+\r
+ public Object[] getKeys() {\r
+ return new Object[] {};\r
+ }\r
+\r
+ public Object put(String aKey, Object aValue) {\r
+ try {\r
+ if (PropertyUtils.isWriteable(object, aKey))\r
+ PropertyUtils.setSimpleProperty(object, aKey, unmakeAdapter(aValue));\r
+ else\r
+ MethodUtils.invokeExactMethod(object, "set", new Object[] {aKey, unmakeAdapter(aValue)});\r
+\r
+ return this;\r
+ }\r
+ catch (Throwable t) {\r
+ throw new GeneratorFailure(t);\r
+ }\r
+ }\r
+\r
+ public Object remove(Object aKey) {\r
+ throw new RuntimeException("BeanAdapter.remove not supported");\r
+ }\r
+ }\r
+\r
+ private static class VelocityLoggerWrapper implements LogSystem {\r
+ private LoggerWrapper logger;\r
+\r
+ public VelocityLoggerWrapper(LoggerWrapper aLogger) {\r
+ logger = aLogger;\r
+ }\r
+\r
+ public void init(RuntimeServices aRuntimeServices) {\r
+ }\r
+\r
+ public void logVelocityMessage(int aLevel, String aMessage) {\r
+ switch (aLevel) {\r
+ case DEBUG_ID:\r
+ logger.debug(aMessage);\r
+ break;\r
+ case ERROR_ID:\r
+ logger.error(aMessage);\r
+ break;\r
+ case INFO_ID:\r
+ logger.info(aMessage);\r
+ break;\r
+ default:\r
+ logger.warn(aMessage);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ public static class VelocityGeneratorLibrary implements GeneratorLibrary {\r
+ private VelocityEngine engine;\r
+\r
+ public VelocityGeneratorLibrary(String aTemplateRoot) throws GeneratorExc, GeneratorFailure {\r
+ try {\r
+ engine = new VelocityEngine();\r
+ try {\r
+ engine.setProperty(VelocityEngine.RESOURCE_LOADER, "file");\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error(VelocityEngine.RESOURCE_LOADER);\r
+ }\r
+\r
+ try {\r
+ engine.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("file.resource.loader.class");\r
+ }\r
+\r
+ try {\r
+ engine.setProperty("file.resource.loader.path", aTemplateRoot);\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("file.resource.loader.path");\r
+\r
+ }\r
+ try {\r
+ engine.setProperty("file.resource.loader.cache", "true");\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("file.resource.loader.cache");\r
+\r
+ }\r
+ try {\r
+ engine.setProperty("file.resource.loader.modificationCheckInterval", "10");\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error("file.resource.loader.modificationCheckInterval");\r
+\r
+ }\r
+\r
+ try {\r
+ engine.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM, new VelocityLoggerWrapper(logger));\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error(VelocityEngine.RUNTIME_LOG_LOGSYSTEM);\r
+\r
+ }\r
+/* try {\r
+ engine.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM_CLASS, null);\r
+ }\r
+ catch (Throwable t) {\r
+ logger.error(VelocityEngine.RUNTIME_LOG_LOGSYSTEM_CLASS);\r
+\r
+ }\r
+*/\r
+\r
+ engine.init();\r
+ }\r
+ catch (Throwable t) {\r
+ t.printStackTrace(logger.asPrintWriter(logger.ERROR_MESSAGE));\r
+\r
+ logger.error("Failed to set up a VelocityGeneratorLibrary: " + t.toString());\r
+ throw new GeneratorFailure(t);\r
+ }\r
+ }\r
+\r
+ public Generator makeGenerator(String anIdentifier) throws GeneratorExc, GeneratorFailure {\r
+ return new VelocityGenerator(anIdentifier, this);\r
+ }\r
+ }\r
+\r
+ public static class VelocityGeneratorLibraryFactory implements GeneratorLibraryFactory {\r
+ private String basePath;\r
+\r
+ public VelocityGeneratorLibraryFactory(String aBasePath) {\r
+ basePath = aBasePath;\r
+ }\r
+\r
+ public GeneratorLibrary makeLibrary(String anInitializationString) throws GeneratorExc, GeneratorFailure {\r
+ return new VelocityGeneratorLibrary(basePath+anInitializationString);\r
+ };\r
+ }\r
+}\r
// System.out.println(" revised LB II : " + test.isMatch("revised LB II"));
// System.out.println(" buLB: " + test.isMatch("buLB"));
- RSSData nl = reader.parseUrl("http://biotechdev.mir.dnsalias.net/test.rss");
+ RSSData arg = reader.parseUrl("http://argentina.indymedia.org/features.rdf");
// RSSData it = reader.parseUrl("http://g8.mir.dnsalias.net/italynewswire.rss");
// Object result = StructuredContentParser.parse(" { a = 'b' 'as a' = [ 'asd' asd 'asdas asd as''asd' ] }") ;
// System.out.println("" + wvl.get("rss:item"));
\r
protected class ContentToTopicsField implements EntityAdapterDefinition.CalculatedField {\r
private String topicCondition;\r
+ private String topicOrder;\r
\r
public ContentToTopicsField() {\r
this(null);\r
}\r
\r
public ContentToTopicsField(String aTopicCondition) {\r
+ this(aTopicCondition, "title");\r
+ }\r
+\r
+ public ContentToTopicsField(String aTopicCondition, String aTopicOrder) {\r
topicCondition = aTopicCondition;\r
+ topicOrder = aTopicOrder;\r
}\r
\r
public Object getValue(EntityAdapter anEntityAdapter) {\r
\r
return anEntityAdapter.getRelation(\r
condition,\r
- "title",\r
+ topicOrder,\r
"topic" );\r
}\r
catch (Throwable t) {\r
package mircoders.localizer.basic;
import mir.generator.FreemarkerGenerator;
+import mir.generator.VelocityGenerator;
import mir.generator.Generator;
import mir.generator.GeneratorLibraryRepository;
import mir.generator.WriterEngine;
aRepository.registerLibraryFactory(
"freemarker",
new FreemarkerGenerator.FreemarkerGeneratorLibraryFactory(MirGlobal.config().getString("Home") ) );
+ aRepository.registerLibraryFactory(
+ "velocity",
+ new VelocityGenerator.VelocityGeneratorLibraryFactory(MirGlobal.config().getString("Home") ) );
}
public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
<p class="box-head"><b>${lang("start.producers.title")}</b></p>
<div class="box">
<list recipes as s>
- <form style="margin: 0px; border: 0px; padding: 0px" method="post" action="${config.actionRoot}?module=Producer&do=producerecipe&recipe=${s}">
+ <form style="margin: 0px; border: 0px; padding: 0px" method="post" action="${config.actionRoot}">
+ <input type="hidden" name="module" value="Producer">
+ <input type="hidden" name="do" value="producerecipe">
+ <input type="hidden" name="recipe" value="${utility.encodeHTML(s)}">
<input class="majorbutton" type="submit" value="${lang("start.producers.recipe."+s)}">
</form>
</list>