expiremental support for the velocity template engine
authorzapata <zapata>
Sun, 9 Nov 2003 21:17:57 +0000 (21:17 +0000)
committerzapata <zapata>
Sun, 9 Nov 2003 21:17:57 +0000 (21:17 +0000)
18 files changed:
etc/producer/RSS.template
etc/producer/article.template
etc/producer/featurearchive.template
etc/producer/html2fo.xsl
etc/producer/navigation.template
etc/producer/newswirearchive.template
etc/producer/printablecontent.template
etc/producer/producers.xml
etc/producer/routines.template
etc/producer/startpage.template
etc/producer/topicpage.template
lib/velocity-1.3.1.jar [new file with mode: 0755]
source/mir/generator/Generator.java
source/mir/generator/VelocityGenerator.java [new file with mode: 0755]
source/mir/rss/RSSTest.java
source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java
source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java
templates/admin/start_admin.template

index 3637fd3..89017b3 100755 (executable)
     <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>
index fd3ac85..e311537 100755 (executable)
@@ -5,12 +5,12 @@
 <!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="../../">&nbsp;<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>
-                               &nbsp;&nbsp;
-                               <font color="#dddddd" size="-1"><b>
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</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="../../">&nbsp;<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>
+        &nbsp;&nbsp;
+        <font color="#dddddd" size="-1"><b>
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</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">
             &nbsp;<a href="${config["Producer.OpenAction"]}?do=getpdf&id=${article.id}&forIE=.pdf">
             <font color="#dddddd" size="+1"><b>${lang("article.get_as_pdf")}&gt;&gt;</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">
             &nbsp;<a href="javascript:addToNewsletter(${article.id})">
             <font color="#dddddd" size="+1"><b>${lang("article.add_to_pdf")}&gt;&gt;</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">
             &nbsp;<a href="javascript:getNewsletter()">
             <font color="#dddddd" size="+1"><b>${lang("article.newsletter_checkout")}&gt;&gt;</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">
             &nbsp;<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")}&gt;&gt;</b></font></a>
-                                       </td></tr></table>
+          </td></tr></table>
 <br>
-                                       <table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td bgcolor="#669999">
-           &nbsp;<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">
+      &nbsp;<a href="${config["Producer.OpenAction"]}?do=addcomment&aid=${article.id}&language=${language.code}">
             <font color="#dddddd" size="+1"><b>${lang("article.addcomment")}&gt;&gt;</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>
index 8fd5fc5..3f64e02 100755 (executable)
 <!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}/">&nbsp;<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>
-                                               &nbsp;&nbsp;
-                                               <font color="#dddddd" size="-1"><b>
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
-                                               </b></font>
-                                       </td>
-                               </tr>
-                       </table>
-                       <table cellpadding="0" cellspacing="0" border="0" width="100%">
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td width="100%">
-                                               <br>
-                                               <br>
-                                               <font color="#cc0033" size="+2"><b>${lang("featurearchive.title")}</b></font>
-                                               <br>
-                                               <br>
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
-                                       </td>
-                                       <td>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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}/">&nbsp;<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>
+            &nbsp;&nbsp;
+            <font color="#dddddd" size="-1"><b>
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
+            </b></font>
+          </td>
+        </tr>
+      </table>
+      <table cellpadding="0" cellspacing="0" border="0" width="100%">
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td width="100%">
+            <br>
+            <br>
+            <font color="#cc0033" size="+2"><b>${lang("featurearchive.title")}</b></font>
+            <br>
+            <br>
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+          </td>
+          <td>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
-                                               </if>
-                                                       
-                                                       
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
+              </if>
+              
+              
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
   
 <!-- the rest --> 
-       <tr><td colspan="2">&nbsp;</td></tr>
+  <tr><td colspan="2">&nbsp;</td></tr>
 </table>
 </body>
 </html>
index f25b81c..ea273cf 100755 (executable)
@@ -8,7 +8,7 @@ uses to break paragraphs with empty blocks,
 which do the same thing in XSL:FO -->
 
 <xsl:template match="br">
-       <fo:block />    
+  <fo:block />  
 </xsl:template>
 
 <xsl:template match="@*|*|processing-instruction()|comment()">
index 6d88655..ed9de37 100755 (executable)
@@ -1,46 +1,46 @@
 
