contains only admin templates which should not be changed by users
authorbruno <bruno>
Wed, 9 Oct 2002 16:09:05 +0000 (16:09 +0000)
committerbruno <bruno>
Wed, 9 Oct 2002 16:09:05 +0000 (16:09 +0000)
48 files changed:
build.xml
doc/TODO.txt
etc/web.xml
perms.sh-dist
source/Mir.java
source/mir/misc/Configuration.java
source/mir/misc/MirConfig.java
source/mir/storage/store/ObjectStore.java
templates/admin/audio.template [new file with mode: 0755]
templates/admin/audiolist.template [new file with mode: 0755]
templates/admin/breaking.template [new file with mode: 0755]
templates/admin/breakinglist.template [new file with mode: 0755]
templates/admin/comment.template [new file with mode: 0755]
templates/admin/commentlist.template [new file with mode: 0755]
templates/admin/confirm.template [new file with mode: 0755]
templates/admin/content.template [new file with mode: 0755]
templates/admin/content.template.trez.backed-up-by-mh.20020805 [new file with mode: 0755]
templates/admin/contentlist.template [new file with mode: 0755]
templates/admin/feature.template [new file with mode: 0755]
templates/admin/featurelist.template [new file with mode: 0755]
templates/admin/fileedit.template [new file with mode: 0755]
templates/admin/fileeditlist.template [new file with mode: 0755]
templates/admin/foot.template [new file with mode: 0755]
templates/admin/head.template [new file with mode: 0755]
templates/admin/head_nonavi.template [new file with mode: 0755]
templates/admin/hiddenlist.template [new file with mode: 0755]
templates/admin/image.template [new file with mode: 0755]
templates/admin/imagelist.template [new file with mode: 0755]
templates/admin/language.template [new file with mode: 0755]
templates/admin/languagelist.template [new file with mode: 0755]
templates/admin/linksimcs.template [new file with mode: 0755]
templates/admin/linksimcslist.template [new file with mode: 0755]
templates/admin/login.template [new file with mode: 0755]
templates/admin/media.template [new file with mode: 0755]
templates/admin/mediafolder.template [new file with mode: 0755]
templates/admin/mediafolderlist.template [new file with mode: 0755]
templates/admin/medialist.template [new file with mode: 0755]
templates/admin/message.template [new file with mode: 0755]
templates/admin/messagelist.template [new file with mode: 0755]
templates/admin/start_admin.template [new file with mode: 0755]
templates/admin/topic.template [new file with mode: 0755]
templates/admin/topiclist.template [new file with mode: 0755]
templates/admin/user.template [new file with mode: 0755]
templates/admin/userlist.template [new file with mode: 0755]
templates/admin/video.template [new file with mode: 0755]
templates/admin/videolist.template [new file with mode: 0755]
templates/error.template [new file with mode: 0755]
templates/usererror.template [new file with mode: 0755]

index 0dcf3ec..6385509 100755 (executable)
--- a/build.xml
+++ b/build.xml
 
   <target name="prepare">
     <mkdir  dir="${deploy.home}"/>
+    <mkdir  dir="${deploy.webinf}"/>
+    <mkdir  dir="${deploy.classes}"/>
+    <mkdir  dir="${deploy.webinf}/log"/>
+
     <copy todir="${deploy.home}">
       <fileset dir="web"/>
     </copy>
-    <mkdir  dir="${deploy.home}/templates"/>
-    <copy todir="${deploy.home}/templates">
+
+    <copy todir="${deploy.webinf}/etc">
+      <fileset dir="etc" excludes="bundles/** web.xml"/>
+    </copy>
+    <copy todir="${deploy.classes}/bundles">
+        <fileset dir="etc/bundles"/>
+    </copy>
+    <copy todir="${deploy.webinf}" file="etc/web.xml"/>
+
+    <copy todir="${deploy.webinf}/templates">
       <fileset dir="templates"/>
     </copy>
-    <!--??? why do we need the source in deployment? - br1
-    <mkdir  dir="${deploy.home}/src"/>
-    <copy todir="${deploy.home}/src">
-      <fileset dir="source"/>
+
+    <copy todir="${deploy.classes}/bundles">
+      <fileset dir="bundles"/>
     </copy>
-    -->
 
-    <mkdir  dir="${deploy.home}/WEB-INF"/>
-    <copy  file="etc/web.xml"          tofile="${deploy.home}/WEB-INF/web.xml"/>
-    <mkdir  dir="${deploy.classes}"/>
-    <mkdir  dir="${deploy.home}/WEB-INF/lib"/>
     <copy todir="${deploy.home}/WEB-INF/lib">
       <fileset dir="lib">
         <exclude name="ant.jar"/>
         <exclude name="xerces.jar"/>
       </fileset>
     </copy>
-    <mkdir  dir="${javadoc.home}"/>
-    <mkdir  dir="${deploy.home}/log"/>
-
   </target>
 
 
 
   <target name="clean">
     <delete dir="${deploy.classes}"/>
-       <mkdir dir="${deploy.classes}"/>
+    <mkdir dir="${deploy.classes}"/>
   </target>
 
 
            debug="on" optimize="off" deprecation="on">
       <classpath refid="project.class.path"/>
     </javac>
-    <copy   todir="${deploy.classes}">
-      <fileset dir="source" includes="**/*.properties"/>
-    </copy>
-    <copy   todir="${deploy.home}">
-      <fileset dir="source" includes="**/content-types.properties"/>
-      <!-- server.xml is currently not used
-      <fileset dir="source" includes="**/server.xml"/>
-      -->
-    </copy>
-    <copy   todir="${deploy.classes}/bundles">
-      <fileset dir="bundles" includes="**/*.properties"/>
-    </copy>
   </target>
 
 
 
   <target name="perms">
-       <exec executable="./perms.sh"/>
+    <exec executable="./perms.sh"/>
   </target>
 
 
index 6b9f24d..5b6ab51 100755 (executable)
@@ -1,4 +1,4 @@
-[Updated $Date: 2002/09/03 14:21:04 $]
+[Updated $Date: 2002/10/09 16:09:05 $]
 
 v 1.1
 
@@ -58,6 +58,8 @@ n) Media infrastructure stuff:
   - use FM's TemplateMethodModel to access the MediaHandler method in templates
     instead of the crude way it's done now.
 
+*) move log to WEB-INF!!! (security problem)
+*)
 
 --- wishlist ---
 
@@ -71,4 +73,4 @@ n) Media infrastructure stuff:
        possibility to block submissions in case of spam attacks
        apache: 1-2 postings / IP / minute
        close artice for comments
-       image with password
\ No newline at end of file
+       image with password
index 001d9a0..5415ac6 100755 (executable)
@@ -15,7 +15,7 @@
 
         <init-param>
             <param-name>Config</param-name>
-            <param-value>config</param-value>
+            <param-value>etc/config.properties</param-value>
         </init-param>
 
     </servlet>
index e373726..5ecc141 100755 (executable)
@@ -41,9 +41,8 @@ function grant()
        umask $UMASK
 }
 
-chgrp $GROUP $INSTDIR -R > /dev/null 2>&1
+chgrp $GROUP $INSTDIR -R #> /dev/null 2>&1
 grant 775 664 $INSTDIR > /dev/null 2>&1
-grant 750 640 $INSTDIR/WEB-INF/classes/config.properties
-grant 740 640 $INSTDIR/src/config.properties
+grant 750 640 $INSTDIR/WEB-INF/etc/config.properties
 
-echo "Permissions set."
\ No newline at end of file
+echo "Permissions set."
index dd73556..ea6ddaa 100755 (executable)
@@ -61,13 +61,18 @@ import java.util.HashMap;
 import java.util.Locale;
 import java.util.*;
 
+import mir.log.Log;
+
 /**
  * Mir.java - main servlet, that dispatches to servletmodules
  *
- * @author $Author: mh $
- * @version $Revision: 1.19 $ $Date: 2002/09/01 22:05:47 $
+ * @author $Author: bruno $
+ * @version $Revision: 1.20 $ $Date: 2002/10/09 16:09:05 $
  *
  * $Log: Mir.java,v $
+ * Revision 1.20  2002/10/09 16:09:05  bruno
+ * contains only admin templates which should not be changed by users
+ *
  * Revision 1.19  2002/09/01 22:05:47  mh
  * Mir goes GPL
  *
@@ -96,6 +101,8 @@ public class Mir extends AbstractServlet {
     public void doPost(HttpServletRequest req, HttpServletResponse res)
             throws ServletException, IOException, UnavailableException {
 
+
+
         long startTime = System.currentTimeMillis();
         long sessionConnectTime = 0;
         EntityUsers userEntity;
@@ -108,6 +115,9 @@ public class Mir extends AbstractServlet {
         }
         MirConfig.setServletName(getServletName());
 
+        //*** test
+       // Log.info(this, "blalalala");
+
         session = req.getSession(true);
         userEntity = (EntityUsers) session.getAttribute("login.uid");
 
@@ -339,7 +349,7 @@ public class Mir extends AbstractServlet {
     }
 
     private void _sendStartPage(HttpServletResponse res, HttpServletRequest req, PrintWriter out, EntityUsers userEntity) {
-        String startTemplate = "admin/start_admin.template";
+        String startTemplate = "templates/admin/start_admin.template";
         String sessionUrl = res.encodeURL("");
         try {
             // merge with logged in user and messages
index dc9f566..016a0dc 100755 (executable)
@@ -47,15 +47,26 @@ public class Configuration {
   private String          confFilename;
   
   private static String   defaultconfFilename;
-  static ResourceBundle conf;
+  private static Properties conf;
 
   protected static void initConfResource(String confName) {
-    conf = ResourceBundle.getBundle(confName);
+
+    conf = new Properties();
+    try {
+        conf.load( new BufferedInputStream(new FileInputStream(confName)));
+    }
+    catch ( java.io.FileNotFoundException fnfe ) {
+        System.err.println("could not read config file. not found: "+confName);
+    }
+    catch ( java.io.IOException ioex ) {
+        System.err.println("could not read config file: "+confName);
+    }
+
     confs.put("confname",confName);
   }
 
   protected static Enumeration getResourceKeys() {
-    return conf.getKeys();
+    return conf.propertyNames();
   }
 
 
@@ -73,7 +84,7 @@ public class Configuration {
    * @return Wert der Property
    */
   protected static String getProperty(String propName) {  // default
-    return conf.getString(propName);
+    return conf.getProperty(propName);
   }
   
    /**
@@ -81,7 +92,7 @@ public class Configuration {
    * @return true if open posting should be direct
    */
   protected static boolean directOp() {
-    String op = conf.getString("DirectOpenposting");
+    String op = conf.getProperty("DirectOpenposting");
     if(op.equals("yes") || op.equals("Yes") || op.equals("y") || op.equals("Y")){
       return true;
     }
index 042ff63..b84c21b 100755 (executable)
@@ -76,10 +76,12 @@ public class MirConfig extends Configuration {
    */
   public static synchronized void initConfig(ServletContext ctx, String uri,
                                             String name, String confName) {
-    initConfResource(confName);
+
+    initConfResource(ctx.getRealPath("/WEB-INF/")+"/"+confName);
+
     configHash = new HashMap();
 
-    configHash.put("Home", ctx.getRealPath("/"));
+    configHash.put("Home", ctx.getRealPath("/WEB-INF/")+"/");
     configHash.put("ServletContext", ctx);
     configHash.put("RootUri", uri);
 
@@ -109,8 +111,6 @@ public class MirConfig extends Configuration {
     if (result==null)
       throw new ConfigException("config property '"+propName+"' not available!");
 
-
-
     return result;
   }
 
index ab83ab1..1d93f22 100755 (executable)
@@ -62,9 +62,12 @@ package mir.storage.store;
  */
 
 import java.util.*;
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
 import javax.servlet.http.*;
 import javax.servlet.*;
 import mir.misc.Logfile;
+import mir.misc.MirConfig;
 
 public class ObjectStore {
 
@@ -72,12 +75,21 @@ public class ObjectStore {
        private final static HashMap        containerMap=new HashMap(); // StoreContainerType/StoreContainer
        private static Logfile              storeLog;
        private static long                 storeHit=0,storeMiss=0;
-  private ResourceBundle              ostoreConf;
+  private Properties              ostoreConf;
 
        private ObjectStore() {
-    ostoreConf = ResourceBundle.getBundle("objectstore");
-    if ( ostoreConf == null )
-      System.err.println("FATAL: could not find objectstore.properties");
+    String confName=MirConfig.getProp("Home")+"etc/objectstore.properties";
+    Properties conf = new Properties();
+    try {
+        conf.load( new BufferedInputStream(new FileInputStream(confName)));
+    }
+    catch ( java.io.FileNotFoundException fnfe ) {
+        System.err.println("could not read config file. not found: "+confName);
+    }
+    catch ( java.io.IOException ioex ) {
+        System.err.println("could not read config file: "+confName);
+    }
+    ostoreConf = conf;
        }
        public static ObjectStore getInstance() { return INSTANCE; }
 
@@ -190,7 +202,7 @@ public class ObjectStore {
     if (name!=null ) {
       String returnValue="";
       try {
-        return ostoreConf.getString(name);
+        return ostoreConf.getProperty(name);
       }
       catch (MissingResourceException e) {
         System.err.println("ObjectStore: " + e.toString());
diff --git a/templates/admin/audio.template b/templates/admin/audio.template
new file mode 100755 (executable)
index 0000000..7a8ab72
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("audio.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+<SCRIPT LANGUAGE="JavaScript">
+function openWin(url) {
+   window.open(url,"vc","scrollbars=0,height=${data.img_height},width=${data.img_width}");
+}
+</SCRIPT>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<form enctype="multipart/form-data" method="post" action="${config.actionRoot}?module=Audio&do=<if data.new>insert<else>update</if>&id=${data.id}">
+<if data.icon_data=="" || data.icon_data=="0">
+       <INPUT TYPE="file" NAME="mptest">
+</if>
+
+       <input type="hidden" name="where" value="${data.where}">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="hidden" name="order" value="${data.order}">
+       <input type="hidden" name="id" value="${data.id}">
+
+       <table border="0">
+       <tr>
+    <td align="right" class="darkgrey">
+               <span class="witesmall">
+                       <img src="${config.docRoot}/img/${data.big_icon}" border=0></span></td>
+    <td valign="bottom"><span class="spezialtext">
+               ${lang("media.created")}: ${data.webdb_create}
+        <if data.webdb_lastchange>/ ${lang("media.changed")} ${data.webdb_lastchange}</if><br>
+               <if data.is_published=="1">${lang("media.published")}: ${data.publish_date} / ${data.publish_server}${data.publish_path}<br></if>
+               ${lang("media.format")}: ${data.mimetype} / ${data.descr}<br>
+               ${lang("media.rights")}: <b>${data.rightsHashdata[to_rights]["name"]}</b><br>
+       </td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.mediafolder")}:</B></span></td>
+    <td>
+               <select name="to_media_folder">
+               <list extra.mediafolderPopupData as m>
+               <option value="${m.key}" <if m.key == data.to_media_folder>selected</if>>${m.value}</option>
+               </list>
+           </select>
+       </td>
+       </tr>
+
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.title")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="title" value="${data.title}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.description")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="description" value="${data.description}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.date")}:</B></span></td>
+    <td><input type="text" size="8" maxlength="8" name="date" value="${data.date}">
+               <input type="text" size="20" maxlength="40" name="year" value="${data.year}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.location")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="place" value="${data.place}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.creator")}:</B></span></td>
+    <td>
+               <input type="text" size="40" maxlength="80" name="creator" value="${data.creator}">
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.keywords")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="keywords">${data.keywords}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.comment")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="comment">${data.comment}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.source")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="source" value="${data.source}"></td>
+       </tr>
+       <tr>
+    <td colspan="2" align="right"> <span class="text">
+       ${lang("media.is_published")} <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+       <if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/audiolist.template b/templates/admin/audiolist.template
new file mode 100755 (executable)
index 0000000..48269ed
--- /dev/null
@@ -0,0 +1,106 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("audiolist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr>
+    <td colspan="5"><form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Audio">
+       <input type="hidden" name="do" value="list">
+       <input type="hidden" name="cid" value="${data.cid}">
+       <table border="0">
+       <tr class="pink">
+               <td>${lang("medialist.search_text_in")}:</td>
+               <td>${lang("media.published")}:</td>
+               <td>${lang("media.mediafolder")}:</td>
+               <td>&nbsp;</td>
+       </tr>
+
+       <tr>
+       <td>
+               <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">
+               <select name="query_field">
+               <option value="title"<if data.query_field=="title"> selected</if>>${lang("media.title")}</option>
+               <option value="creator"<if data.query_field=="creator"> selected</if>>${lang("media.creator")}</option>
+               <option value="place"<if data.query_field=="place"> selected</if>>${lang("media.location")}</option>
+               <option value="keywords"<if data.query_field=="keywords"> selected</if>>${lang("media.keywords")}</option>
+       </select>
+       </td>
+       <td>
+               <select name="query_is_published">
+                   <option value="">${lang("dontcare")}</option>
+               <option value="0" <if data.query_is_published=="0"> selected</if>>${lang("no")}</option>
+                   <option value="1" <if data.query_is_published=="1"> selected</if>>${lang("yes")}</option>
+           </select>
+       </td>
+       <td>
+       <select name="query_media_folder">
+       <list extra.mediafolderPopupData as m>
+       <option value="${m.key}" <if m.key == query_media_folder>selected</if>>${m.value}</option>
+       </list>
+       </select>
+       </td>
+       <td>
+               <input type="submit" name="search" value="${lang("filter")}">
+       </td>
+       </tr>
+       </table>
+       </form>
+       </td>
+  </tr>
+
+  <tr class="darkgrey" >
+       <td><span class="witesmall">
+       <b>${lang("media.icon")}</b></span></td>
+       <td><span class="witesmall">
+       <b>${lang("media.title")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.mediafolder")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.creator")}</b></span></td>
+  </tr>
+  <if data.contentlist>
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>
+         <img src="${config.docRoot}/img/${entry.big_icon}" border=0></span></td>
+  <td>${entry.title}&nbsp;
+         <if entry.decription><br>${entry.description}</if></td>
+  <td>${data.mediafolderHashdata[entry.to_media_folder]["name"]}&nbsp;</td>
+  <td>${entry.creator}&nbsp;</td>
+  <td><span class="text">&nbsp;
+       <if data.cid><a href="${config.actionRoot}?module=Content&do=attach&mid=${entry.id}&cid=${data.cid}">${lang("attach")}</a>
+       <else>
+       <a href="${config.actionRoot}?module=Audio&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Audio&do=edit&id=${entry.id}">${lang("edit")}</a>
+       </if>
+       </span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="4" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+
+<tr><td>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Audio&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.prev}&prev=zur&uuml;ck&cid=${data.cid}">zurueck</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Audio&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.next}&next=weiter&cid=${data.cid}">weiter</a>
+</if>
+</td></tr>
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/breaking.template b/templates/admin/breaking.template
new file mode 100755 (executable)
index 0000000..d0ed020
--- /dev/null
@@ -0,0 +1,42 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("breaking.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type="hidden" name="module" value="Breaking">
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("breaking.date")}:</B></span></td>
+    <td>
+      ${data.webdb_create_formatted}
+    </td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("breaking.text")}:</B> ${lang("breaking.textinfo")}</span></td>
+    <td>
+        <textarea cols="50" rows="3" name="text" wrap=virtual>${data.text}</textarea>
+    </td>
+  </tr>
+
+  <tr>
+    <td colspan="2" align="right"> <span class="wite"><if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/breakinglist.template b/templates/admin/breakinglist.template
new file mode 100755 (executable)
index 0000000..d9b5bfb
--- /dev/null
@@ -0,0 +1,49 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("breakinglist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr class="darkgrey">
+    <td><span class="witesmall"><b>${lang("breaking.date")}</b></span></td>
+    <td><span class="witesmall"><b>${lang("breaking.text")}</b></span></td>
+    <td>&nbsp;</td>
+  </tr>
+
+  <list data.contentlist as entry>
+  <tr
+       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>${entry.webdb_create_formatted}&nbsp;</td>
+  <td>${entry.text}&nbsp;</td>
+  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Breaking&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Breaking&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      /  ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+      <P>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Breaking&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Breaking&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/comment.template b/templates/admin/comment.template
new file mode 100755 (executable)
index 0000000..4a3d553
--- /dev/null
@@ -0,0 +1,85 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("comment.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Comment">
+       <input type="hidden" name="where" value="${utility.encodeHTML(data.where)}">
+       <input type="hidden" name="offset" value="${utility.encodeHTML(data.offset)}">
+       <input type="hidden" name="order" value="${utility.encodeHTML(data.order)}">
+       <input type="hidden" name="id" value="${utility.encodeHTML(data.id)}">
+       <input type="hidden" name="date" value="${utility.encodeHTML(data.date)}">
+       <input type="hidden" name="to_media" value="${utility.encodeHTML(data.to_media)}">
+       <if new> <input type="hidden" name="do" value="insert">
+       <else>   <input type="hidden" name="do" value="update">
+       </if>
+
+       <table border="0">      
+
+       <tr> 
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.date")}:</B></span></td>
+    <td>${utility.encodeHTML(utility.encodeHTML(data.date))}</td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.title")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="title" value="${utility.encodeHTML(data.title)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.creator")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="creator" value="${utility.encodeHTML(data.creator)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.url")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="main_url" value="${utility.encodeHTML(data.main_url)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.email")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="email" value="${utility.encodeHTML(data.email)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.phone")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="phone" value="${utility.encodeHTML(data.phone)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.address")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="address" value="${utility.encodeHTML(data.address)}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("comment.text")}:</B></span></td>
+    <td><textarea cols="40" rows="10" name="description" wrap="virtual">${utility.encodeHTML(data.description)}</textarea></td>
+       </tr>
+
+    <td colspan="2" align="right"> <span class="text">
+       ${lang("comment.published")} <input type="checkbox" name="is_published" value="1" <if data.is_published=="1"> checked</if>>
+       <if new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/commentlist.template b/templates/admin/commentlist.template
new file mode 100755 (executable)
index 0000000..c4fbfba
--- /dev/null
@@ -0,0 +1,102 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("commentlist.htmltitle")}</title>
+       <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr>
+    <td colspan="5">
+        <form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Comment">
+       <input type="hidden" name="do" value="list">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">
+       <select name="query_field">
+    <option value="title"<if data.query_field=="title"> selected</if>>${lang("comment.title")}</option>
+    <option value="creator"<if data.query_field=="creator"> selected</if>>${lang("comment.creator")}</option>
+    <option value="description"<if data.query_field=="description"> selected</if>>${lang("comment.text")}</option>
+    </select>
+       <select name="query_is_published">
+    <option value="">--</option>
+    <option value="0" <if data.query_is_published=="0"> selected</if>>${lang("commentlist.hidden")}</option>
+    <option value="1" <if data.query_is_published=="1"> selected</if>>${lang("commentlist.produced")}</option>
+    </select>
+    <select name="order">
+    <option value="webdb_create" <if data.order=="webdb_create"> selected</if>>${lang("comment.date")}</option>
+    <option value="articletitle" <if data.order=="articletitle"> selected</if>>${lang("comment.title")}</option>
+    </select>
+       <input type="submit" name="search" value="${lang("commentlist.search")}">
+       </form>
+       </td>
+  </tr>
+
+  <tr class="pink">
+       <td><p class="head">${lang("comment.date")}</p></td>
+               <td><p class="head">${lang("comment.title")}/ ${lang("comment.creator")}<br>
+                                       ${lang("comment.text")}</p></td>
+    <td><p class="head">${lang("comment.article")}</P></td>
+  </tr>
+
+<if data.contentlist>
+
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">class="list1"<else><assign grey="1">class="list2"</if>>
+
+               <td>${entry.webdb_create_short}<br>
+       <if entry.is_published=="0"><span class="spezialtext">hidden</span><else>-</if>
+               </td>
+
+               <td>
+                       <if entry.title><b>${entry.title}</b><br></if>
+                       <if entry.creator>Von: ${entry.creator}<br></if>
+                       <span class="small">${entry.description}</span>
+                       <if entry.main_url><br>URL: ${entry.main_url}</if>
+                       <br><a href="${config.actionRoot}?module=Comment&do=edit&order=${data.order}&offset=${data.offset}&id=${entry.id}">${lang("edit")}</a>
+               </td>
+
+
+               <td>
+                               ${data.articleHash[entry.to_media]["title"]}<br>
+                               <a href="${config.actionRoot}?module=Content&do=edit&id=${data.articleHash[entry.to_media]["id"]}">
+                               edit</a> |
+                               <a href="${config["Producer.ProductionHost"]}${config["Producer.DocRoot"]}${data.articleHash[entry.to_media]["publish_path"]}${data.articleHash[entry.to_media]["id"]}.shtml">
+                               view</a>
+               </td>
+
+               <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Comment&do=delete&id=${entry.id}">${lang("delete")}</a>
+                       </span></td>
+
+       </tr>
+  </list>
+
+  <tr>
+    <td colspan="3" class="darkgrey"><span class="wite">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+<tr><td>
+
+<if data.prev>
+<a href="${config.actionRoot}?module=Comment&do=list&order=${data.order}&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.prev}&prev=zur&uuml;ck">zurueck</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Comment&do=list&order=${data.order}&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.next}&next=weiter">weiter</a>
+</if>
+</td></tr>
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+</table>
+
+<include "templates/admin/foot.template">
+
+</body>
+</html>
+
+
diff --git a/templates/admin/confirm.template b/templates/admin/confirm.template
new file mode 100755 (executable)
index 0000000..a229630
--- /dev/null
@@ -0,0 +1,35 @@
+<html>
+  <head>
+        <title>${config["Mir.Name"]} | ${lang("confirm.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+  <include "templates/admin/head_nonavi.template">
+<table width="100%" border="0" align="center">
+  <tr class="darkgrey">
+    <td colspan="2"> 
+      <h2 align="center"><span class="litetitel">${lang("confirm.really_delete")}</span></h2>
+    </td>
+  </tr>
+  <tr> 
+    <td colspan="2">
+      <form method="post" action="${config.actionRoot}">
+        <div align="center">
+          <input type="hidden" name="module" value=${data.module}>
+          <input type="hidden" name="do" value="delete">
+          <input type="hidden" name="id" value="${data.id}">
+          <input type="hidden" name="where" value="${data.where}">
+          <input type="hidden" name="order" value="${data.order}">
+          <input type="hidden" name="offset" value="${data.offset}">
+          <input type="submit" name="cancel" value="${lang("cancel")}">
+          <input type="submit" name="confirm" value="${lang("delete")}">
+        </div>
+      </form>
+    </td>
+  </tr>
+</table>
+<include "templates/admin/foot.template">
+  </body>
+</html>
diff --git a/templates/admin/content.template b/templates/admin/content.template
new file mode 100755 (executable)
index 0000000..74b064c
--- /dev/null
@@ -0,0 +1,346 @@
+<html>
+  <head>
+    <title>${lang("content.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css"
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  </head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Content">
+       <input type="hidden" name="where" value="${utility.encodeHTML(data.where)}">
+       <input type="hidden" name="offset" value="${utility.encodeHTML(data.offset)}">
+       <input type="hidden" name="order" value="${utility.encodeHTML(data.order)}">
+       <input type="hidden" name="id" value="${utility.encodeHTML(data.id)}">
+       <if data.new>
+               <input type="hidden" name="do" value="insert">
+       <else>
+               <input type="hidden" name="do" value="update">
+       </if>
+
+<table border="0" width="80%" align="middle">
+<tr>
+       <td align="right" class="grey">
+         <span class="witetext">
+               <b>${lang("content.owner")}:</b>
+         </span>
+       </td>
+               <td>
+        <span class="specialtext">
+               ${utility.encodeHTML(data.login_user.login)}
+        </span>
+       </td>
+       <td colspan="3">&nbsp;</td>
+</tr>
+<tr>
+       <td align="right" class="grey">
+        <span class="witetext">
+         <b>${lang("content.import_date")}:</b>
+        </span>
+       </td>
+       <td>
+        <span class="witetext">
+               ${utility.encodeHTML(data.date)}
+        </span>
+       </td>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+       <td align="right" class="grey">
+        <span class="witetext">
+         <b>${lang("content.lastchange_date")}:</b>
+        </span>
+       </td>
+       <td>
+               ${utility.encodeHTML(data.webdb_lastchange)}<br>
+       </td>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+         <b>${lang("content.create_date")}:</b>
+        </span>
+       </td>
+       <td colspan="3">
+               ${utility.encodeHTML(data.webdb_create)}<br><br>${lang("edit")} (yyyy-mm-dd [HH:mm]):
+               <input type="text" size="10" maxlength="16" name="webdb_create" value=""><br>
+       </td>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.topic")}&nbsp;<a href="${config.docRoot}/help/content.html">
+               <img src=" ${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               &nbsp;/&nbsp;${lang("content.feature")}:&nbsp;
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="middle"></a>
+               </B>
+        </span>
+       </td>
+       <td colspan="4" >
+               <table border=0 cellpadding="0" cellspacing="0">
+               <tr>
+               <td>
+               <select name="to_article_type">
+               <list extra.articletypePopupData as a>
+                       <option value="${a.key}" <if (a.key == data.to_article_type)>selected</if>>${a.value}</option>
+               </list>
+               </select>
+               <select name="to_feature">
+               <list extra.schwerpunktPopupData as s>
+                       <option value="${s.key}" <if (s.key == data.to_feature)>selected</if>>${s.value}</option>
+               </list>
+               </select>
+               </td>
+               <td rowspan="2">
+               <select name="to_topic" size="5" multiple>
+
+               <list extra.themenPopupData as t>
+               <option value="${t.key}" <list data.to_topics as to><if (t.key == to["id"])>selected</if></list>>${t.value}</option>
+               </list>
+
+               </select>
+               </td>
+               </tr>
+               <tr>
+               <td>
+               <select name="to_language">
+               <list extra.languagePopupData as l>
+                       <option value="${l.key}" <if (l.key == data.to_language)>selected</if>>${l.value}</option>
+               </list>
+               </select>
+               <td>
+               </tr>
+               </table>
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.title")}:&nbsp;<br><br>${lang("content.subtitle")}:&nbsp;<br>
+               <a href="${config.docRoot}/help/content.html#title">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </B>
+        </span>
+       </td>
+       <td colspan="4">
+               <input type="text" size="40" name="title" value="${utility.encodeHTML(data.title)}"><br>
+               <input type="text" size="20" name="subtitle" value="${utility.encodeHTML(data.subtitle)}">
+               <input type="text" size="20" name="edittitle" value="${utility.encodeHTML(data.edittitle)}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.location")}:
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="middle"></a>
+               </B>
+        </span>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="40" name="place" value="${utility.encodeHTML(data.place)}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.creator")}:</B>
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="middle"></a>
+        </span>
+       </td>
+       <td colspan="4">
+               <input type="text" size="40" name="creator" value="${utility.encodeHTML(data.creator)}"><br>
+       </td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.creator.email")}/${lang("content.creator.url")}:</B>
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+        </span>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="20" name="creator_email" value="${utility.encodeHTML(data.creator_email)}">
+               <input type="text" size="20" name="creator_main_url" value="${utility.encodeHTML(data.creator_main_url)}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.creator.address")}/${lang("content.creator.telephone")}:</B>
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+        </span>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="20" name="creator_address" value="${utility.encodeHTML(data.creator_address)}">
+               <input type="text" size="20" name="creator_phone" value="${utility.encodeHTML(data.creator_phone)}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.abstract")}:</B>
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+        </span>
+       </td>
+       <td colspan="4">
+               <textarea cols="50" rows="15" name="description" wrap=virtual>${data.description}</textarea>
+       </td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span class="witetext">
+               <B>${lang("content.content")}:
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               ${lang("content.html")}
+               <input type="checkbox" name="is_html" value="1"<if
+               data.is_html=="1"> checked</if>>&nbsp;
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </B>
+        </span>
+       </td>
+       <td colspan="4">
+        <textarea cols="50" rows="20" name="content_data" wrap=virtual>${data.content_data}</textarea>
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+        <span="class">
+               <B>${lang("content.comment")}:</B><br>
+               <i>${lang("content.internal")}</i>
+        </span>
+       </td>
+       <td colspan="4">
+               <textarea cols="50" rows="6" name="comment" wrap=virtual>${utility.encodeHTML(data.comment)}</textarea>
+       </td>
+</tr>
+
+<tr>
+       <td>&nbsp;</td>
+       <td>&nbsp;</td>
+       <td>&nbsp;</td>
+       <td colspan="2" align="right" valign="top">
+               frei <a href="${config.docRoot}/help/content.html"><img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>:
+               <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+               <if data.new>
+               <input type="submit" name="save" value="${lang("insert")}">
+               <else>
+               <input type="submit" name="save" value="${lang("save")}">
+               </if>
+       </td>
+</tr>
+
+<tr><td class="pink" colspan="5">${lang("content.attachments")}</td></tr>
+       <!-- image stuff -->
+       <list data.to_media_images as m>
+<tr>
+       <td align=right valign=top class="grey">
+        <span="witetext">
+               <B>${lang("content.images")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.actionRoot}?module=Images&do=showicon&id=${m["id"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.media")}:</B>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Images&do=list&cid=${data.id}">${lang("content.addimage")}</a>
+       </td>
+</tr>
+<list data.to_media_audio as m>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.audio")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.media")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Audio&do=list&cid=${data.id}">${lang("content.addaudio")}</a>
+       </td>
+</tr>
+<list data.to_media_video as m>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.video")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.media")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=list&cid=${data.id}">${lang("content.addvideo")}</a>
+       </td>
+</tr>
+<list data.to_media_other as m>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.other")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+        <span class="witetext">
+               <B>${lang("content.media")}:</B>
+        </span>
+       </td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=OtherMedia&do=list&cid=${data.id}">${lang("content.addother")}</a>
+       </td>
+</tr>
+</table>
+</form>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/content.template.trez.backed-up-by-mh.20020805 b/templates/admin/content.template.trez.backed-up-by-mh.20020805
new file mode 100755 (executable)
index 0000000..e6e718d
--- /dev/null
@@ -0,0 +1,328 @@
+<html>
+<head>
+        <title>${lang("content.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="/style/admin.css">
+
+</head>
+
+<body marginwidth="0" marginheigt="0" topmargin="0" leftmargin="0">
+
+<include "admin/head.template">
+<form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Content">
+       <input type="hidden" name="where" value="${data.where}">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="hidden" name="order" value="${data.order}">
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new>
+               <input type="hidden" name="do" value="insert">
+       <else>
+               <input type="hidden" name="do" value="update">
+       </if>
+
+<table border="0" width="80%" align=middle>
+<tr>
+       <span class="witesmall">
+       <td align="right" class="grey">
+         <span class="witesmall">
+               <b>${lang("content.owner")}:</span></B>
+  </td>
+       <td>
+    ${data.login_user.login}
+  </td>
+       </span>
+       <td colspan="3">&nbsp;</td>
+</tr>
+<tr>
+  <td align="right" class="grey">
+         <span class="witesmall">
+    <b>${lang("content.import_date")}:</span></B>
+  </td>
+  <td>
+    ${data.date}
+  </td>
+       </span>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+  <td align="right" class="grey">
+         <span class="witesmall">
+    <b>${lang("content.lastchange_date")}:</span></B>
+  </td>
+  <td>
+               ${data.webdb_lastchange}
+    <br>
+  </td>
+       </span>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+  <td align="right" class="grey">
+         <span class="witesmall">
+    <b>${lang("content.create_date")}:</span></B>
+  </td>
+  <td>
+       <!--<input type="text" size="10" maxlength="10" name="webdb_create_update" value="${data.webdb_create_short}">-->
+    <br>
+  </td>
+       </span>
+       <td colspan="3">&nbsp;</td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey"><span class="witesmall">
+               <B>${lang("content.topic")}&nbsp;<a href="${config.docRoot}/help/content.html">
+               <img src=" ${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               &nbsp;/&nbsp;${lang("content.feature")}:&nbsp;
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </span></B></span>
+       </td>
+       <td colspan="4" >
+               <table border=0 cellpadding="0" cellspacing="0">
+               <tr>
+               <td>
+               <select name="to_article_type">
+               <list extra.articletypePopupData as a>
+                       <option value="${a.key}" <if (a.key == data.to_article_type)>selected</if>>${a.value}</option>
+               </list>
+               </select>
+               <select name="to_feature">
+               <list extra.schwerpunktPopupData as s>
+                       <option value="${s.key}" <if (s.key == data.to_feature)>selected</if>>${s.value}</option>
+               </list>
+               </select>
+               </td>
+               <td rowspan="2">
+               <select name="to_topic" size="5" multiple>
+
+               <list extra.themenPopupData as t>
+               <option value="${t.key}" <list data.to_topics as to><if (t.key == to["id"])>selected</if></list>>${t.value}</option>
+               </list>
+
+               </select>
+               </td>
+               </tr>
+               <tr>
+               <td>
+               <select name="to_language">
+               <list extra.languagePopupData as l>
+                       <option value="${l.key}" <if (l.key == data.to_language)>selected</if>>${l.value}</option>
+               </list>
+               </select>
+               <td>
+               </tr>
+               </table>
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">${lang("content.title")}:&nbsp;<br><br>${lang("content.subtitle")}:&nbsp;<br>
+               <a href="${config.docRoot}/help/content.html#title">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </span></span></B>
+       </td>
+       <td colspan="4">
+               <input type="text" size="40" name="title" value="${data.title}"><br>
+               <input type="text" size="20" name="subtitle" value="${data.subtitle}">
+               <input type="text" size="20" name="edittitle" value="${data.edittitle}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">${lang("content.location")}:</span>
+               <span class="witesmall">
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </span></span></B>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="40" name="place" value="${data.place}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+               <span class="witesmall"><B>${lang("content.creator")}:</span></B></span>
+               <span class="witesmall">
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a></span>
+       </td>
+       <td colspan="4">
+               <input type="text" size="40" name="creator" value="${data.creator}"><br>
+       </td>
+</tr>
+
+<tr>
+       <td align="right" valign="top" class="grey">
+               <span class="witesmall"><B>${lang("content.creator.email")}/${lang("content.creator.url")}:</span></B></span>
+               <span class="witesmall">
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a></span>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="20" name="creator_email" value="${data.creator_email}">
+               <input type="text" size="20" name="creator_main_url" value="${data.creator_main_url}">
+       </td>
+</tr>
+<tr>
+       <td align="right" valign="top" class="grey">
+               <span class="witesmall"><B>${lang("content.creator.address")}/${lang("content.creator.telephone")}:</span></B></span>
+               <span class="witesmall">
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a></span>
+       </td>
+       <td colspan="4" >
+               <input type="text" size="20" name="creator_address" value="${data.creator_address}">
+               <input type="text" size="20" name="creator_phone" value="${data.creator_phone}">
+       </td>
+</tr>
+<tr>
+  <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">${lang("content.abstract")}:</span></span></B>
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+       </td>
+       <td colspan="4">
+               <textarea cols="50" rows="15" name="description" wrap=virtual>${data.description}</textarea>
+       </td>
+</tr>
+
+<tr>
+    <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">${lang("content.content")}:
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               ${lang("content.html")}</span> <input type="checkbox" name="is_html" value="1"<if
+               data.is_html=="1"> checked</if>>&nbsp;
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+       </span></span></B></td>
+       <td colspan="4">
+       <textarea cols="50" rows="20" name="content_data" wrap=virtual>${data.content_data}</textarea></td>
+</tr>
+<!--
+<tr>
+       <td align="right" valign="top" class="grey"><B><span class="witesmall">Termin (von/bis)
+               <span class="text">
+               <a href="${config.docRoot}/help/content.html">
+               <img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a></span>
+               </span>:</span></B></td>
+       <td nowrap>
+               <input type="text" size="8" maxlength="8" name="date_from" value="${data.date_from}">
+               <input type="text" size="8" maxlength="8" name="date_to" value="${data.date_to}">
+       </td>
+       <td>
+               &nbsp;
+       </td>
+       <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">Termin Name:&nbsp;
+               <a href="${config.docRoot}/help/content.html"><img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
+               </span></span></B>
+       </td>
+       <td>
+               <input type="text" size="25" name="date_name" value="${data.date_name}">
+       </td>
+</tr>
+-->
+<tr>
+       <td align="right" valign="top" class="grey">
+               <B><span class="witesmall">${lang("content.comment")}:</span></B><br>
+               <i>${lang("content.internal")}</i></span>
+       </td>
+       <td colspan="4">
+               <textarea cols="50" rows="6" name="comment" wrap=virtual>${data.comment}</textarea>
+       </td>
+</tr>
+
+<tr>
+       <td>&nbsp;</td>
+       <td>&nbsp;</td>
+       <td>&nbsp;</td>
+       <td colspan="2" align="right" valign="top">
+               free: <a href="${config.docRoot}/help/content.html"><img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>:
+               <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+               <if data.new>
+               <input type="submit" name="save" value="${lang("insert")}">
+               <else>
+               <input type="submit" name="save" value="${lang("save")}">
+               </if>
+       </td>
+</tr>
+
+<tr><td class="pink" colspan="5">${lang("content.attachments")}</td></tr>
+<!-- image stuff -->
+<list data.to_media_images as m>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.images")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.actionRoot}?module=Images&do=showicon&id=${m["id"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.media")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Images&do=list&cid=${data.id}">${lang("content.addimage")}</a>
+       </td>
+</tr>
+<list data.to_media_audio as m>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.audio")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.media")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Audio&do=list&cid=${data.id}">${lang("content.addaudio")}</a>
+       </td>
+</tr>
+<list data.to_media_video as m>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.video")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.media")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=list&cid=${data.id}">${lang("content.addvideo")}</a>
+       </td>
+</tr>
+<list data.to_media_other as m>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.other")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+               <a href="${config.actionRoot}?module=Content&do=dettach&cid=${data.id}&mid=${m["id"]}">${lang("delete")}</a>
+       </td>
+</tr>
+</list>
+<tr>
+       <td align=right valign=top class="grey">
+               <B><span class="witesmall">${lang("content.media")}:</span></B><br></td>
+       <td colspan="4" align="left" valign="top">
+               <a href="${config.actionRoot}?module=OtherMedia&do=list&cid=${data.id}">${lang("content.addother")}</a>
+       </td>
+</tr>
+</table>
+</form>
+<include "admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/contentlist.template b/templates/admin/contentlist.template
new file mode 100755 (executable)
index 0000000..1b2e13e
--- /dev/null
@@ -0,0 +1,78 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("contentlist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+       <table border="0" width="100%" cellspacing="0" cellpadding="2">
+         <tr class="darkgrey">
+           <td><span class="witesmall">
+                       ${lang("content.creationdate")}<br>
+                       ${lang("content.modificationdate")}<br>
+                       ${lang("content.status")}</span></td>
+           <td><span class="witesmall">
+                       ${lang("content.type")} / ${lang("content.location")}: ${lang("content.title")}<br>
+                       ${lang("content.creator")}</span></td>
+           <td ><span class="witesmall">${lang("content.topic")}<br>${lang("content.feature")}</span></td>
+           <td width="25%"><span class="witesmall">
+                       ${lang("content.comment")}</span></td>
+               <td class="darkgrey">&nbsp;</td>
+         </tr>
+
+       <list data.contentlist as entry>
+         <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"></if>>
+           <td><span class="x-small">
+                       ${entry.webdb_create_formatted}<br>
+                       <if entry.webdb_lastchange>${entry.webdb_lastchange_formatted}<else>-</if><br>
+                       <if entry.is_published!="0">F<else>-</if>
+                       <if entry.is_html!="0">H<else>-</if>
+                       </span></td>
+           <td><span class="small"><b>
+                       <span class="x-small">${articletypeHash[entry.to_article_type]["name"]} -- </span><if entry.place>${entry.place}: </if>${entry.title}</b><br>
+                       ${entry.creator}&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=edit&id=${entry.id}&where=${data.where_encoded}&order=${data.order_encoded}&offset=${data.offset}">${lang("edit")}</a>
+                       <if entry.to_article_type=="0">&nbsp;|&nbsp;<a href="${config.actionRoot}?module=Content&do=newswire&id=${entry.id}&where=${data.where_encoded}&order=${data.order_encoded}&offset=${data.offset}">newswire</a></if></span></td>
+           <td><span class="small">
+                       <if entry.thema_id!="0">${themenHashData[entry.thema_id]["name"]}</if>&nbsp;<br>
+                       <if entry.to_feature!="0">${schwerpunktHashData[entry.to_feature]["title"]}</if>&nbsp;</span></td>
+           <td width="20%" <if grey=="1">class="list3"<else>class="list4"</if> valign="top"><span class="x-small">
+                       ${entry.comment}&nbsp;</span></td>
+           <td class0"litegrey"><span class="text">
+             <a href="${config.actionRoot}?module=Content&do=delete&id=${entry.id}&where=${data.where_encoded}&order=${data.order_encoded}&offset=${data.offset}">${lang("delete")}</a>
+             </span></td>
+       </tr>
+       </list>
+       <tr class="darkgrey">
+           <td colspan="4"><span class="witesmall">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td></tr>
+       </table>
+
+      <P>
+<if data.prev || data.next>
+ <form method="post" action="${config.actionRoot}">
+ <input type="hidden" name="module" value="Content">
+ <input type="hidden" name="do" value="listop">
+ <input type="hidden" name="where" value="${data.where}">
+ <input type="hidden" name="order" value="${data.order}">
+<if data.prev>
+ <input type="hidden" name="prevoffset" value="${data.prev}">
+ <input type="submit" name="prev" value="${lang("list.previous")}">
+</if>
+<if data.next>
+ <input type="hidden" name="nextoffset" value="${data.next}">
+ <input type="submit" name="next" value="${lang("list.next")}">
+</if>
+ </form>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/feature.template b/templates/admin/feature.template
new file mode 100755 (executable)
index 0000000..92f993e
--- /dev/null
@@ -0,0 +1,65 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("feature.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0">
+  <form method="post" action="${config.actionRoot}">
+    <input type="hidden" name="module" value="Schwerpunkt">
+    <input type="hidden" name="where" value="${data.where}">
+    <input type="hidden" name="offset" value="${data.offset}">
+    <input type="hidden" name="order" value="${data.order}">
+    <if data.new>
+    <input type="hidden" name="do" value="insert">
+    <else>
+    <input type="hidden" name="do" value="update">
+    </if>
+    <input type="hidden" name="id" value="${data.id}">
+    <tr>
+      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("feature.title")}:</B></span></td>
+      <td>
+        <input type="text" size="40" name="title" value="${data.title}">
+        <select name="is_published">
+                       <option value="1"<if data.is_published!="0">selected</if>>${lang("feature.is_published")}</option>
+                       <option value="0" <if data.is_published=="0">selected</if>>${lang("feature.is_not_published")}</option>
+        </select>
+      </td>
+    </tr>
+
+    <tr>
+      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("feature.filename")}:</B></span></td>
+      <td>
+         <input type="text" size="20" name="filename" value="${data.filename}">
+      </td>
+    </tr>
+
+    <tr>
+      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("feature.abstract")}:</B></span></td>
+      <td>
+        <textarea cols="40" rows="3" name="description">${data.description}</textarea>
+      </td>
+    </tr>
+
+    <tr>
+      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("feature.link")}:</B></span></td>
+      <td>
+        <input type="text" size="40" name="main_url" value="${data.main_url}">
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="right" valign="top" bgcolor="#ffffff"> <span class="witetext"><if new>
+        <input type="submit" name="save" value="${lang("insert")}">
+        <else>
+        <input type="submit" name="save" value="${lang("save")}">
+        </if></span></td>
+    </tr>
+  </form>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/featurelist.template b/templates/admin/featurelist.template
new file mode 100755 (executable)
index 0000000..2ee4c10
--- /dev/null
@@ -0,0 +1,70 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("featurelist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+
+<if data.contentlist>
+<table border="0">
+  <tr class="darkgrey">
+    <td><span class="witesmall">${lang("feature.published")}</span></td>
+    <td><span class="witesmall">${lang("feature.title")}</span></td>
+   <td><span class="witesmall">${lang("feature.filename")}</span></td>
+    <td><span class="witesmall">${lang("feature.link")}</span></td>
+    <td><span class="witesmall">${lang("feature.abstract")}</span></td>
+  </tr>
+  <list data.contentlist as entry>
+  <tr
+  <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td align="center"><if entry.is_published!="0">X<else>&nbsp;</if></td>
+  <td>${entry.title}&nbsp;</td>
+  <td>${entry.filename}&nbsp;</td>
+  <td>${entry.main_url}&nbsp;</td>
+  <td>${entry.description}&nbsp;</td>
+  <td><span class="text"> <a href="${config.actionRoot}?module=Schwerpunkt&do=delete&id=${entry.id}">${lang("delete")}</a>
+  | <a href="${config.actionRoot}?module=Schwerpunkt&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+
+  <tr>
+    <td align="center" colspan="5" class="darkgrey">
+      <div align="left"><span class="witesmall">${data.count} ${lang("records")} /
+        ${lang("show_from_to", data.from, data.to)}</span></div>
+    </td>
+    <td><a href="${config.docRoot}"><span class="text">&nbsp;${lang("back")}</span></a></td>
+  </tr>
+</table>
+
+      <P>
+<if (data.prev || data.next)>
+ <form method="post" action="${config.actionRoot}">
+ <input type="hidden" name="module" value="Schwerpunkt">
+ <input type="hidden" name="where" value="${data.where}">
+<if data.prev>
+ <input type="hidden" name="prevoffset" value="${data.prev}">
+ <input type="submit" name="prev" value="${lang("list.previous")}">
+</if>
+<if data.next>
+ <input type="hidden" name="nextoffset" value="${data.next}">
+ <input type="submit" name="next" value="${lang("list.next")}">
+</if>
+ </form>
+</if>
+
+
+<else>
+
+  <P align="center">${lang("no_matches_found")}</p>
+
+</if>
+
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/fileedit.template b/templates/admin/fileedit.template
new file mode 100755 (executable)
index 0000000..1a7c975
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("fileedit")}</title>
+  <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<br>
+<b>${lang("fileedit")} :</b> ${data.filename}
+
+<br>
+
+<form action="${config.actionRoot}" method="post">
+
+       <input type="hidden" name="module" value="FileEdit">
+       <input type="hidden" name="filename" value="${data.filename}">
+        <input type="hidden" name="do" value="update">
+
+
+        <textarea cols="66" rows="40" name="text" wrap=virtual>${data.text}</textarea>
+
+<br>
+
+
+
+        <input type="submit" name="save" value="${lang("save")}"> &nbsp;
+        <input type="reset" value="${lang("reset")}">
+
+
+</form>
+<br>
+<br>
+
+${lang("preview")}
+
+<hr size="2" width="90%" noshade>
+
+${data.text}
+
+<hr size="2" width="90%" noshade>
+<br>
+
+<include "templates/admin/foot.template">
+
+</body>
+</html>
+
+
diff --git a/templates/admin/fileeditlist.template b/templates/admin/fileeditlist.template
new file mode 100755 (executable)
index 0000000..2867b10
--- /dev/null
@@ -0,0 +1,42 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("fileedit")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+<include "templates/admin/head.template">
+
+
+<if data.filelist>
+
+<table border="0" cellpadding="2" cellspacing="1">
+
+  <tr class="dark">
+
+    <td><span class="witesmall"><b>${lang("language.file")}</b></span></td>
+       <td>&nbsp;</td>
+  </tr>
+
+
+  <list data.filelist as entry>
+        <tr
+        <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>
+        >
+                <td>${entry}&nbsp;</td>
+                <td><span class="small"><a href="${config.actionRoot}?module=FileEdit&do=edit&filename=${entry}">${lang("edit")}</a></span></td>
+        </tr>
+  </list>
+
+</table>
+
+      <P>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/foot.template b/templates/admin/foot.template
new file mode 100755 (executable)
index 0000000..bb724ba
--- /dev/null
@@ -0,0 +1,11 @@
+<table width="100%" cellspacing="0" cellpadding="0">
+<tr>
+       <td colspan=2><hr></td>
+</tr>
+<tr>
+       <td align="left" class="darkgrey"><span class="small">
+       <a href="#top"><span class="whitetext"><b>${lang("foot.top")}</b></span></a></span></td>
+       <td align="right"><span class="small">
+       <a href="mailto:${lang("imc.contact-email.address")}"><span class="spezialtext"><b>${config["Mir.Shortname"]}</b></span></a> - ${config["Mir.Version"]}</span></td>
+</tr>
+</table>
diff --git a/templates/admin/head.template b/templates/admin/head.template
new file mode 100755 (executable)
index 0000000..7c25ded
--- /dev/null
@@ -0,0 +1,13 @@
+<a name="top">
+<table width="100%" cellspacing="0" cellpadding="0">
+ <tr class="dark">
+  <td>
+   <img src="${config.docRoot}/img/logo_small.gif" border="0" align="middle">&nbsp;
+    <span class="witesmall">
+       <b>${config["Mir.Name"]}</b></span></td></tr>
+<tr><td align="right"><span class="spezialtext">
+       <a href="${config.actionRoot}"><span class="spezialtext">${lang("head.start")}</span></a> |
+       <a href="${config.actionRoot}?module=logout"><span class="spezialtext">${lang("head.logout")}</span></a> |
+       <a href="${config.docRoot}/help/help.html"><span class="spezialtext">${lang("head.help")}</span></a> | ${lang("head.search")}</span></td></tr>
+<tr><td><hr></td></tr>
+</table>
diff --git a/templates/admin/head_nonavi.template b/templates/admin/head_nonavi.template
new file mode 100755 (executable)
index 0000000..95660c1
--- /dev/null
@@ -0,0 +1,14 @@
+<a name="top">
+<table width="100%" cellspacing="0" cellpadding="0">
+ <tr class="dark">
+  <td>
+   <img src="${config.docRoot}/img/logo_small.gif" border="0" align="middle">&nbsp;
+    <span class="witesmall">
+       <b>${config["Mir.Name"]}</b></span></td></tr>
+<if login_user><tr><td align="right"><span class="spezialtext">
+       <b>${login_user.login}</b> ${lang("head.logged_in")} /
+       <a href="${actionRoot}?module=logout">${lang("head.logout")}</a></span>
+       </td></tr>
+</if>
+<tr><td><hr></td></tr>
+</table>
diff --git a/templates/admin/hiddenlist.template b/templates/admin/hiddenlist.template
new file mode 100755 (executable)
index 0000000..0e7e9cc
--- /dev/null
@@ -0,0 +1,108 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("start.content.hidden")}</title>
+       <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<table width="98%" class="pink">
+  <tr>
+    <td>
+
+
+<form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Hidden">
+       <input type="hidden" name="do" value="list">
+
+
+
+     ${lang("month")}
+    <select name="month">
+    <option value="01" selected >01</option>
+    <option value="02">02</option>
+    <option value="03">03</option>
+    <option value="04">04</option>
+    <option value="05">05</option>
+    <option value="06">06</option>
+    <option value="07">07</option>
+    <option value="08">08</option>
+    <option value="09">09</option>
+    <option value="10">10</option>
+    <option value="11">11</option>
+    <option value="12">12</option>
+    </select>
+    ${lang("year")}
+    <select name="year">
+    <option value="2001">2001</option>
+    <option value="2002" selected >2002</option>
+    <option value="2002">2003</option>
+    <option value="2002">2004</option>
+    <option value="2002">2005</option>
+    </select>
+
+    &nbsp;
+
+    <input type="submit" name="search" value="${lang("commentlist.search")}">
+</form>
+
+
+    </td>
+  </tr>
+</table>
+
+
+<br><br>
+
+<hr size="4" width="98%" noshade>
+
+<if data.contentlist>
+<table cellpadding="6" width="98%" class="litegrey">
+  <tr>
+    <td>
+     <p>${lang("start.content.hidden")} | ${lang("month")}: ${data.month} , ${lang("year")}:${data.year}</p>
+    </td>
+  </tr>
+</table>
+
+<list data.contentlist as i>
+<p>
+${lang("content.title")}: <b>${i.title}</b><br>
+${lang("content.creator")}: ${i.creator}<br>
+${lang("message.date")}: ${i.webdb_create_formatted}<br>
+<br>
+<if i.to_media_audio >additional media, type: audio<br></if>
+<if i.to_media_video >additional media, type: video<br></if>
+<if i.to_media_other >additional media, type: other<br></if>
+<if i.to_media_images >additional media, type: image<br></if>
+</p>
+
+<p>
+${lang("content.abstract")}:<br>
+${i.description_parsed}</p>
+
+<p>
+${lang("content.content")}:<br>
+${i.content_data_parsed}
+</p>
+<p>&nbsp;</p>
+<hr size="4" width="98%" noshade>
+<p>&nbsp;</p>
+
+</list>
+
+
+
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+
+
+<include "templates/admin/foot.template">
+
+</body>
+</html>
+
+
diff --git a/templates/admin/image.template b/templates/admin/image.template
new file mode 100755 (executable)
index 0000000..aedb80d
--- /dev/null
@@ -0,0 +1,154 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("image.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+<SCRIPT LANGUAGE="JavaScript">
+function openWin(url) {
+   window.open(url,"vc","scrollbars=0,height=${data.img_height},width=${data.img_width}");
+}
+</SCRIPT>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+
+<if data.new>
+<form action="${config.actionRoot}?module=Images&do=add" method="post">
+       <table border="0">
+       <tr>
+       <td align="right" class="darkgrey">
+       <span class="witesmall">
+       <b>${lang("media.nr_of_media")}</b> <br>
+       </span>
+       </td>
+       <td>
+       <input type="text" size="3" name="medianum" value="${medianum}">&nbsp;<input type="submit" value="${lang("media.nr_of_media.submit")}">
+       </td>
+       </tr>
+       </table>
+</form>
+</if>
+<form enctype="multipart/form-data" method="post" action="${config.actionRoot}?module=Images&do=<if data.new>insert<else>update</if>&id=${data.id}">
+       <table border="0">
+
+       <input type="hidden" name="where" value="${data.where}">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="hidden" name="order" value="${data.order}">
+       <input type="hidden" name="id" value="${data.id}">
+
+       <tr>
+    <td align="right" class="darkgrey">
+               <if (data.icon_data!="" && data.icon_data!="0") && !new>
+               <span class="witesmall">
+               <a href="JavaScript:openWin('${config.actionRoot}?module=Images&do=showimg&id=${data.id}')">
+               <img src="${config.actionRoot}?module=Images&do=showicon&id=${data.id}" border=0></a></span></td>
+               </if>
+    <td valign="bottom"><span class="spezialtext">
+               ${lang("media.created")}: ${data.webdb_create} <if data.webdb_lastchange>/ ${lang("media.changed")} ${data.webdb_lastchange}</if><br>
+               <if data.is_published=="1">${lang("media.published")}: ${data.publish_date} / ${data.publish_server}${data.publish_path}<br></if>
+               ${lang("media.format")}: ${data.img_width}x${data.img_height} / ${data.imgformatHashdata[to_img_format]["name"]} / ${data.imglayoutHashdata[to_img_layout]["name"]} /  ${data.imgcolorHashdata[to_img_color]["name"]}<br>
+               ${lang("media.rights")}: <b>${data.rightsHashdata[to_rights]["name"]}</b><br>
+               ${lang("media.type")}: <b>${data.imgtypeHashdata[to_img_type]["name"]}</b><br>
+      </span>
+       </td>
+       </tr>
+
+       <if data.new>
+       <list data.mediafields as m>
+               <tr>
+               <td align="right" class="darkgrey"><span class="witesmall">
+
+                       <B>${lang("media.title")}:<B>
+               </font> </td>
+               <td>
+                       <input type="text" name="media_title${m}" size="40" maxlength="80" value="">
+               </td>
+               </tr>
+               <tr>
+               <td align="right" class="darkgrey"></td>
+               <td>
+                               <INPUT TYPE="file" NAME="mpfile${m}"><br>
+               </td>
+               </tr>
+       </list>
+       <else>
+               <tr>
+               <td align="right" class="darkgrey"><span class="witesmall">
+                       <B>${lang("media.title")}:<B>
+               </td>
+               <td>
+                       <input type="text" name="title" size="40" maxlength="80" value="${data.title}">
+               </td>
+               </tr>
+       </if>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+         <B>${lang("media.mediafolder")}:</B></span></td>
+    <td>
+               <select name="to_media_folder">
+               <list extra.mediafolderPopupData as m>
+               <option value="${m.key}" <if m.key == data.to_media_folder>selected</if>>${m.value}</option>
+               </list>
+           </select>
+       </td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.description")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="description" value="${data.description}"></td>
+       </tr>
+
+       <tr>
+   <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.date")}:</B></span></td>
+    <td><input type="text" size="8" maxlength="8" name="date" value="${data.date}">
+               <input type="text" size="20" maxlength="40" name="year" value="${data.year}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.location")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="place" value="${data.place}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.creator")}:</B></span></td>
+    <td>
+               <input type="text" size="40" maxlength="80" name="creator" value="${data.creator}">
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.keywords")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="keywords">${data.keywords}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.comment")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="comment">${data.comment}</textarea></td>
+       </tr>
+
+       <tr>
+   <td colspan="2" align="right"> <span class="text">
+        <B>${lang("media.source")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="source" value="${data.source}"></td>
+       </tr>
+       <tr>
+    <td colspan="2" align="right"> <span class="text">
+       ${lang("media.is_published")} <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+       <if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></font>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/imagelist.template b/templates/admin/imagelist.template
new file mode 100755 (executable)
index 0000000..970ce94
--- /dev/null
@@ -0,0 +1,109 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("imagelist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr>
+    <td colspan="5"><form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Images">
+       <input type="hidden" name="do" value="list">
+       <input type="hidden" name="cid" value="${data.cid}">
+       <table border="0">
+       <tr class="pink">
+               <td>${lang("medialist.search_text_in")}:</td>
+               <td>${lang("media.published")}:</td>
+               <td>${lang("media.mediafolder")}:</td>
+               <td>&nbsp;</td>
+       </tr>
+       
+       <tr>
+       <td>
+               <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">
+               <select name="query_field">
+               <option value="title"<if data.query_field=="title"> selected</if>>${lang("media.title")}</option>
+               <option value="creator"<if data.query_field=="creator"> selected</if>>${lang("media.creator")}</option>
+               <option value="place"<if data.query_field=="place"> selected</if>>${lang("media.location")}</option>
+               <option value="keywords"<if data.query_field=="keywords"> selected</if>>${lang("media.keywords")}</option>
+       </select>
+       </td>
+       <td>
+               <select name="query_is_published">
+                   <option value="">${lang("dontcare")}</option>
+               <option value="0" <if data.query_is_published=="0"> selected</if>>${lang("no")}</option>
+                   <option value="1" <if data.query_is_published=="1"> selected</if>>${lang("yes")}</option>
+           </select>
+       </td>
+       <td>
+       <select name="query_media_folder">
+       <list extra.mediafolderPopupData as m>
+       <option value="${m.key}" <if m.key == query_media_folder>selected</if>>${m.value}</option>
+       </list>
+       </select>
+       </td>
+       <td>
+               <input type="submit" name="search" value="filter">      
+       </td>
+       </tr>   
+       </table>
+       </form>
+       </td>
+  </tr>
+
+  <tr class="darkgrey">
+       <td><span class="witesmall">
+       <b>${lang("media.icon")}</b></span></td>
+       <td><span class="witesmall">
+       <b>${lang("media.title")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.mediafolder")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.creator")}</b></span></td>
+  </tr>
+  <if data.contentlist>
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>
+       <if entry.icon_data!="" && entry.icon_data!="0">
+       <a href="${config.actionRoot}?module=Images&do=showimg&id=${entry.id}" target="new">
+         <img src="${config.actionRoot}?module=Images&do=showicon&id=${entry.id}" border=0></a></span></td>
+       </if>
+  <td>${entry.title}&nbsp;
+         <if entry.decription><br>${entry.description}</if></td>
+  <td>${data.mediafolderHashdata[entry.to_media_folder]["name"]}&nbsp;</td>
+  <td>${entry.creator}&nbsp;</td>
+  <td><span class="text">&nbsp;
+       <if data.cid><a href="${config.actionRoot}?module=Content&do=attach&mid=${entry.id}&cid=${data.cid}">${lang("attach")}</a>
+       <else>
+       <a href="${config.actionRoot}?module=Images&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Images&do=edit&id=${entry.id}">${lang("edit")}</a>
+       </if>
+       </span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="4" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+
+<tr><td>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Images&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.prev}&prev=zur&uuml;ck&cid=${data.cid}">zurueck</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Images&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.next}&next=weiter&cid=${data.cid}">weiter</a>
+</if>
+</td></tr>
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/language.template b/templates/admin/language.template
new file mode 100755 (executable)
index 0000000..5b034a5
--- /dev/null
@@ -0,0 +1,44 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("language.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type="hidden" name="module" value="Language">
+       <input type="hidden" name="id" value="${id}">
+       <if data.new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+         <B>${lang("language.name")}:</B></span></td>
+    <td>
+         <input type="text" name="name" size="30" value="${data.name}">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+         <B>${lang("language.code")}:</B></span></td>
+    <td>
+         <input type="text" name="code" size="2" maxlength="2" value="${data.code}">
+    </td>
+  </tr>
+
+
+  <tr>
+    <td colspan="2" align="right"> <span class="witetext"><if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+      <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/languagelist.template b/templates/admin/languagelist.template
new file mode 100755 (executable)
index 0000000..5ea92b3
--- /dev/null
@@ -0,0 +1,49 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("languagelist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr class="darkgrey">
+    <td><span class="witesmall"><b>${lang("language.name")}</b></span></td>
+    <td><span class="witesmall"><b>${lang("language.code")}</b></span></td>
+       <td>&nbsp;</td>
+  </tr>
+
+  <list data.contentlist as entry>
+  <tr>
+       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>${entry.name}&nbsp;</td>
+  <td>${entry.code}&nbsp;</td>
+  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Language&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Language&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+      <P>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/linksimcs.template b/templates/admin/linksimcs.template
new file mode 100755 (executable)
index 0000000..adbc65b
--- /dev/null
@@ -0,0 +1,74 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("linkimcs.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type=hidden name=module value=LinksImcs>
+       <input type="hidden" name="id" value="${data.entity.id}">
+       <if data.new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall>
+               <B>${lang("linkimcs.name")}:</B></span></td>
+    <td>
+       <input type="text" size="40" name="title" value="${data.entity.title}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall>
+               <B>${lang("linkimcs.continent")}:</B></span></td>
+    <td>
+               <if data.parentlist>
+       <select name="to_parent_id" size="1">
+                       <option value=NULL> ${lang("linkimcs.new_parent")}
+                       <list data.parentlist as entry><option value="${entry.id}"<if entry.id == data.entity.to_parent_id> selected</if>> ${entry.title}</list>
+               </select>
+               </if>
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("linkimcs.url")}:</B></span></td>
+    <td>
+      <input type="text" size="40" name="url" value="${data.entity.url}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("linkimcs.sort_by")}:</B></span></td>
+    <td>
+      <select name="sortpriority" size="1">
+               <option value="1"<if data.entity.sortpriority == 1> selected</if>> 1
+               <option value="2"<if data.entity.sortpriority == 2> selected</if>> 2
+               <option value="3"<if data.entity.sortpriority == 3> selected</if>> 3
+               <option value="4"<if data.entity.sortpriority == 4> selected</if>> 4
+               </select>
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("linkimcs.language")}:</B></span></td>
+    <td>
+      <select name="to_language" size="1">
+               <list data.languagelist as language>
+                       <option value="${language.id}"<if data.entity.to_language == language.id> selected</if>> ${language.name}
+               </list>
+         </select>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" align="right"><span class="witetext">
+               <if data.new>
+               <input type="submit" name="save" value="${lang("insert")}">
+       <else>
+               <input type="submit" name="save" value="${lang("save")}">
+       </if> </span></form></span>
+    </td>
+  </tr>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/linksimcslist.template b/templates/admin/linksimcslist.template
new file mode 100755 (executable)
index 0000000..9f44252
--- /dev/null
@@ -0,0 +1,108 @@
+<html>\r
+<head>\r
+       <title>${config["Mir.Name"]} | ${lang("linkimcslist.htmltitle")}</title>\r
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">\r
+</head>\r
+\r
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">\r
+\r
+<include "templates/admin/head.template">\r
+\r
+<form method="post" action="${config.actionRoot}">\r
+       <input type="hidden" name="module" value="LinksImcs">\r
+       <input type="hidden" name="do" value="list">\r
+       <input type="hidden" name="cid" value="">\r
+       <table border="0">\r
+       <tr class="pink">\r
+               <td>${lang("linkimcslist.search_in")}:</td>\r
+               <td>${lang("linkimcs.parent")}:</td>\r
+               <td>${lang("linkimcs.language")}:</td>\r
+               <td>&nbsp;</td>\r
+       </tr>\r
+       \r
+       <tr>\r
+       <td>\r
+               <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">\r
+               <select name="query_field">\r
+                       <option value="title"<if data.query_field == "title"> selected</if>>${lang("linkimcs.name")}\r
+                       <option value="url"<if data.query_field == "url"> selected</if>>${lang("linkimcs.url")}\r
+       </select>\r
+       </td>\r
+       <td>\r
+               <select name="to_parent_id">\r
+                       <option value=""></option>\r
+                   <list data.parentlist as parent><option value="${parent.id}"<if to_parent_id == parent.id> selected</if>>${parent.title}</option>\r
+                       </list>\r
+           </select>\r
+       </td>\r
+       <td>\r
+               <select name="to_language">\r
+                       <option value="">${lang("all")}</option>\r
+                       <list data.languagelist as language><option value="${language.id}"<if to_language == language.id> selected</if>>${language.name}</option>\r
+                       </list> \r
+               </select>\r
+       </td>\r
+       <td>\r
+               <input type="submit" name="search" value="${lang("filter")}">\r
+       </td>\r
+       </tr>   \r
+       </table>\r
+       </form>\r
+       \r
+<if data.imcslist>\r
+<table border="0">\r
+  <tr class="darkgrey">\r
+    <td><span class="witesmall">\r
+               <b>${lang("linkimcs.name")}</b></span></td>\r
+    <td><span class="witesmall">\r
+               <b>${lang("linkimcs.parent")}</b></span></td>\r
+       <td><span class="witesmall">\r
+               <b>${lang("linkimcs.url")}</b></span></td>\r
+       <td><span class="witesmall">\r
+               <b>${lang("linkimcs.sort_by")}</b></span></td>\r
+       <td><span class="witesmall">\r
+               <b>${lang("linkimcs.language")}</b></span></td>\r
+       <td><span class="witesmall">\r
+               <b>&nbsp;</b></span></td>\r
+  </tr>\r
+  <list data.imcslist as entry>\r
+  <assign parent = "">\r
+  <assign language = "">\r
+  <list data.parentlist as p>\r
+               <if entry.to_parent_id == p.id><assign parent = p.title></if>\r
+  </list>\r
+  <list data.languagelist as l>\r
+               <if entry.to_language == l.id><assign language = l.name></if>\r
+  </list>\r
+\r
+  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>\r
+       <td><span class="small">${entry.title}&nbsp;</span></td>\r
+       <td><span class="small">${parent}</span></td>\r
+       <td><span class="small">${entry.url}</span></td>\r
+       <td><span class="small">${entry.sortpriority}</span></td>\r
+       <td><span class="small">${data.language}</span></td>\r
+       <td><span class="text">&nbsp;<a href="${actionRoot}?module=LinksImcs&do=delete&id=${entry.id}">${lang("delete")}</a>\r
+       | <a href="${actionRoot}?module=LinksImcs&do=edit&id=${entry.id}">${lang("edit")}</a></span>\r
+       </td>\r
+  </tr>\r
+  </list>\r
+  <tr>\r
+  <td colspan="6" class="darkgrey"><span class="witesmall">\r
+       ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}</span></td>\r
+  <td>&nbsp;</td>\r
+  </tr>\r
+</table>\r
+<P>\r
+<if data.prev>\r
+       <a href="${config.actionRoot}?module=LinksImcs&do=list&order=${data.order}&query_text=${data.query_text_encoded}&query_field=${data.query_field}&to_parent_id=${data.to_parent_id}&to_language=${data.to_language}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;\r
+</if>\r
+<if data.next>\r
+<a href="${config.actionRoot}?module=LinksImcs&do=list&order=${data.order}&query_text=${data.query_text_encoded}&query_field=${data.query_field}&to_parent_id=${data.to_parent_id}&to_language=${data.to_language}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>\r
+</if>\r
+\r
+<else>\r
+  <P align="center">${lang("no_matches_found")}</p>\r
+</if>\r
+<include "templates/admin/foot.template">\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/templates/admin/login.template b/templates/admin/login.template
new file mode 100755 (executable)
index 0000000..39e7d1c
--- /dev/null
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+        <title>${config["Mir.Name"]} | ${lang("login.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+       <script language="JavaScript">
+       function placeFocus() {
+                       document.forms[0].elements[1].focus();
+       }
+       </script>
+
+  </head>
+  <body onLoad="placeFocus()" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+       <include "templates/admin/head_nonavi.template">
+    <center>
+       <p><span class="small">
+        ${lang("login.info")}
+        <a href="mailto:${config["Mir.Contact-email.address"]}"><span class="spezialtext">${config["Mir.Contact-email.name"]}</span></a>.
+        </span></p>
+       <hr>
+    <form method="post" action="${config.actionRootLogin}">
+       <input type="hidden" name="module" value="login">
+               <table border="0" cellpadding="2" cellspacing="0" class="dark">
+                       <tr class="darkgrey">
+                               <td colspan="2" align="center">
+                                       <span class="witetext">
+                                       <b>${lang("login.title")}</b></span>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td align="right">
+                                       <span class="witetext">${lang("login.name")}</span>
+                               </td>
+                               <td>
+                                       <input type="text" name="login" size="15">
+                               </td>
+                       </tr>
+                       <tr>
+                               <td align="right">
+                                       <span class="witetext">${lang("login.password")}</span>
+                               </td>
+                               <td>
+                                       <input type="password" name="password" size="15">
+                               </td>
+                       </tr>
+                       <tr>
+                               <td align="right">
+                                       <span class="witetext">${lang("login.language")}</span>
+                               </td>
+                               <td>
+                                       <select name="lang">
+                    <!-- this language selection should be solved better
+                            - list all available languages
+                    -->
+
+                                       <option value="en">${lang("login.language.en")}</option>
+                                       <option value="de">${lang("login.language.de")}</option>
+            <option value="es">${lang("login.language.es")}</option>
+            <option value="ay">${lang("login.language.ay")}</option>
+            <option value="gn"">${lang("login.language.gn")}</option>
+            <option value="qu"">${lang("login.language.qu")}</option>
+            <option value="tr">${lang("login.language.tr")}</option>
+
+            </select>
+
+                               </td>
+                       </tr>
+                       <tr>
+                               <td align="left">&nbsp;</td>
+                               <td align="left">
+                                       <input type="submit" value="${lang("login.submit")}">
+                               </td>
+                       </tr>
+               </table>
+    </form>
+       <include "templates/admin/foot.template">
+  </body>
+</html>
+
diff --git a/templates/admin/media.template b/templates/admin/media.template
new file mode 100755 (executable)
index 0000000..b364056
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("other_media.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+<SCRIPT LANGUAGE="JavaScript">
+function openWin(url) {
+   window.open(url,"vc","scrollbars=0,height=${data.img_height},width=${data.img_width}");
+}
+</SCRIPT>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<form enctype="multipart/form-data" method="post" action="${config.actionRoot}?module=OtherMedia&do=<if data.new>insert<else>update</if>&id=${data.id}">
+<if data.icon_data=="" || data.icon_data=="0">
+       <INPUT TYPE="file" NAME="mptest">
+</if>
+
+       <input type="hidden" name="where" value="${data.where}">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="hidden" name="order" value="${data.order}">
+       <input type="hidden" name="id" value="${data.id}">
+
+       <table border="0">
+       <tr>
+    <td align="right" class="darkgrey">
+               <span class="witesmall">
+                       <img src="${config.docRoot}/img/${data.big_icon}" border=0></span></td>
+    <td valign="bottom"><span class="spezialtext">
+               ${lang("media.created")}: ${data.webdb_create}
+        <if data.webdb_lastchange>/ ${lang("media.changed")} ${data.webdb_lastchange}</if><br>
+               <if data.is_published=="1">${lang("media.published")}: ${data.publish_date} / ${data.publish_server}${data.publish_path}<br></if>
+               ${lang("media.format")}: ${data.mimetype} / ${data.descr}<br>
+               ${lang("media.rights")}: <b>${data.rightsHashdata[to_rights]["name"]}</b><br>
+       </td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.mediafolder")}:</B></span></td>
+    <td>
+               <select name="to_media_folder">
+               <list extra.mediafolderPopupData as m>
+               <option value="${m.key}" <if m.key == data.to_media_folder>selected</if>>${m.value}</option>
+               </list>
+           </select>
+       </td>
+       </tr>
+
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.title")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="title" value="${data.title}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.description")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="description" value="${data.description}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.date")}:</B></span></td>
+    <td><input type="text" size="8" maxlength="8" name="date" value="${data.date}">
+               <input type="text" size="20" maxlength="40" name="year" value="${data.year}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.location")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="place" value="${data.place}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.creator")}:</B></span></td>
+    <td>
+               <input type="text" size="40" maxlength="80" name="creator" value="${data.creator}">
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.keywords")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="keywords">${data.keywords}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.comment")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="comment">${data.comment}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.source")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="source" value="${data.source}"></td>
+       </tr>
+       <tr>
+    <td colspan="2" align="right"> <span class="text">
+       ${lang("media.is_published")} <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+       <if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/mediafolder.template b/templates/admin/mediafolder.template
new file mode 100755 (executable)
index 0000000..b19878e
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("mediafolder.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form method="post" action="${config.actionRoot}">
+       <input type=hidden name=module value=Mediafolder>
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new> <input type="hidden" name="do" value="insert">
+       <else>   <input type="hidden" name="do" value="update"></if>
+
+<table border="0">
+
+  <tr> 
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("mediafolder.date")}:</B></span></td>
+    <td><input type="text" size="8" maxsize="8" name="date" value="${data.date}"></td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("mediafolder.name")}:</B></span></td>
+    <td><input type="text" size="40" name="name" value="${data.name}"></td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("mediafolder.location")}:</B></span></td>
+    <td><input type="text" size="40" name="place" value="${data.place}"></td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("mediafolder.comment")}:</B></span></td>
+    <td><textarea cols="40" rows="5" name="comment">${data.comment}</textarea></td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("mediafolder.keywords")}:</B></span></td>
+    <td><textarea cols="40" rows="4" name="keywords">${data.keywords}</textarea></td>
+  </tr>
+
+  <tr>
+    <td colspan="4" align="right"> <span class="witetext">
+               <if data.new> <input type="submit" name="save" value="${lang("insert")}">
+       <else>   <input type="submit" name="save" value="${lang("save")}"></if>
+               </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/mediafolderlist.template b/templates/admin/mediafolderlist.template
new file mode 100755 (executable)
index 0000000..e13c0e4
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("mediafolderlist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+       <table border="0">
+               <tr class="darkgrey">
+               <td><span class="witetext"><b>${lang("mediafolder.date")}</b></span></td>
+                   <td><span class="witetext"><b>${lang("mediafolder.name")}</b></span></td>
+               <td><span class="witetext"><b>${lang("mediafolder.location")}</b></span></td>
+                       <td><span class="witetext"><b>${lang("mediafolder.comment")}</b></span></td>
+                       <td><span class="witetext"><b>${lang("mediafolder.keywords")}</b></span></td>
+                </tr>
+         <list data.contentlist as entry>
+                 <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+                       <td>${entry.date}&nbsp;</td>
+                       <td><b>${entry.name}</b>&nbsp;</td>
+                       <td>${entry.place}&nbsp;</td>
+                       <td>${entry.comment}&nbsp;</td>
+                       <td>${entry.keywords}&nbsp;</td>
+                       <td><span class="text"><a href="${config.actionRoot}?module=Mediafolder&do=delete&id=${entry.id}">${lang("delete")}</a>
+                       | <a href="${config.actionRoot}?module=Mediafolder&do=edit&id=${entry.id}">${lang("edit")}</a>
+                               | <a href="${config.actionRoot}?module=Images&do=list&query_media_folder=${entry.id}">${lang("list")}</a></span></td>
+                 </tr>
+         </list>
+               <tr>
+       <td colspan="5" class="darkgrey"><span class="witetext">${data.count} ${lang("records")} /
+        ${lang("show_from_to", data.from, data.to)}</span></td>
+       <td>&nbsp;</td>
+               </tr>
+       </table>
+      <P>
+       <if data.prev>
+       <a href="${config.actionRoot}?module=Mediafolder&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+       </if>
+       <if data.next>
+       <a href="${config.actionRoot}?module=Mediafolder&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
+       </if>
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/medialist.template b/templates/admin/medialist.template
new file mode 100755 (executable)
index 0000000..2e3f7c8
--- /dev/null
@@ -0,0 +1,106 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("other_media.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr>
+    <td colspan="5"><form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="OtherMedia">
+       <input type="hidden" name="do" value="list">
+       <input type="hidden" name="cid" value="${data.cid}">
+       <table border="0">
+       <tr class="pink">
+               <td>${lang("medialist.search_text_in")}:</td>
+               <td>${lang("media.published")}:</td>
+               <td>${lang("media.mediafolder")}:</td>
+               <td>&nbsp;</td>
+       </tr>
+
+       <tr>
+       <td>
+               <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">
+               <select name="query_field">
+               <option value="title"<if data.query_field=="title"> selected</if>>${lang("media.title")}</option>
+               <option value="creator"<if data.query_field=="creator"> selected</if>>${lang("media.creator")}</option>
+               <option value="place"<if data.query_field=="place"> selected</if>>${lang("media.location")}</option>
+               <option value="keywords"<if data.query_field=="keywords"> selected</if>>${lang("media.keywords")}</option>
+       </select>
+       </td>
+       <td>
+               <select name="query_is_published">
+                   <option value="">${lang("dontcare")}</option>
+               <option value="0" <if data.query_is_published=="0"> selected</if>>${lang("no")}</option>
+                   <option value="1" <if data.query_is_published=="1"> selected</if>>${lang("yes")}</option>
+           </select>
+       </td>
+       <td>
+       <select name="query_media_folder">
+       <list extra.mediafolderPopupData as m>
+       <option value="${m.key}" <if m.key == query_media_folder>selected</if>>${m.value}</option>
+       </list>
+       </select>
+       </td>
+       <td>
+               <input type="submit" name="search" value="${lang("filter")}">
+       </td>
+       </tr>
+       </table>
+       </form>
+       </td>
+  </tr>
+
+  <tr class="darkgrey">
+       <td><span class="witesmall">
+       <b>${lang("media.icon")}</b></span></td>
+       <td><span class="witesmall">
+       <b>${lang("media.title")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.mediafolder")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.creator")}</b></span></td>
+  </tr>
+  <if data.contentlist>
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">bgcolor="#dddddd"<else><assign grey="1"></if>
+  <td>
+         <img src="${config.docRoot}/img/${entry.big_icon}" border=0></span></td>
+  <td>${entry.title}&nbsp;
+         <if entry.decription><br>${entry.description}</if></td>
+  <td>${data.mediafolderHashdata[entry.to_media_folder]["name"]}&nbsp;</td>
+  <td>${entry.creator}&nbsp;</td>
+  <td><span class="text">&nbsp;
+       <if data.cid><a href="${config.actionRoot}?module=Content&do=attach&mid=${entry.id}&cid=${data.cid}">${lang("attach")}</a>
+       <else>
+       <a href="${config.actionRoot}?module=OtherMedia&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=OtherMedia&do=edit&id=${entry.id}">${lang("edit")}</a>
+       </if>
+       </span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="4" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+
+<tr><td>
+<if data.prev>
+       <a href="${config.actionRoot}?module=OtherMedia&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.prev}&prev=zur&uuml;ck&cid=${data.cid}">zurueck</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=OtherMedia&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.next}&next=weiter&cid=${data.cid}">weiter</a>
+</if>
+</td></tr>
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/message.template b/templates/admin/message.template
new file mode 100755 (executable)
index 0000000..de72ef9
--- /dev/null
@@ -0,0 +1,58 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("message.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type="hidden" name="module" value="Message">
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("message.date")}:</B></span></td>
+    <td>
+      ${data.date}
+    </td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("message.title")}:</B></td>
+    <td>
+        <input type=text name="title" maxlength=40 value="${data.title}">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("message.creator")}:</B></td>
+    <td>
+        <input type=text name="creator" maxlength=40 value="${data.creator}">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("message.text")}:</B> ${lang("message.textinfo")}</span></td>
+    <td>
+        <textarea cols="50" rows="3" name="description" wrap=virtual>${data.description}</textarea>
+    </td>
+  </tr>
+
+  <tr>
+    <td colspan="2" align="right"> <span class="witetext"><if new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/messagelist.template b/templates/admin/messagelist.template
new file mode 100755 (executable)
index 0000000..01dcdc7
--- /dev/null
@@ -0,0 +1,52 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("messagelist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr class="darkgrey">
+    <td><span class="witesmall">
+               <b>${lang("message.date")}</b></span></td>
+    <td><span class="witesmall">
+               <b>${lang("message.title")}<br>${lang("message.creator")}</b></span></td>
+    <td><span class="witesmall">
+               <b>${lang("message.text")}</b></span></td>
+  </tr>
+
+  <list data.contentlist as entry>
+  <tr
+       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>${entry.webdb_create}&nbsp;</td>
+  <td><b>${entry.title}</b><br>
+      <i>${entry.creator}</i></td>
+  <td class="pink">${entry.description}&nbsp;</td>
+  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Message&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Message&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")} /
+        ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+      <P>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Users&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Users&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
\ No newline at end of file
diff --git a/templates/admin/start_admin.template b/templates/admin/start_admin.template
new file mode 100755 (executable)
index 0000000..267b29b
--- /dev/null
@@ -0,0 +1,261 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("start.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css"
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  </head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+  <include "templates/admin/head.template">
+  <table border="0" width="100%">
+       <tr>
+               <td valign="top" width="40%" class="grey">
+
+
+               <span class="spezialtext">
+               <b>${lang("start.openpostings.title")}</b></span>
+
+        <p>
+               <a href="${config.actionRoot}?module=Content&do=listop&order=webdb_create+desc">
+               <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;${lang("edit")}</a>
+
+               <p>
+                       <span class="spezialtext">
+                       <b>${lang("start.comments.title")}</b></span>
+               <p>
+                       <a href="${config.actionRoot}?module=Comment&do=list">
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;${lang("edit")}</a>
+           <p>
+                       <span class="spezialtext">
+                       <b>${lang("start.breaking.title")}</b></span>
+               <p>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Breaking&do=list">${lang("edit")}</a>
+               <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Breaking&do=add">${lang("start.breaking.new")}</a>
+
+                       <table width="100%" border="0">
+               <tr><td bgcolor="white">&nbsp;</td></tr>
+               </table>
+
+           <span class="spezialtext">
+                       <b>${lang("start.content.title")}</b></span>
+
+               <p>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=add&where=aktuell">${lang("start.content.new")}</a>
+           <p>
+                       <b>${lang("start.show")}:</b><br>
+      <list data.articletypes as a>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>
+                       <a href="${config.actionRoot}?module=Content&do=list&where=is_published%3d'1'%20and%20to_article_type%3D${a.id}&order=webdb_create%20desc">${a.name}</a><br>
+      </list>
+
+      <br>
+           <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=list&where=nfrei" >${lang("start.content.not_published")}</a><br>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=list&where=media">${lang("start.content.with_media")}</a><br>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=list&where=lastchange">${lang("start.content.last_changes")}</a><br>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=Content&do=list&where=comments">${lang("start.content.with_comments")}</a><br>
+                        <br>
+                        <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                        <a href="${config.actionRoot}?module=Hidden&do=list">${lang("start.content.hidden")}</a><br><br>
+
+                       <b>here to edit all the include files:</b>
+                       <br>
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp;
+                       <a href="${config.actionRoot}?module=FileEdit&do=list">${lang("edit")} ${lang("file")}</a>
+
+                       <br><br>
+
+     <form action="${config.actionRoot}" method="post">
+            <input type="hidden" name="module" value="Content">
+       <input type="hidden" name="do" value="search">
+       <input type="hidden" name="order" value="date desc">
+                   ${lang("start.content.search")}: <span class="small">
+       <input type="text" name="fieldvalue" size="15">
+       <select name="field">
+               <option value="title">${lang("content.title")}</option>
+        <option value="creator">${lang("content.creator")}</option>
+        <option value="place">${lang("content.location")}</option>
+        <option value="description">${lang("content.abstract")}</option>
+                               <option value="comment">${lang("content.comment")}</option>
+        <option value="content_data">${lang("content.content")}</option>
+       </select></span>
+      </form>
+
+               <table width="100%" border="0">
+               <tr><td bgcolor="white">&nbsp;</td></tr>
+               </table>
+
+       <span class="spezialtext">
+                       <b>Localizer producers</b></font>
+
+
+                       <div align="left">
+                         <table>
+                           <tr><th>producer</th><th>verbs</th></tr>
+
+                         <list data.producers as p>
+                           <tr>
+                           <td>${p.key}</td>
+
+               <td>
+                 <table>
+                   <tr>
+                             <list p.verbs as v>
+                               <td width="30">
+                               <a href="${config.actionRoot}?module=Producer&producer=${p.key}&verb=${v}">
+                                 ${v}
+                               </a>
+                               </td>
+                             </list>
+                               <tr>
+                             </table>
+               </td>
+                   </tr>
+
+                         </list>
+
+                         </table>
+                 </div>
+
+       </td>
+
+
+                       <td bgcolor="white" width="5%">&nbsp;
+                       </td>
+                       <td valign="top" width="30%" class="grey">
+
+<!-- not finished yet
+       <span class="spezialtext">
+               <b>${lang("start.coverage.title")}</b></span>
+
+               <P>
+                       <a href="${config.actionRoot}?module=Schwerpunkt&do=list" >
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Schwerpunkt&do=add" >
+                 <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+    <p>
+-->
+                       <span class="spezialtext">
+                       <b>${lang("start.topics.title")}</b></span>
+
+               <p>
+                       <a href="${config.actionRoot}?module=Topics&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Topics&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+                       <span class="spezialtext">
+                 <b>${lang("start.images.title")}</b></span>
+
+    <p>
+                       <a href="${config.actionRoot}?module=Images&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Images&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+
+        <span class="spezialtext">
+                 <b>${lang("start.audio.title")}</b></span>
+
+    <p>
+                       <a href="${config.actionRoot}?module=Audio&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Audio&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+
+        <span class="spezialtext">
+                 <b>${lang("start.video.title")}</b></span>
+
+    <p>
+                       <a href="${config.actionRoot}?module=Video&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Video&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+
+        <span class="spezialtext">
+                 <b>${lang("start.other_media.title")}</b></span>
+
+    <p>
+                       <a href="${config.actionRoot}?module=OtherMedia&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=OtherMedia&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+
+                       <span class="spezialtext">
+                 <b>${lang("start.mediafolder.title")}</b></span>
+
+               <p>
+                       <a href="${config.actionRoot}?module=Mediafolder&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Mediafolder&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+    <p>
+<!--
+               <span class="spezialtext">
+                 <b>${lang("start.languages.title")}</b></span>
+
+               <p>
+                       <a href="${config.actionRoot}?module=Language&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=Language&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+
+               <p>
+-->
+                       <span class="spezialtext">
+                 <b>${lang("start.imcs.title")}</b></span>
+
+               <p>
+                       <a href="${config.actionRoot}?module=LinksImcs&do=list">
+      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+      <a href="${config.actionRoot}?module=LinksImcs&do=add" >
+                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+                       </td>
+
+
+                       <td bgcolor="white" width="5%">&nbsp;
+                       </td>
+                       <td valign="top" width="20%" class="pink">
+
+       <!-- internes messageboard -->
+
+               <span class="spezialtext">
+               <b>${lang("start.messageboard.title")}</b>
+               <span class="small"><br><a href="${config.actionRoot}?module=Message&do=add">${lang("add")}</a></span>
+               <if data.messages>
+                       <list data.messages as m>
+                               <p>
+                               <if m.title><b>${m.title}</b><br></if>
+                               ${m.description}<br>
+                               <span class="x-small">
+                               <if m.creator><i>von: ${m.creator}</i> / </if>${m.webdb_create}<br>
+                               </span>
+                       </list>
+               <else>
+                       <p><i>${lang("start.messageboard.no_messages")}</i>
+               </if></span>
+       </td>
+
+       </tr>
+       </table>
+
+       <include "templates/admin/foot.template">
+
+       </body>
+</html>
diff --git a/templates/admin/topic.template b/templates/admin/topic.template
new file mode 100755 (executable)
index 0000000..d64e236
--- /dev/null
@@ -0,0 +1,58 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("topic.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type=hidden name=module value=Topics>
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+               <B>${lang("topic.title")}:</B></span></td>
+    <td>
+      <input type="text" size="40" name="title" value="${data.title}">
+    </td>
+  </tr>
+    <tr>
+      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("topic.description")}:</B></span></td>
+      <td>
+        <textarea cols="40" rows="3" name="description">${data.description}</textarea>
+      </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.filename")}:</B></span></td>
+    <td>
+      <input type="text" size="20" name="filename" value="${data.filename}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.main_url")}
+      </B></span></td>
+    <td>
+      <input type="text" size="40" name="main_url" value="${data.main_url}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.archive_url")}:</B></span></td>
+    <td>
+      <input type="text" size="40" name="archiv_url" value="${data.archiv_url}">
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" align="right"> <span class="witetext"><if new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/topiclist.template b/templates/admin/topiclist.template
new file mode 100755 (executable)
index 0000000..a7f5560
--- /dev/null
@@ -0,0 +1,63 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("topiclist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if data.contentlist>
+<table border="0">
+  <tr class="darkgrey">
+    <td><span class="witesmall">
+               <b>${lang("topic.title")}</b></span></td>
+    <td><span class="witesmall">
+               <b>${lang("topic.description")}</b></span></td>
+    <td><span class="witesmall">
+               <b>${lang("topic.main_url")}<br>${lang("topic.archive_url")}</b></span></td>
+       <td>&nbsp;</td>
+  </tr>
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td><span class="small">${entry.title}&nbsp;</span></td>
+  <td><span class="small">${entry.description}&nbsp;</span></td>
+  <td><span class="small">
+       ${entry.main_url}<br>
+       ${entry.archiv_url}</span></td>
+  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Topics&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Topics&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+  <tr>
+  <td colspan="4" class="darkgrey"><span class="witesmall">
+       ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}</span></td>
+  <td>&nbsp;</td>
+  </tr>
+</table>
+<P>
+<if (data.prev || data.next)>
+ <form method="post" action="${config.actionRoot}">
+ <input type="hidden" name="module" value="Topics">
+ <input type="hidden" name="where" value="${data.where}">
+<if data.prev>
+ <input type="hidden" name="do" value="list">
+ <input type="hidden" name="prevoffset" value="${data.prev}">
+ <input type="submit" name="prev" value="${lang("list.previous")}">
+</if>
+<if data.next>
+ <input type="hidden" name="do" value="list">
+ <input type="hidden" name="nextoffset" value="${data.next}">
+ <input type="submit" name="next" value="${lang("list.next")}">
+</if>
+ </form>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/user.template b/templates/admin/user.template
new file mode 100755 (executable)
index 0000000..cf56219
--- /dev/null
@@ -0,0 +1,47 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | ${lang("user.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<form action="${config.actionRoot}" method="post">
+       <input type="hidden" name="module" value="Users">
+       <input type="hidden" name="id" value="${id}">
+       <if new><input type="hidden" name="do" value="insert">
+       <else><input type="hidden" name="do" value="update"></if>
+<table border="0">
+  <tr> 
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("user.login")}:</B></span></td>
+    <td>
+      <input type="text" size="40" name="login" value="${login}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("user.password")}:</B></span></td>
+    <td>
+      <input type="text" size="20" name="password" value="${password}">
+    </td>
+  </tr>
+  <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("user.admin")}:</B><span class="spezailtext">(<a href="${docRoot}/help/users.html#admin" target="_help">?</a>)</span></span></td>
+    <td>
+           <input type="checkbox" name="is_admin" value="1"<if is_admin=="1"> checked</if>>
+    </td>
+  </tr>
+  <tr>
+    <td colspan="2" align="right"> <span class="witetext"><if new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/userlist.template b/templates/admin/userlist.template
new file mode 100755 (executable)
index 0000000..140bebe
--- /dev/null
@@ -0,0 +1,48 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("userlist.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+<if contentlist>
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr class="darkgrey">
+    <td><span class="witesmall"><b>${lang("user.login")}</b></span></td>
+    <td><span class="witesmall"><b>${lang("user.admin")}</b></span></td>
+  </tr>
+
+  <list contentlist as entry>
+  <tr
+       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
+  <td>${entry.login}&nbsp;</td>
+  <td>${entry.is_admin}&nbsp;</td>
+  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Users&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Users&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      /  ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+      <P>
+<if data.prev>
+       <a href="${actionRoot}?module=Users&do=list&where=${where}&prevoffset=${prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+</if>
+<if data.next>
+<a href="${actionRoot}?module=Users&do=list&where=${where}&nextoffset=${next}&next=weiter">${lang("list.next")}</a>
+</if>
+
+<else>
+  <P align="center">${lang("no_matches_found")}</p>
+</if>
+<include "templates/admin/foot.template">
+</body>
+</html>
+
+
diff --git a/templates/admin/video.template b/templates/admin/video.template
new file mode 100755 (executable)
index 0000000..45ba9bd
--- /dev/null
@@ -0,0 +1,114 @@
+<html>
+<head>
+        <title>${config["Mir.Name"]} | {lang("video.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+<head>
+<SCRIPT LANGUAGE="JavaScript">
+function openWin(url) {
+   window.open(url,"vc","scrollbars=0,height=${data.img_height},width=${data.img_width}");
+}
+</SCRIPT>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<form enctype="multipart/form-data" method="post" action="${config.actionRoot}?module=Video&do=<if data.new>insert<else>update</if>&id=${data.id}">
+<if data.icon_data=="" || data.icon_data=="0">
+       <INPUT TYPE="file" NAME="mptest">
+</if>
+
+       <input type="hidden" name="where" value="${data.where}">
+       <input type="hidden" name="offset" value="${data.offset}">
+       <input type="hidden" name="order" value="${data.order}">
+       <input type="hidden" name="id" value="${data.id}">
+
+       <table border="0">
+       <tr>
+    <td align="right" class="darkgrey">
+               <span class="witesmall">
+                       <img src="${config.docRoot}/img/${data.big_icon}" border=0></span></td>
+    <td valign="bottom"><span class="spezialtext">
+               ${lang("media.created")}: ${data.webdb_create}
+        <if data.webdb_lastchange>/ ${lang("media.changed")} ${data.webdb_lastchange}</if><br>
+               <if data.is_published=="1">${lang("media.published")}: ${data.publish_date} / ${data.publish_server}${data.publish_path}<br></if>
+               ${lang("media.format")}: ${data.mimetype} / ${data.descr}<br>
+               ${lang("media.rights")}: <b>${data.rightsHashdata[to_rights]["name"]}</b><br>
+       </td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.mediafolder")}:</B></span></td>
+    <td>
+               <select name="to_media_folder">
+               <list extra.mediafolderPopupData as m>
+               <option value="${m.key}" <if m.key == data.to_media_folder>selected</if>>${m.value}</option>
+               </list>
+           </select>
+       </td>
+       </tr>
+
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.title")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="title" value="${data.title}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.description")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="255" name="description" value="${data.description}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.date")}:</B></span></td>
+    <td><input type="text" size="8" maxlength="8" name="date" value="${data.date}">
+               <input type="text" size="20" maxlength="40" name="year" value="${data.year}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.location")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="place" value="${data.place}"></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.creator")}:</B></span></td>
+    <td>
+               <input type="text" size="40" maxlength="80" name="creator" value="${data.creator}">
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.keywords")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="keywords">${data.keywords}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.comment")}:</B></span></td>
+    <td><textarea cols="40" rows="2" name="comment">${data.comment}</textarea></td>
+       </tr>
+
+       <tr>
+    <td align="right" class="darkgrey"><span class="witesmall">
+        <B>${lang("media.source")}:</B></span></td>
+    <td><input type="text" size="40" maxlength="80" name="source" value="${data.source}"></td>
+       </tr>
+       <tr>
+    <td colspan="2" align="right"> <span class="text">
+       ${lang("media.is_published")} <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
+       <if data.new>
+      <input type="submit" name="save" value="${lang("insert")}">
+    <else>
+    <input type="submit" name="save" value="${lang("save")}">
+    </if> </span></form></span>
+    </td>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/admin/videolist.template b/templates/admin/videolist.template
new file mode 100755 (executable)
index 0000000..009e98a
--- /dev/null
@@ -0,0 +1,106 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("video.htmltitle")}</title>
+        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+<include "templates/admin/head.template">
+
+<table border="0" cellpadding="2" cellspacing="1">
+  <tr>
+    <td colspan="5"><form method="post" action="${config.actionRoot}">
+       <input type="hidden" name="module" value="Video">
+       <input type="hidden" name="do" value="list">
+       <input type="hidden" name="cid" value="${data.cid}">
+       <table border="0">
+       <tr class="pink">
+               <td>${lang("medialist.search_text_in")}:</td>
+               <td>${lang("media.published")}:</td>
+               <td>${lang("media.mediafolder")}:</td>
+               <td>&nbsp;</td>
+       </tr>
+
+       <tr>
+       <td>
+               <input type="text" size="10" maxlength="20" name="query_text" value="${data.query_text}">
+               <select name="query_field">
+               <option value="title"<if data.query_field=="title"> selected</if>>${lang("media.title")}</option>
+               <option value="creator"<if data.query_field=="creator"> selected</if>>${lang("media.creator")}</option>
+               <option value="place"<if data.query_field=="place"> selected</if>>${lang("media.location")}</option>
+               <option value="keywords"<if data.query_field=="keywords"> selected</if>>${lang("media.keywords")}</option>
+       </select>
+       </td>
+       <td>
+               <select name="query_is_published">
+                   <option value="">${lang("dontcare")}</option>
+               <option value="0" <if data.query_is_published=="0"> selected</if>>${lang("no")}</option>
+                   <option value="1" <if data.query_is_published=="1"> selected</if>>${lang("yes")}</option>
+           </select>
+       </td>
+       <td>
+       <select name="query_media_folder">
+       <list extra.mediafolderPopupData as m>
+       <option value="${m.key}" <if m.key == query_media_folder>selected</if>>${m.value}</option>
+       </list>
+       </select>
+       </td>
+       <td>
+               <input type="submit" name="search" value="${lang("filter")}">
+       </td>
+       </tr>
+       </table>
+       </form>
+       </td>
+  </tr>
+
+  <tr class="darkgrey" >
+       <td><span class="witesmall">
+       <b>${lang("media.icon")}</b></span></td>
+       <td><span class="witesmall">
+       <b>${lang("media.title")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.mediafolder")}</b></span></td>
+    <td><span class="witesmall">
+       <b>${lang("media.creator")}</b></span></td>
+  </tr>
+  <if data.contentlist>
+  <list data.contentlist as entry>
+  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list1"<assign grey="1"> </if>>
+  <td>
+         <img src="${config.docRoot}/img/${entry.big_icon}" border=0></span></td>
+  <td>${entry.title}&nbsp;
+         <if entry.decription><br>${entry.description}</if></td>
+  <td>${data.mediafolderHashdata[entry.to_media_folder]["name"]}&nbsp;</td>
+  <td>${entry.creator}&nbsp;</td>
+  <td><span class="text">&nbsp;
+       <if data.cid><a href="${config.actionRoot}?module=Content&do=attach&mid=${entry.id}&cid=${data.cid}">${lang("attach")}</a>
+       <else>
+       <a href="${config.actionRoot}?module=Video&do=delete&id=${entry.id}">${lang("delete")}</a>
+    | <a href="${config.actionRoot}?module=Video&do=edit&id=${entry.id}">${lang("edit")}</a>
+       </if>
+       </span></td>
+  </tr>
+  </list>
+  <tr>
+    <td colspan="4" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+      / ${lang("show_from_to", data.from, data.to)}</span></td>
+    <td>&nbsp;</td>
+  </tr>
+
+<tr><td>
+<if data.prev>
+       <a href="${config.actionRoot}?module=Video&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.prev}&prev=zur&uuml;ck&cid=${data.cid}">zurueck</a>&nbsp;
+</if>
+<if data.next>
+<a href="${config.actionRoot}?module=Video&do=list&query_text=${data.query_text_encoded}&query_field=${data.query_field}&query_is_published=${data.query_is_published}&query_media_folder=${data.query_media_folder}&offset=${data.next}&next=weiter&cid=${data.cid}">weiter</a>
+</if>
+</td></tr>
+<else>
+  <tr><td align="center">${lang("no_matches_found")}</td></tr>
+</if>
+</table>
+<include "templates/admin/foot.template">
+</body>
+</html>
diff --git a/templates/error.template b/templates/error.template
new file mode 100755 (executable)
index 0000000..2a0395d
--- /dev/null
@@ -0,0 +1,37 @@
+<html>
+<head>
+    <title>${config["Mir.Name"]} | ${lang("error.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+<body>
+<include "head.template">
+<table width="100%" border="0" align="center">
+       <tr class="grey">
+               <td>
+                       <div align="center"><h2><font class="specialtext">${lang("error.title")}</font></h2>
+                       </div>
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p>${lang("error.text", config["Mir.Tech-email.address"], config["Mir.Tech-email.name"])}
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p>
+                       <p align="center"><font color="red">${data.date} -- ${data.errorstring}</font>
+                       <p>
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p align="center">
+            ${lang("error.text2", config["Mir.Tech-email.address"], config["Mir.Tech-email.name"])}
+                       <p>
+               </td>
+       </tr>
+</table>
+<include "foot.template">
+</body>
+</html>
diff --git a/templates/usererror.template b/templates/usererror.template
new file mode 100755 (executable)
index 0000000..fc61c25
--- /dev/null
@@ -0,0 +1,37 @@
+<html>
+<head>
+<title>${lang("usererror.htmltitle")}</title>
+</head>
+<body>
+<include "templates/admin/head_nonavi.template">
+<table width="100%" border="0" align="center">
+       <tr bgcolor="#006600">
+               <td>
+                       <div align="center"><h2><font color="Pink">${lang("usererror.title")}</font></h2>
+                       </div>
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p>${lang("usererror.text")}
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p>
+                       <p align="center"><font size="5" color="Red"><b> ${data.errorstring}</b></font>
+            <p>
+                       <p> 
+               </td>
+       </tr>
+       <tr>
+               <td>
+                       <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">${lang("usererror.what_to_do")}
+                       </a></font>
+                       <p>
+               </td>
+       </tr>
+</table>
+<include "foot.template">
+</body>
+</html>