-                       <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")}&nbsp;&gt;&gt;</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")} &gt;&gt;</a>&nbsp;</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")} &gt;&gt;</a>&nbsp;</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")}&nbsp;&gt;&gt;</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")} &gt;&gt;</a>&nbsp;</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")} &gt;&gt;</a>&nbsp;</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>
+      
index 5b9b800..b0d6424 100755 (executable)
 <!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}/">&nbsp;<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>
-                                               &nbsp;&nbsp;
-                                               <font color="#dddddd" size="-1"><b>
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
-                                               </b></font>
-                                       </td>
-                               </tr>
-                       </table>
-                       <table cellpadding="0" cellspacing="0" border="0" width="100%">
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td width="100%">
-                                               <br>
-                                               <br>
-                                               <font color="#cc0033" size="+2"><b>${lang("newswirearchive.title")}</b></font>
-                                               <br>
-                                               <br>
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
-                                       </td>
-                                       <td>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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}/">&nbsp;<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>
+            &nbsp;&nbsp;
+            <font color="#dddddd" size="-1"><b>
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
+            </b></font>
+          </td>
+        </tr>
+      </table>
+      <table cellpadding="0" cellspacing="0" border="0" width="100%">
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td width="100%">
+            <br>
+            <br>
+            <font color="#cc0033" size="+2"><b>${lang("newswirearchive.title")}</b></font>
+            <br>
+            <br>
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+          </td>
+          <td>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
-                                               </if>
-                                                       
-                                                       
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
+              </if>
+              
+              
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
   
 <!-- the rest --> 
-       <tr><td colspan="2">&nbsp;</td></tr>
+  <tr><td colspan="2">&nbsp;</td></tr>
 </table>
 </body>
 </html>
index ce9c3a7..164ee25 100755 (executable)
@@ -41,7 +41,7 @@
        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:
@@ -83,10 +83,10 @@ an attribution of copyright/left rights, etc.  the possibilities are endless.
       <!-- 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>
       
@@ -95,7 +95,7 @@ an attribution of copyright/left rights, etc.  the possibilities are endless.
                 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>
 
@@ -103,31 +103,31 @@ an attribution of copyright/left rights, etc.  the possibilities are endless.
       <!-- 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"
@@ -166,7 +166,7 @@ an attribution of copyright/left rights, etc.  the possibilities are endless.
 </list>
 
       </fo:block>
-       
+  
 
 
     </fo:flow> <!-- closes the flow element-->
index 8864dbd..8f15803 100755 (executable)
@@ -54,7 +54,7 @@
                 generator="/article.template" 
                 destination="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.shtml"/>
 
-               <!--
+    <!--
               <PDFPreFormat 
                 key="article" 
                 numLinesBetweenImages="3" 
index ed337b7..750dceb 100755 (executable)
@@ -86,7 +86,7 @@
 <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>
index 0cf6fbd..1870276 100755 (executable)
 <!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>
-                               &nbsp;&nbsp;
-                               <font color="#dddddd" size="-1"><b>
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
-                               </b></font>
-                       </td></tr></table>
-                       <br>
-                       <br>
-                       <font color="#cc0033" size="+3">&nbsp;&nbsp;&nbsp;<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">&nbsp;&nbsp;&nbsp;&nbsp;</td>
-               <td width="100%">&nbsp;</td>
-               <td rowspan="100">&nbsp;&nbsp;&nbsp;&nbsp;</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>
+        &nbsp;&nbsp;
+        <font color="#dddddd" size="-1"><b>
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
+        </b></font>
+      </td></tr></table>
+      <br>
+      <br>
+      <font color="#cc0033" size="+3">&nbsp;&nbsp;&nbsp;<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">&nbsp;&nbsp;&nbsp;&nbsp;</td>
+    <td width="100%">&nbsp;</td>
+    <td rowspan="100">&nbsp;&nbsp;&nbsp;&nbsp;</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")} &gt;&gt;</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")} &gt;&gt; &gt;&gt;</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">&nbsp;</td></tr>
-       
-       <tr>
-               <td>&nbsp;</td>
-               <td valign="top">
-                       <p>
-                       
-                       </p>
-               </td>
-               <td>&nbsp;</td>
-       </tr>
+  <tr><td colspan="5">&nbsp;</td></tr>
+  
+  <tr>
+    <td>&nbsp;</td>
+    <td valign="top">
+      <p>
+      
+      </p>
+    </td>
+    <td>&nbsp;</td>
+  </tr>
 </table>
 </body>
 </html>
index e372834..d723b26 100755 (executable)
 <!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}/">&nbsp;<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>
-                                               &nbsp;&nbsp;
-                                               <font color="#dddddd" size="-1"><b>
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
-                                       <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
-                                               </b></font>
-                                       </td>
-                               </tr>
-                       </table>
-                       <table cellpadding="0" cellspacing="0" border="0" width="100%">
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td width="100%">
-                                               <br>
-                                               <br>
-                                               <font color="#cc0033" size="+2"><b>${topic.title}</b></font>
-                                               <br>
-                                               <br>
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                                       <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
-                                       </td>
-                                       <td>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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}/">&nbsp;<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>
+            &nbsp;&nbsp;
+            <font color="#dddddd" size="-1"><b>
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mission.shtml"><font color="#dddddd">${lang("general.menu.missionStatement")}&nbsp;&gt;&gt;</font></a> &nbsp; 
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/moderation.shtml"><font color="#dddddd">${lang("general.menu.moderation")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/support.shtml"><font color="#dddddd">${lang("general.menu.support")}&nbsp;&gt;&gt;</font></a>  &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/mailinglists.shtml"><font color="#dddddd">${lang("general.menu.mailinglists")}&nbsp;&gt;&gt;</font></a> &nbsp;
+          <a href="${config["Producer.DocRoot"]}/${language.code}/static/participate.shtml"><font color="#dddddd">${lang("general.menu.participate")}&nbsp;&gt;&gt;</font></a>
+            </b></font>
+          </td>
+        </tr>
+      </table>
+      <table cellpadding="0" cellspacing="0" border="0" width="100%">
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td width="100%">
+            <br>
+            <br>
+            <font color="#cc0033" size="+2"><b>${topic.title}</b></font>
+            <br>
+            <br>
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+          <td valign="top"><img src="${config["Producer.DocRoot"]}/img/space.gif" alt="" width="100" height="1">
+          </td>
+          <td>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+        <tr>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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")} &gt;&gt;</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")} &gt;&gt;</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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
-                                               </if>
-                                                       
-                                                       
-                                       </td>
-                                       <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
-                                       &nbsp;&nbsp;&nbsp;&nbsp;
-                                       </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")} &gt;&gt;</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>&lt;&lt; ${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} &gt;&gt;</b></font></a>
+              </if>
+              
+              
+          </td>
+          <td>&nbsp;&nbsp;&nbsp;&nbsp;</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>
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
   
 <!-- the rest --> 
-       <tr><td colspan="2">&nbsp;</td></tr>
+  <tr><td colspan="2">&nbsp;</td></tr>
 </table>
 </body>
 </html>
diff --git a/lib/velocity-1.3.1.jar b/lib/velocity-1.3.1.jar
new file mode 100755 (executable)
index 0000000..6cb64ec
Binary files /dev/null and b/lib/velocity-1.3.1.jar differ
index 2a3428d..3d46e47 100755 (executable)
@@ -45,7 +45,7 @@ public interface Generator {
   }
 
   public static interface GeneratorLibraryFactory {
-    public GeneratorLibrary makeLibrary(String anInitializationString);
+    public GeneratorLibrary makeLibrary(String anInitializationString) throws GeneratorExc, GeneratorFailure ;
   }
 
   public static interface GeneratorFunction {
diff --git a/source/mir/generator/VelocityGenerator.java b/source/mir/generator/VelocityGenerator.java
new file mode 100755 (executable)
index 0000000..730b7d2
--- /dev/null
@@ -0,0 +1,552 @@
+/*\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
index fdd074c..cbd4d44 100755 (executable)
@@ -45,7 +45,7 @@ public class RSSTest {
 //      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"));
index f96b394..e5d0c7f 100755 (executable)
@@ -446,13 +446,19 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
 \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
@@ -463,7 +469,7 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
 \r
         return anEntityAdapter.getRelation(\r
                     condition,\r
-                    "title",\r
+                    topicOrder,\r
                     "topic" );\r
       }\r
       catch (Throwable t) {\r
index f3b205d..478e20b 100755 (executable)
@@ -30,6 +30,7 @@
 package mircoders.localizer.basic;
 
 import mir.generator.FreemarkerGenerator;
+import mir.generator.VelocityGenerator;
 import mir.generator.Generator;
 import mir.generator.GeneratorLibraryRepository;
 import mir.generator.WriterEngine;
@@ -54,6 +55,9 @@ public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer {
     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 {
index d22f63a..538f9a2 100755 (executable)
     <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&amp;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>