internationalized admin templates
authorbr1 <br1>
Sun, 24 Mar 2002 20:07:20 +0000 (20:07 +0000)
committerbr1 <br1>
Sun, 24 Mar 2002 20:07:20 +0000 (20:07 +0000)
12 files changed:
source/Mir.java
source/config.properties-dist
source/mir/misc/HTMLTemplateProcessor.java
source/mir/misc/MessageMethodModel.java
source/mir/servlet/AbstractServlet.java
source/mir/servlet/ServletModule.java
source/mircoders/servlet/ServletModuleBreaking.java
source/mircoders/servlet/ServletModuleComment.java
source/mircoders/servlet/ServletModuleContent.java
source/mircoders/servlet/ServletModuleImages.java
source/mircoders/servlet/ServletModuleLinksImcs.java
source/mircoders/servlet/ServletModuleMessage.java

index abd442a..486e4ef 100755 (executable)
@@ -1,22 +1,28 @@
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import java.lang.reflect.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.servlet.UnavailableException;
-import java.sql.*;
-
-import freemarker.template.*;
 
-import mir.misc.*;
+import freemarker.template.SimpleHash;
+import freemarker.template.SimpleScalar;
+import mir.misc.HTMLParseException;
+import mir.misc.HTMLTemplateProcessor;
+import mir.misc.MirConfig;
+import mir.misc.StringUtil;
 import mir.servlet.*;
-import mir.storage.StorageObjectException;
+import mircoders.entity.EntityUsers;
+import mircoders.module.ModuleMessage;
+import mircoders.module.ModuleUsers;
+import mircoders.storage.DatabaseMessages;
+import mircoders.storage.DatabaseUsers;
 
-import mircoders.servlet.*;
-import mircoders.module.*;
-import mircoders.entity.*;
-import mircoders.storage.*;
+import javax.servlet.ServletException;
+import javax.servlet.UnavailableException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.lang.reflect.Method;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Locale;
 
 /**
  *  Mir.java - main servlet, that dispatches to servletmodules
@@ -28,271 +34,291 @@ import mircoders.storage.*;
 
 public class Mir extends AbstractServlet {
 
-  private static ModuleUsers      usersModule=null;
-  private static ModuleMessage    messageModule=null;
-  private final static HashMap    servletModuleInstanceHash = new HashMap();
-
-  public HttpSession session;
-
-  public void doGet(HttpServletRequest req, HttpServletResponse res)
-    throws ServletException, IOException {
-    doPost(req,res);
-  }
-
-  public void doPost(HttpServletRequest req, HttpServletResponse res)
-    throws ServletException, IOException, UnavailableException {
+    private static ModuleUsers usersModule = null;
+    private static ModuleMessage messageModule = null;
+    private final static HashMap servletModuleInstanceHash = new HashMap();
 
-    long            startTime = System.currentTimeMillis();
-    long            sessionConnectTime=0;
-    String          http="";
+    public HttpSession session;
 
-    // get the configration
-    if(getServletContext().getAttribute("mir.confed") == null) {
-      getConfig(req);
+    public void doGet(HttpServletRequest req, HttpServletResponse res)
+            throws ServletException, IOException {
+        doPost(req, res);
     }
-    MirConfig.setServletName(getServletName());
 
-    session = req.getSession(true);
+    public void doPost(HttpServletRequest req, HttpServletResponse res)
+            throws ServletException, IOException, UnavailableException {
 
-    if (req.getServerPort() == 443) http="https"; else http="http";
-    res.setContentType("text/html");
-    String moduleName = req.getParameter("module");
+        long startTime = System.currentTimeMillis();
+        long sessionConnectTime = 0;
+        String http = "";
 
-    if(session.getAttribute("Language")==null){
-      setLanguage(session,getAcceptLanguage(req));
-    }
+        // get the configration
+        if (getServletContext().getAttribute("mir.confed") == null) {
+            getConfig(req);
+        }
+        MirConfig.setServletName(getServletName());
+
+        session = req.getSession(true);
+
+        if (req.getServerPort() == 443) http = "https"; else http = "http";
+        res.setContentType("text/html");
+        String moduleName = req.getParameter("module");
+
+        checkLanguage(session, req);
+
+        /** @todo for cleanup and readability this should be moved to
+         *  method loginIfNecessary() */
+
+        // Authentifizierung
+        if (moduleName != null && moduleName.equals("login")) {
+            String user = req.getParameter("login");
+            String passwd = req.getParameter("password");
+            theLog.printDebugInfo("--login: evaluating for user: " + user);
+            EntityUsers userEntity = allowedUser(user, passwd);
+            if (userEntity == null) {
+                // login failed: redirecting to login
+                theLog.printWarning("--login: failed!");
+                _sendLoginPage(res, req, res.getWriter());
+                return;
+            }
+            else {
+                // login successful
+
+                theLog.printInfo("--login: successful! setting uid: " + userEntity.getId());
+                session.setAttribute("login.uid", userEntity);
+                theLog.printDebugInfo("--login: trying to retrieve login.target");
+                String target = (String) session.getAttribute("login.target");
+
+                if (target != null) {
+                    theLog.printDebugInfo("Redirect: " + target);
+                    int serverPort = req.getServerPort();
+                    String redirect = "";
+                    String redirectString = "";
+
+
+                    if (serverPort == 80) {
+                        redirect = res.encodeURL(http + "://" + req.getServerName() + target);
+                        redirectString = "<html><head><meta http-equiv=refresh content=\"1;URL="
+                                + redirect
+                                + "\"></head><body>going <a href=\"" + redirect + "\">Mir</a></body></html>";
+                    }
+                    else {
+                        redirect = res.encodeURL(http + "://" + req.getServerName() + ":" + req.getServerPort() + target);
+                        redirectString = "<html><head><meta http-equiv=refresh content=\"1;URL="
+                                + redirect
+                                + "\"></head><body>going <a href=\"" + redirect + "\">Mir</a></body></html>";
+                    }
+                    res.getWriter().println(redirectString);
+
+
+                    //res.sendRedirect(redirect);
+
+                }
+                else {
+                    // redirecting to default target
+                    theLog.printDebugInfo("--login: no target - redirecting to default");
+                    _sendStartPage(res, req, res.getWriter(), userEntity);
+                }
+                return;
+            } // if login succesful
+        } // if login
+
+        if (moduleName != null && moduleName.equals("logout")) {
+            theLog.printDebugInfo("--logout");
+            session.invalidate();
+
+            //session = req.getSession(true);
+            //checkLanguage(session, req);
+            _sendLoginPage(res, req, res.getWriter());
+            return;
+        }
 
-    /** @todo for cleanup and readability this should be moved to
-     *  method loginIfNecessary() */
-
-    // Authentifizierung
-    if (moduleName!=null && moduleName.equals("login")) {
-      String user=req.getParameter("login");
-      String passwd= req.getParameter("password");
-      String lang = req.getParameter("lang");
-      theLog.printDebugInfo("--login: evaluating for user: "+user);
-      EntityUsers userEntity = allowedUser(user,passwd);
-      if (userEntity==null) {
-        // login failed: redirecting to login
-        theLog.printWarning("--login: failed!");
-        _sendLoginPage(res,req,res.getWriter());
-        return;
-      } else {
-        // login successful
-
-        //if accept-language!=selected language change language
-        if(!getLanguage(req,session).equals(lang)){
-          setLanguage(session,lang);
+        // Check if authed!
+        EntityUsers userEntity = (EntityUsers) session.getAttribute("login.uid");
+        if (userEntity == null) {
+            // redirect to loginpage
+            String redirectString = req.getRequestURI();
+            String queryString = req.getQueryString();
+            if (queryString != null && !queryString.equals("")) {
+                redirectString += "?" + req.getQueryString();
+                theLog.printDebugInfo("STORING: " + redirectString);
+                session.setAttribute("login.target", redirectString);
+            }
+            _sendLoginPage(res, req, res.getWriter());
+            return;
         }
 
-        theLog.printInfo("--login: successful! setting uid: " + userEntity.getId());
-        session.setAttribute("login.uid", userEntity);
-        theLog.printDebugInfo("--login: trying to retrieve login.target");
-        String target = (String)session.getAttribute("login.target");
-
-        if (target != null) {
-          theLog.printDebugInfo("Redirect: "+target);
-          int serverPort = req.getServerPort();
-          String redirect = "";
-          String redirectString ="";
-
-
-          if(serverPort==80){
-            redirect=res.encodeURL(http + "://" + req.getServerName() + target);
-            redirectString = "<html><head><meta http-equiv=refresh content=\"1;URL="
-                    + redirect
-                    + "\"></head><body>going <a href=\"" + redirect + "\">Mir</a></body></html>";
-          } else {
-            redirect=res.encodeURL(http + "://" + req.getServerName() + ":" +req.getServerPort() + target);
-            redirectString = "<html><head><meta http-equiv=refresh content=\"1;URL="
-                    + redirect
-                    + "\"></head><body>going <a href=\"" + redirect + "\">Mir</a></body></html>";
-          }
-          res.getWriter().println(redirectString);
-
-
-          //res.sendRedirect(redirect);
-
-        } else {
-          // redirecting to default target
-          theLog.printDebugInfo("--login: no target - redirecting to default");
-          _sendStartPage(res,req,res.getWriter(),userEntity);
+        // If no module is specified goto standard startpage
+        if (moduleName == null || moduleName.equals("")) {
+            theLog.printDebugInfo("no module: redirect to standardpage");
+            _sendStartPage(res, req, res.getWriter(), userEntity);
+            return;
         }
-        return;
-      } // if login succesful
-    } // if login
-
-    if (moduleName!=null && moduleName.equals("logout")) {
-      theLog.printDebugInfo("--logout");
-      session.invalidate();
-      _sendLoginPage(res,req,res.getWriter());
-      return;
-    }
+        // end of auth
 
-    // Check if authed!
-    EntityUsers userEntity = (EntityUsers)session.getAttribute("login.uid");
-    if (userEntity == null) {
-      // redirect to loginpage
-      String redirectString = req.getRequestURI();
-      String queryString = req.getQueryString();
-      if (queryString!=null && !queryString.equals("")) {
-        redirectString += "?" + req.getQueryString();
-        theLog.printDebugInfo("STORING: " + redirectString);
-        session.setAttribute("login.target", redirectString);
-      }
-      _sendLoginPage(res,req,res.getWriter());
-      return;
-    }
+        // From now on regular dispatching...
+        try {
+            // get servletmodule by parameter and continue with dispacher
+            ServletModule smod = getServletModuleForName(moduleName);
+            ServletModuleDispatch.dispatch(smod, req, res);
+        }
+        catch (ServletModuleException e) {
+            handleError(req, res, res.getWriter(),
+                        "ServletException in Module " + moduleName + " -- " + e.toString());
+        }
+        catch (ServletModuleUserException e) {
+            handleUserError(req, res, res.getWriter(), "User error" + e.toString());
+        }
 
-    // If no module is specified goto standard startpage
-    if (moduleName == null || moduleName.equals("")) {
-      theLog.printDebugInfo("no module: redirect to standardpage");
-      _sendStartPage(res,req, res.getWriter(),userEntity);
-      return;
+        // timing...
+        sessionConnectTime = System.currentTimeMillis() - startTime;
+        theLog.printInfo("EXECTIME (" + moduleName + "): " + sessionConnectTime + " ms");
     }
-    // end of auth
 
-    // From now on regular dispatching...
-    try {
-      // get servletmodule by parameter and continue with dispacher
-      ServletModule smod = getServletModuleForName(moduleName);
-      ServletModuleDispatch.dispatch(smod,req,res);
-    }
-    catch (ServletModuleException e) {
-                       handleError(req, res, res.getWriter(),
-                                                                       "ServletException in Module " + moduleName + " -- " + e.toString());
-               }
-    catch (ServletModuleUserException e) {
-      handleUserError(req,res,res.getWriter(), "User error" + e.toString());
-    }
 
-    // timing...
-    sessionConnectTime = System.currentTimeMillis() - startTime;
-    theLog.printInfo("EXECTIME (" + moduleName + "): " + sessionConnectTime + " ms");
-  }
-
-
-  /**
-   *  Private method getServletModuleForName returns ServletModule
-   *  from Cache
-   *
-   * @return ServletModule
-   *
-   */
-  private static ServletModule getServletModuleForName(String moduleName)
-    throws ServletModuleException {
-
-    // Instance in Map ?
-    if (!servletModuleInstanceHash.containsKey(moduleName)) {
-      // was not found in hash...
-      try {
-        Class theServletModuleClass=null;
-        try {
-          // first we try to get ServletModule from stern.che3.servlet
-          theServletModuleClass = Class.forName("mircoders.servlet.ServletModule" + moduleName);
-        } catch (ClassNotFoundException e) {
-          // on failure, we try to get it from lib-layer
-          theServletModuleClass = Class.forName("mir.servlet.ServletModule"+ moduleName);
+    /**
+     *  Private method getServletModuleForName returns ServletModule
+     *  from Cache
+     *
+     * @return ServletModule
+     *
+     */
+    private static ServletModule getServletModuleForName(String moduleName)
+            throws ServletModuleException {
+
+        // Instance in Map ?
+        if (!servletModuleInstanceHash.containsKey(moduleName)) {
+            // was not found in hash...
+            try {
+                Class theServletModuleClass = null;
+                try {
+                    // first we try to get ServletModule from stern.che3.servlet
+                    theServletModuleClass = Class.forName("mircoders.servlet.ServletModule" + moduleName);
+                }
+                catch (ClassNotFoundException e) {
+                    // on failure, we try to get it from lib-layer
+                    theServletModuleClass = Class.forName("mir.servlet.ServletModule" + moduleName);
+                }
+                Method m = theServletModuleClass.getMethod("getInstance", null);
+                ServletModule smod = (ServletModule) m.invoke(null, null);
+                // we put it into map for further reference
+                servletModuleInstanceHash.put(moduleName, smod);
+                return smod;
+            }
+            catch (Exception e) {
+                throw new ServletModuleException("*** error resolving classname for " +
+                                                 moduleName + " -- " + e.toString());
+            }
         }
-        Method m = theServletModuleClass.getMethod("getInstance", null);
-        ServletModule smod = (ServletModule)m.invoke(null, null);
-        // we put it into map for further reference
-        servletModuleInstanceHash.put(moduleName,smod);
-        return smod;
-      } catch (Exception e) {
-        throw new ServletModuleException("*** error resolving classname for " +
-                                          moduleName +" -- "+ e.toString());
-      }
+        else
+            return (ServletModule) servletModuleInstanceHash.get(moduleName);
     }
-    else return (ServletModule)servletModuleInstanceHash.get(moduleName);
-  }
 
 
-  private void handleError(HttpServletRequest req, HttpServletResponse res,
-                                                                                                        PrintWriter out, String errorString) {
+    private void handleError(HttpServletRequest req, HttpServletResponse res,
+                             PrintWriter out, String errorString) {
 
-    try {
-      theLog.printError(errorString);
-      SimpleHash modelRoot = new SimpleHash();
-      modelRoot.put("errorstring", new SimpleScalar(errorString));
-      modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
-      HTMLTemplateProcessor.process(res,MirConfig.getProp("Mir.ErrorTemplate"),
-                                                                                                                                               modelRoot,out,req.getLocale());
-      out.close();
-    }
-    catch (Exception e) {
-      System.err.println("Error in ErrorTemplate");
-    }
-  }
-
-  private void handleUserError(HttpServletRequest req, HttpServletResponse res,
-                                                                                                                        PrintWriter out, String errorString) {
-    try {
-      theLog.printError(errorString);
-      SimpleHash modelRoot = new SimpleHash();
-      modelRoot.put("errorstring", new SimpleScalar(errorString));
-      modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
-      HTMLTemplateProcessor.process(res,MirConfig.getProp("Mir.UserErrorTemplate"),
-                                                                                                                                               modelRoot,out, req.getLocale());
-      out.close();
+        try {
+            theLog.printError(errorString);
+            SimpleHash modelRoot = new SimpleHash();
+            modelRoot.put("errorstring", new SimpleScalar(errorString));
+            modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
+            HTMLTemplateProcessor.process(res, MirConfig.getProp("Mir.ErrorTemplate"), modelRoot, out, getLocale(req));
+            out.close();
+        }
+        catch (Exception e) {
+            System.err.println("Error in ErrorTemplate");
+        }
     }
-    catch (Exception e) {
-      System.err.println("Fehler in UserErrorTemplate");
+
+    private void handleUserError(HttpServletRequest req, HttpServletResponse res,
+                                 PrintWriter out, String errorString) {
+        try {
+            theLog.printError(errorString);
+            SimpleHash modelRoot = new SimpleHash();
+            modelRoot.put("errorstring", new SimpleScalar(errorString));
+            modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
+            HTMLTemplateProcessor.process(res, MirConfig.getProp("Mir.UserErrorTemplate"),
+                                          modelRoot, out, getLocale(req));
+            out.close();
+        }
+        catch (Exception e) {
+            System.err.println("Fehler in UserErrorTemplate");
+        }
+
     }
 
-  }
-  /**
-   *  evaluate login for user / password
-   */
-  protected EntityUsers allowedUser(String user, String password) {
-    try {
-      if (usersModule == null) usersModule = new ModuleUsers(DatabaseUsers.getInstance());
-      return usersModule.getUserForLogin(user, password);
-    } catch(Exception e) {
-      theLog.printDebugInfo(e.toString());
-      e.printStackTrace();
-      return null;
+    /**
+     *  evaluate login for user / password
+     */
+    protected EntityUsers allowedUser(String user, String password) {
+        try {
+            if (usersModule == null) usersModule = new ModuleUsers(DatabaseUsers.getInstance());
+            return usersModule.getUserForLogin(user, password);
+        }
+        catch (Exception e) {
+            theLog.printDebugInfo(e.toString());
+            e.printStackTrace();
+            return null;
+        }
     }
-  }
-
-  // Redirect-methods
-  private void _sendLoginPage(HttpServletResponse res,HttpServletRequest req, PrintWriter out) {
-    String loginTemplate = "login.template";
-    String sessionUrl=res.encodeURL("");
-    //session = req.getSession(true);
-    try {
-      theLog.printDebugInfo("login: "+lang);
-      if(lang==null){
-        lang=getAcceptLanguage(req);
-      }
-      SimpleHash mergeData = new SimpleHash();
-      mergeData.put("session",sessionUrl);
-      HTMLTemplateProcessor.process(res, lang+"/"+loginTemplate, mergeData,
-                                                                                                                                               out, req.getLocale());
-    } catch(HTMLParseException e) {
-      handleError(req, res, out, "Error in logintemplate.");
+
+    // Redirect-methods
+    private void _sendLoginPage(HttpServletResponse res, HttpServletRequest req, PrintWriter out) {
+        String loginTemplate = MirConfig.getProp("Mir.LoginTemplate");//"login.template";
+        //  theLog.printDebugInfo("login template: "+loginTemplate);
+        String sessionUrl = res.encodeURL("");
+        //session = req.getSession(true);
+        try {
+            //theLog.printDebugInfo("login: "+lang);
+            //if(lang==null){
+            //  lang=getAcceptLanguage(req);
+            //}
+            SimpleHash mergeData = new SimpleHash();
+            mergeData.put("session", sessionUrl);
+            HTMLTemplateProcessor.process(res, loginTemplate, mergeData, out, getLocale(req));
+        }
+        catch (HTMLParseException e) {
+            handleError(req, res, out, "Error in logintemplate.");
+        }
     }
-  }
-
-  private void _sendStartPage(HttpServletResponse res, HttpServletRequest req,PrintWriter out, EntityUsers userEntity) {
-    String startTemplate = "start_admin.template";
-    String sessionUrl=res.encodeURL("");
-    try {
-      // merge with logged in user and messages
-      SimpleHash mergeData = new SimpleHash();
-      mergeData.put("session",sessionUrl);
-      mergeData.put("login_user", userEntity);
-      if (messageModule == null) messageModule = new ModuleMessage(DatabaseMessages.getInstance());
-      mergeData.put("messages", messageModule.getByWhereClause(null, "webdb_create desc",0,10));
-      HTMLTemplateProcessor.process(res, getLanguage(req,session)+"/"+startTemplate,
-                                                                                                                                               mergeData, out, req.getLocale());
+
+    private void _sendStartPage(HttpServletResponse res, HttpServletRequest req, PrintWriter out, EntityUsers userEntity) {
+        String startTemplate = "admin/start_admin.template";
+        String sessionUrl = res.encodeURL("");
+        try {
+            // merge with logged in user and messages
+            SimpleHash mergeData = new SimpleHash();
+            mergeData.put("session", sessionUrl);
+            mergeData.put("login_user", userEntity);
+            if (messageModule == null) messageModule = new ModuleMessage(DatabaseMessages.getInstance());
+            mergeData.put("messages", messageModule.getByWhereClause(null, "webdb_create desc", 0, 10));
+            HTMLTemplateProcessor.process(res, startTemplate, mergeData, out, getLocale(req));
+        }
+        catch (Exception e) {
+            handleError(req, res, out, "error while trying to send startpage. " + e.toString());
+        }
     }
-    catch(Exception e) {
-      handleError(req, res, out, "error while trying to send startpage. " + e.toString());
+
+    public String getServletInfo() {
+        return "Mir 1.0 rev02 multilanguage";
     }
-  }
 
-  public String getServletInfo(){ return "Mir 1.0 rev02 multilanguage"; }
+    private void checkLanguage(HttpSession session, HttpServletRequest req) {
 
+        // a lang parameter always sets the language
+        String lang = req.getParameter("lang");
+        if (lang != null) {
+            theLog.printInfo("selected language "+lang+" overrides accept-language");
+            setLanguage(session, lang);
+            setLocale(session, new Locale(lang, ""));
+        }
+        // otherwise store language from accept header in session
+        else if (session.getAttribute("Language") == null) {
+            theLog.printInfo("accept-language is "+req.getLocale().getLanguage());
+            setLanguage(session, req.getLocale().getLanguage());
+            setLocale(session, req.getLocale());
+        }
+    }
 }
 
index 5e2ab93..add37ca 100755 (executable)
@@ -1,7 +1,7 @@
 #
 # Sample config for Mir
 # by Matthias <mjordan@code-fu.de> 2001-09-12
-#  
+#
 # The Mir software realizes a semi-dynamic web service:
 # The web server that is accessed by users has pure static
 # pages. These pages are generated by the Mir software that
@@ -9,16 +9,16 @@
 # Mir uses a database server to store the data that is needed to
 # build the static site.
 # So there are basically three parts in this config file:
-# 
+#
 # a) general setup
 # b) static site config
 # c) dynamic admin site
 # d) database config
-# 
+#
 # edit this to suit your needs (here with sampleuser idfx)
 # After you edited this file, build.sh has to be invoked.
 # To be sure, also restart Tomcat.
-# 
+#
 # Note that for Mir to work, Tomcat has to be set up to handle all
 # URLs that begin with /servlet. All other URLs are handled by Apache.
 #
@@ -35,6 +35,7 @@
 # GENERAL SETUP
 #
 
+Mir.Version=pre-1.0
 ClearXslCache=no
 StandardLanguage=de
 DirectOpenposting=yes
@@ -52,7 +53,7 @@ Rsync.Script.Path=/var/www/bin/rsync-copy
 # the url of the static site
 Producer.ProductionHost=http://indy.code-fu.de
 
-# The above URL points to the following directory, in which 
+# The above URL points to the following directory, in which
 # the generated HTML pages will be stored
 Producer.StorageRoot=/pub/Dokumente/Indymedia/de-tech/Mir/produced
 
@@ -61,7 +62,7 @@ Producer.StorageRoot=/pub/Dokumente/Indymedia/de-tech/Mir/produced
 
 #
 #
-# DYNAMIC SITE CONFIG 
+# DYNAMIC SITE CONFIG
 #
 
 # the url of the openposting-servlet
@@ -105,7 +106,7 @@ Producer.Media.Path=/pub/Dokumente/Indymedia/de-tech/Mir/produced/media
 
 # absolute directory, where the realmedia data files(ra and rm) are saved
 # the ram files which point to the RealMedia.Host get saved in the regular Media dir
-# this should make rsyncing to a separate streaming server much easier   
+# this should make rsyncing to a separate streaming server much easier
 Producer.RealMedia.Path=/pub/Dokumente/rtsp
 
 # relativ directory, where the thumbnails will be saved
@@ -181,61 +182,62 @@ HTMLTemplateProcessor.Dir=templates
 ServletModule.Producer.Logfile=log/producer.log
 Entity.Logfile=log/dbentity.log
 
-
 #
 # Servlet / Module configurations
 #
 
 Mir.Logfile=log/mir.log
-Mir.ErrorTemplate=fehler.template
+Mir.ErrorTemplate=error.template
 Mir.UserErrorTemplate=usererror.template
+Mir.LoginTemplate=admin/login.template
 
-ServletModule.Schwerpunkt.ConfirmTemplate=confirm.template
-ServletModule.Schwerpunkt.ObjektTemplate=schwerpunkt.template
-ServletModule.Schwerpunkt.ListTemplate=schwerpunktlist.template
+ServletModule.Schwerpunkt.ConfirmTemplate=admin/confirm.template
+ServletModule.Schwerpunkt.ObjektTemplate=admin/feature.template
+ServletModule.Schwerpunkt.ListTemplate=admin/featurelist.template
 ServletModule.Schwerpunkt.Logfile=log/mir.log
 Module.Schwerpunkt.Logfile=log/mir.log
 
-ServletModule.Feature.ConfirmTemplate=confirm.template
-ServletModule.Feature.ObjektTemplate=schwerpunkt.template
-ServletModule.Feature.ListTemplate=schwerpunktlist.template
+ServletModule.Feature.ConfirmTemplate=admin/confirm.template
+ServletModule.Feature.ObjektTemplate=admin/schwerpunkt.template
+ServletModule.Feature.ListTemplate=admin/schwerpunktlist.template
 ServletModule.Feature.Logfile=log/mir.log
 Module.Feature.Logfile=log/mir.log
 
-ServletModule.Themen.ConfirmTemplate=confirm.template
-ServletModule.Themen.ObjektTemplate=themen.template
-ServletModule.Themen.ListTemplate=themenlist.template
+ServletModule.Themen.ConfirmTemplate=admin/confirm.template
+ServletModule.Themen.ObjektTemplate=admin/topic.template
+ServletModule.Themen.ListTemplate=admin/topiclist.template
 ServletModule.Themen.Logfile=log/mir.log
 Module.Themen.Logfile=log/mir.log
 
-ServletModule.LinksImcs.ConfirmTemplate=confirm.template
-ServletModule.LinksImcs.ObjektTemplate=linksimcs.template
-ServletModule.LinksImcs.ListTemplate=linksimcslist.template
+ServletModule.LinksImcs.ConfirmTemplate=admin/confirm.template
+ServletModule.LinksImcs.ObjektTemplate=admin/linksimcs.template
+ServletModule.LinksImcs.ListTemplate=admin/linksimcslist.template
 ServletModule.LinksImcs.Logfile=log/mir.log
 Module.LinksImcs.Logfile=log/mir.log
 
-ServletModule.Users.ConfirmTemplate=confirm.template
-ServletModule.Users.ObjektTemplate=users.template
-ServletModule.Users.ListTemplate=userslist.template
+ServletModule.Users.ConfirmTemplate=admin/confirm.template
+ServletModule.Users.ObjektTemplate=admin/user.template
+ServletModule.Users.ListTemplate=admin/userlist.template
 ServletModule.Users.Logfile=log/mir.log
 Module.Users.Logfile=log/mir.log
 
-ServletModule.Bilder.ConfirmTemplate=confirm.template
-ServletModule.Bilder.ObjektTemplate=bilder.template
-ServletModule.Bilder.ListTemplate=bilderlist.template
+ServletModule.Bilder.ConfirmTemplate=admin/confirm.template
+ServletModule.Bilder.ObjektTemplate=admin/image.template
+ServletModule.Bilder.ListTemplate=admin/imagelist.template
 ServletModule.Bilder.Logfile=log/mir.log
 Module.Bilder.Logfile=log/mir.log
 
-ServletModule.Content.ConfirmTemplate=confirm.template
-ServletModule.Content.ObjektTemplate=content.template
-ServletModule.Content.OpTemplate=oplist.template
-ServletModule.Content.ListTemplate=contentlist.template
+ServletModule.Content.ConfirmTemplate=admin/confirm.template
+ServletModule.Content.ObjektTemplate=admin/content.template
+# is the next line ever used??? dont thinks so [br1]
+#ServletModule.Content.OpTemplate=oplist.template
+ServletModule.Content.ListTemplate=admin/contentlist.template
 ServletModule.Content.Logfile=log/mir.log
 Module.Content.Logfile=log/mir.log
 
-ServletModule.Mediafolder.ConfirmTemplate=confirm.template
-ServletModule.Mediafolder.ObjektTemplate=mediafolder.template
-ServletModule.Mediafolder.ListTemplate=mediafolderlist.template
+ServletModule.Mediafolder.ConfirmTemplate=admin/confirm.template
+ServletModule.Mediafolder.ObjektTemplate=admin/mediafolder.template
+ServletModule.Mediafolder.ListTemplate=admin/mediafolderlist.template
 ServletModule.Mediafolder.Logfile=log/mir.log
 Module.Mediafolder.Logfile=log/mir.log
 
@@ -253,34 +255,35 @@ ServletModule.OpenIndy.Logfile=log/openindy.log
 # config for ServletModuleComment - browsing/editing/deleting comments
 Module.Comment.Logfile=log/comment.log
 ServletModule.Comment.Logfile=log/comment.log
-ServletModule.Comment.ConfirmTemplate=confirm.template
-ServletModule.Comment.ObjektTemplate=comment.template
-ServletModule.Comment.ListTemplate=commentlist.template
+ServletModule.Comment.ConfirmTemplate=admin/confirm.template
+ServletModule.Comment.ObjektTemplate=admin/comment.template
+ServletModule.Comment.ListTemplate=admin/commentlist.template
 
 #
 # config for Breaking - browsing/editing/deleting breaking news
 Module.Breaking.Logfile=log/breaking.log
 ServletModule.Breaking.Logfile=log/comment.log
-ServletModule.Breaking.ConfirmTemplate=confirm.template
-ServletModule.Breaking.ObjektTemplate=breaking.template
-ServletModule.Breaking.ListTemplate=breakinglist.template
+ServletModule.Breaking.ConfirmTemplate=admin/confirm.template
+ServletModule.Breaking.ObjektTemplate=admin/breaking.template
+ServletModule.Breaking.ListTemplate=admin/breakinglist.template
 
 
 #
 # config for messages - browsing/editing/deleting internal messages
 Module.Messages.Logfile=log/message.log
 ServletModule.Messages.Logfile=log/comment.log
-ServletModule.Messages.ConfirmTemplate=confirm.template
-ServletModule.Messages.ObjektTemplate=message.template
-ServletModule.Messages.ListTemplate=messagelist.template
+ServletModule.Messages.ConfirmTemplate=admin/confirm.template
+ServletModule.Messages.ObjektTemplate=admin/message.template
+ServletModule.Messages.ListTemplate=admin/messagelist.template
 
 #
-# config for languages - browsing/editing/deleting internal messages
+# config for languages - browsing/editing/deleting languages
 Module.Language.Logfile=log/message.log
 ServletModule.Language.Logfile=log/mir.log
-ServletModule.Language.ConfirmTemplate=confirm.template
-ServletModule.Language.ObjektTemplate=language.template
-ServletModule.Language.ListTemplate=languagelist.template
+ServletModule.Language.ConfirmTemplate=admin/confirm.template
+ServletModule.Language.ObjektTemplate=admin/language.template
+ServletModule.Language.ListTemplate=admin/languagelist.template
+
 
 #
 # producer-related configs below
index 681f063..9688a30 100755 (executable)
@@ -224,6 +224,7 @@ public final class HTMLTemplateProcessor {
       configHash.put("videoHost", new SimpleScalar(videoHost));
       configHash.put("audioHost", new SimpleScalar(audioHost));
       configHash.put("imageHost", new SimpleScalar(imageHost));
+      configHash.put("mirVersion", new SimpleScalar(MirConfig.getProp("Mir.Version")));
       // this conform to updated freemarker syntax
       configHash.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
                        
@@ -232,7 +233,7 @@ public final class HTMLTemplateProcessor {
       outPutHash.put("config", configHash);
                                
                        MessageResources messages = MessageResources.getMessageResources("admin");
-                       outPutHash.put("message", new MessageMethodModel(locale, messages) );
+                       outPutHash.put("lang", new MessageMethodModel(locale, messages) );
                                
       tmpl.process(outPutHash,out);
     }
index 3abedd7..3ef833f 100755 (executable)
@@ -1,88 +1,93 @@
 package mir.misc;
 
-import java.util.*;
-import freemarker.template.*;
-import org.apache.struts.util.*;
+import freemarker.template.SimpleScalar;
+import freemarker.template.TemplateMethodModel;
+import freemarker.template.TemplateModel;
+import org.apache.struts.util.MessageResources;
+
+import java.util.List;
+import java.util.Locale;
 
 /**
  * A FreeMarker <code>TemplateMethodModel</code> that provides access to a
  * Struts <code>MessageResources</code>, for use in Interantionalized templates.
  *
- * TODO:  we probably want to be doing some memoizing or something with this class*
  * @author Kellan <kellan@protest.net>
- *
  */
- public class MessageMethodModel implements TemplateMethodModel {
-   
-  /**
-   * The perferred locale for this instance of MessageMethod.
-   */
-       private Locale locale;
-    
-  /**
-   * The MessageResources to query, a single instances shared for
-   * the lifetime of servlet.
-   */
-       private MessageResources messages;
-   
-   
-       /**
-   * Construct a MessageMethod that uses the JVM's default locale.
-        *
-        * @param message The MessageResources object to query
-        */
-  public MessageMethodModel(MessageResources messages) {
-       this(null, messages);
-  }
-   
-       /**
-        * Construct a MessageMethod
-        *
-        * @param locale a Locale object, persumably initialized
-        *               from users Accept-Language header field
-        *
-        * @param message The MessageResources object to query
-        */
-       public MessageMethodModel(Locale locale, MessageResources messages) {
-               this.locale = locale;
-               this.messages = messages;
-       }
-        
-   
-  /**
-   * Takes the first argument as a resource key, then looks up
-   * a string in the MessagesResources, based on that key, and the Locale
-   * TODO: this is an alpha implementation.  We should then check if we have
-   *       any keys left over, and attempt to apply MessageFormat.format.
-   * TODO: error messages should be i18n :)
-   *
-   * @param arguments List passed in by FM, first arguement is a string used as the key
-   */
-  public TemplateModel exec(List arguments) {
-               if ( arguments != null ) {
-                       String key = (String)arguments.get(0);
-                       String mesg = messages.getMessage(locale, key);
-                       if ( mesg == null ) {
-                               return unknownTagScalar;
-                       }
-                       return new SimpleScalar(mesg);
-               } else {
-                       return missingKeyScalar;
-               }
-       }
-          
-       // i'm not real clear on how this is used - kellan :)
-       public boolean isEmpty() {
-       if (messages == null)
-                       return true;
-    else
-                       return false;
-  }
-       private static String errUnknownTag = "TAG NOT FOUND";
-       private static String missingKey = "MESSAGE CALL WITHOUT KEY";
-       private static SimpleScalar unknownTagScalar =
-               new SimpleScalar(errUnknownTag);
-       private static SimpleScalar missingKeyScalar =
-               new SimpleScalar(missingKey);
+
+public class MessageMethodModel implements TemplateMethodModel {
+
+    /**
+     * The perferred locale for this instance of MessageMethod.
+     */
+    private Locale locale;
+
+    /**
+     * The MessageResources to query, a single instance shared for
+     * the lifetime of servlet.
+     */
+    private MessageResources messages;
+
+
+    /**
+     * Construct a MessageMethod that uses the JVM's default locale.
+     *
+     * @param message The MessageResources object to query
+     */
+    public MessageMethodModel(MessageResources messages) {
+        this(null, messages);
+    }
+
+    /**
+     * Construct a MessageMethod
+     *
+     * @param locale a Locale object, persumably initialized
+     *               from users Accept-Language header field
+     *
+     * @param message The MessageResources object to query
+     */
+    public MessageMethodModel(Locale locale, MessageResources messages) {
+        this.locale = locale;
+        this.messages = messages;
+    }
+
+
+    /**
+     * Takes the first argument as a resource key, then looks up
+     * a string in the MessagesResources, based on that key, and the Locale
+     *
+     * TODO: error messages should be i18n :)
+     *
+     * @param arguments List passed in by FM, first arguement is a string used as the key
+     *                  all subsequent arguments are used as described in MessageResources
+     *                  (they are filled into the placehoders of the string being returned)
+     */
+    public TemplateModel exec(List arguments) {
+        if (arguments != null) {
+            String key = (String) arguments.get(0);
+            arguments.remove(0);
+            String mesg = messages.getMessage(locale, key, arguments.toArray());
+
+            if (mesg == null) {
+                return new SimpleScalar(errUnknownTag+key);
+            }
+            return new SimpleScalar(mesg);
+        }
+        else {
+            return missingKeyScalar;
+        }
+    }
+
+    // i'm not real clear on how this is used - kellan :)
+    public boolean isEmpty() {
+        if (messages == null)
+            return true;
+        else
+            return false;
+    }
+
+    private static String errUnknownTag = "MESSAGE NOT FOUND: ";
+    private static String missingKey = "MESSAGE CALL WITHOUT KEY";
+    private static SimpleScalar missingKeyScalar =
+            new SimpleScalar(missingKey);
 }
index 9b3c400..0bbeb45 100755 (executable)
@@ -1,18 +1,15 @@
 package mir.servlet;
 
+import mir.misc.Logfile;
+import mir.misc.MirConfig;
+import mir.misc.StringUtil;
+import mir.storage.StorageObjectException;
+
+import javax.servlet.UnavailableException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import javax.servlet.UnavailableException;
-import java.io.File;
 import java.util.Locale;
-import java.util.HashMap;
-
-import mir.misc.HTMLTemplateProcessor;
-import mir.misc.StringUtil;
-import mir.misc.MirConfig;
-import mir.misc.Logfile;
-import mir.storage.StorageObjectException;
 
 /**
  * Title:        Mir
@@ -24,74 +21,100 @@ import mir.storage.StorageObjectException;
  */
 
 public abstract class AbstractServlet extends HttpServlet {
-  protected static String lang;
-  protected static Logfile theLog;
+    protected static String lang;
+    protected static Logfile theLog;
+
+    /**
+     * the configration
+     */
+    protected boolean getConfig(HttpServletRequest req)
+            throws UnavailableException {
 
-  /**
-   * the configration
-   */
-  protected boolean getConfig(HttpServletRequest req)
-    throws UnavailableException {
+        String RealPath = super.getServletContext().getRealPath("/");
+        String Uri = req.getRequestURI();
+        String Name = super.getServletName();
+        String RootUri = StringUtil.replace(Uri, "/servlet/" + Name, "");
 
-    String RealPath = super.getServletContext().getRealPath("/");
-    String Uri = req.getRequestURI();
-    String Name = super.getServletName();
-    String RootUri = StringUtil.replace(Uri, "/servlet/" + Name, "");
+        // init config
+        MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config"));
 
-    // init config
-    MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config"));
+        theLog = Logfile.getInstance(MirConfig.getPropWithHome(Name + ".Logfile"));
+        theLog.printInfo(Name + " started.");
+        theLog.printInfo("Path is: " + MirConfig.getProp("Home"));
+        theLog.printInfo("Root URI is: " + MirConfig.getProp("RootUri"));
+        theLog.printInfo("StandardLanguage is: " + MirConfig.getProp("StandardLanguage"));
+        try {
+            MirConfig.initDbPool();
+        }
+        catch (StorageObjectException e) {
+            throw new UnavailableException(
+                    "Could not initialize database pool. -- "
+                    + e.toString(), 0);
+        }
+        super.getServletContext().setAttribute("mir.confed", new Boolean(true));
+        return true;
+    }
+
+    /**
+     * Bind the language to the session
+     */
+    protected void setLanguage(HttpSession session, String language) {
+        session.setAttribute("Language", language);
+    }
 
-    theLog = Logfile.getInstance(MirConfig.getPropWithHome(Name+".Logfile"));
-    theLog.printInfo(Name + " started.");
-    theLog.printInfo("Path is: " + MirConfig.getProp("Home"));
-    theLog.printInfo("Root URI is: " + MirConfig.getProp("RootUri"));
-    theLog.printInfo("Lang is: " + MirConfig.getProp("StandardLanguage"));
-    try {
-      MirConfig.initDbPool();
-    } catch ( StorageObjectException e) {
-      throw new UnavailableException(
-                                     "Could not initialize database pool. -- "
-                                     + e.toString(), 0);
+    protected void setLocale(HttpSession session, Locale loc) {
+        session.setAttribute("Locale", loc);
     }
-    super.getServletContext().setAttribute("mir.confed", new Boolean(true));
-    return true;
-  }
 
-  /**
-   * Bind the language to the session
-   */
-  protected void setLanguage(HttpSession session, String language){
-    session.setAttribute("Language",language);
-  }
+    /**
+     * Get the session-bound language
+     */
+    protected String getLanguage(HttpServletRequest req, HttpSession session) {
+        String lang = (String) session.getAttribute("Language");
+        if (lang == null || lang.equals("")) {
+            return getAcceptLanguage(req);
+        }
+        else {
+            return lang;
+        }
+    }
 
-  /**
-   * Get the session-bound language
-   */
-  protected String getLanguage(HttpServletRequest req, HttpSession session){
-    String lang = (String)session.getAttribute("Language");
-    if(lang==null || lang.equals("")){
-      return getAcceptLanguage(req);
-    } else {
-      return lang;
+    /**
+     * get the locale either from the session or the accept-language header ot the request
+     * this supersedes getLanguage for the new i18n
+     */
+    public Locale getLocale(HttpServletRequest req) {
+        Locale loc=null;
+        HttpSession session = req.getSession(false);
+        if (session!=null) {
+            // session can be null in case of logout
+            loc = (Locale) session.getAttribute("Locale");
+        }
+        // if there is nothing in the session get it fron the accept-language
+        if (loc == null) {
+            loc = req.getLocale();
+        }
+        return loc;
     }
-  }
 
-  /**
-   * Checks the Accept-Language of the client browser.
-   * If this language is available it returns its country-code,
-   * else it returns the standard-language
-   */
-  protected String getAcceptLanguage(HttpServletRequest req){
-    Locale loc = req.getLocale();
-    lang = loc.getLanguage();
-    File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
-    //is there an existing template-path?
-    if(!f.isDirectory()){
-      //no there isn't. we use standard-language
-      lang = MirConfig.getProp("StandardLanguage");
-      theLog.printDebugInfo("language not existing");
+    /**
+     * Checks the Accept-Language of the client browser.
+     * If this language is available it returns its country-code,
+     * else it returns the standard-language
+     */
+    protected String getAcceptLanguage(HttpServletRequest req) {
+        Locale loc = req.getLocale();
+        lang = loc.getLanguage();
+        /* not needed anymore due to new i18n
+          File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
+        //is there an existing template-path?
+        if(!f.isDirectory()){
+          //no there isn't. we use standard-language
+          lang = MirConfig.getProp("StandardLanguage");
+          theLog.printDebugInfo("language not existing");
+        }
+        theLog.printDebugInfo("Language: " + lang);
+        */
+        return lang;
     }
-    theLog.printDebugInfo("Language: " + lang);
-    return lang;
-  }
 }
index 7d076bf..84e87bc 100755 (executable)
@@ -1,16 +1,22 @@
-package  mir.servlet;
+package mir.servlet;
 
-import  java.io.*;
-import  java.lang.*;
-import  java.util.*;
-import  javax.servlet.http.*;
-import  freemarker.template.*;
-import  mir.storage.*;
-import  mir.servlet.ServletModuleException;
-import  mir.misc.*;
-import  mir.entity.*;
-import  mir.module.*;
-import  mir.misc.*;
+import freemarker.template.SimpleHash;
+import freemarker.template.TemplateModelRoot;
+import mir.entity.EntityList;
+import mir.misc.*;
+import mir.module.AbstractModule;
+import mir.module.ModuleException;
+import mir.storage.StorageObject;
+import mir.storage.StorageObjectException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Locale;
 
 
 /**
@@ -28,336 +34,376 @@ import  mir.misc.*;
 
 public abstract class ServletModule {
 
-  public String                 defaultAction;
-  protected Logfile             theLog;
-  protected AbstractModule      mainModule;
-  protected String              templateListString;
-  protected String              templateObjektString;
-  protected String              templateConfirmString;
+    public String defaultAction;
+    protected Logfile theLog;
+    protected AbstractModule mainModule;
+    protected String templateListString;
+    protected String templateObjektString;
+    protected String templateConfirmString;
 
-  /**
-   * Singelton - Methode muss in den abgeleiteten Klassen ueberschrieben werden.
-   * @return ServletModule
-   */
-  public static ServletModule getInstance() { return null; }
+    /**
+     * Singelton - Methode muss in den abgeleiteten Klassen ueberschrieben werden.
+     * @return ServletModule
+     */
+    public static ServletModule getInstance() {
+        return null;
+    }
 
-  /**
-   * get the session binded language
-   */
-  public String getLanguage(HttpServletRequest req){
-    HttpSession session = req.getSession(false);
-    String language = (String)session.getAttribute("Language");
-    if(language==null){
-      language=MirConfig.getProp("StandardLanguage");
+    /**
+     * get the session binded language
+     */
+    public String getLanguage(HttpServletRequest req) {
+        HttpSession session = req.getSession(false);
+        String language = (String) session.getAttribute("Language");
+        if (language == null) {
+            language = MirConfig.getProp("StandardLanguage");
+        }
+        return language;
     }
-    return language;
-  }
 
-  // ACHTUNG DEPRECATED::::
-  public void process(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException {}
+    /**
+     * get the locale either from the session or the accept-language header ot the request
+     * this supersedes getLanguage for the new i18n
+     */
+    public Locale getLocale(HttpServletRequest req) {
+        Locale loc = null;
+        HttpSession session = req.getSession(false);
+        if (session != null) {
+            // session can be null in case of logout
+            loc = (Locale) session.getAttribute("Locale");
+        }
+        // if there is nothing in the session get it fron the accept-language
+        if (loc == null) {
+            loc = req.getLocale();
+        }
+        return loc;
+    }
 
+    // ACHTUNG DEPRECATED::::
+    public void process(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException {
+    }
 
 
-  /**
-   *  list(req,res) - generische Listmethode. Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   *
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
-  public void list(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException {
-    try {
-      EntityList   theList;
-      String       offsetParam = req.getParameter("offset");
-      int          offset=0;
-      PrintWriter out = res.getWriter();
+    /**
+     *  list(req,res) - generische Listmethode. Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     *
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
+    public void list(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException {
+        try {
+            EntityList theList;
+            String offsetParam = req.getParameter("offset");
+            int offset = 0;
+            PrintWriter out = res.getWriter();
 
-      // hier offsetcode bearbeiten
-      if (offsetParam != null && !offsetParam.equals("")){
-        offset = Integer.parseInt(offsetParam);
-      }
-      if (req.getParameter("next") != null){
-          offset=Integer.parseInt(req.getParameter("nextoffset"));
-      } else {
-          if (req.getParameter("prev") != null){
-            offset = Integer.parseInt(req.getParameter("prevoffset"));
-          }
-      }
-      theList = mainModule.getByWhereClause(null, offset);
-      //theList = mainModule.getByWhereClause((String)null, offset);
-      if (theList == null || theList.getCount() == 0 || theList.getCount()>1){
-        HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString, theList, out,req.getLocale());
-      } else {
-        deliver(req, res, theList.elementAt(0), templateObjektString);
-      }
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+            // hier offsetcode bearbeiten
+            if (offsetParam != null && !offsetParam.equals("")) {
+                offset = Integer.parseInt(offsetParam);
+            }
+            if (req.getParameter("next") != null) {
+                offset = Integer.parseInt(req.getParameter("nextoffset"));
+            }
+            else {
+                if (req.getParameter("prev") != null) {
+                    offset = Integer.parseInt(req.getParameter("prevoffset"));
+                }
+            }
+            theList = mainModule.getByWhereClause(null, offset);
+            //theList = mainModule.getByWhereClause((String)null, offset);
+            if (theList == null || theList.getCount() == 0 || theList.getCount() > 1) {
+                HTMLTemplateProcessor.process(res, templateListString, theList, out, getLocale(req));
+            }
+            else {
+                deliver(req, res, theList.elementAt(0), templateObjektString);
+            }
+        }
+        catch (Exception e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-  /**
-   *  add(req,res) - generische Addmethode. Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
-  public void add(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException {
+    /**
+     *  add(req,res) - generische Addmethode. Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
+    public void add(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException {
 
-    try {
-      SimpleHash mergeData = new SimpleHash();
-      mergeData.put("new", "1");
-      deliver(req, res, mergeData, templateObjektString);
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+        try {
+            SimpleHash mergeData = new SimpleHash();
+            mergeData.put("new", "1");
+            deliver(req, res, mergeData, templateObjektString);
+        }
+        catch (Exception e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-  /**
-   *  insert(req,res) - generische Insertmethode, folgt auf add.
-   *  Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   *
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
-  public void insert(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException, ServletModuleUserException {
-    try {
-      HashMap withValues = getIntersectingValues(req, mainModule.getStorageObject());
-      theLog.printDebugInfo("--trying to add...");
-      String id = mainModule.add(withValues);
-      theLog.printDebugInfo("--trying to deliver..."+id);
-      list(req,res);
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+    /**
+     *  insert(req,res) - generische Insertmethode, folgt auf add.
+     *  Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     *
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
+    public void insert(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException, ServletModuleUserException {
+        try {
+            HashMap withValues = getIntersectingValues(req, mainModule.getStorageObject());
+            theLog.printDebugInfo("--trying to add...");
+            String id = mainModule.add(withValues);
+            theLog.printDebugInfo("--trying to deliver..." + id);
+            list(req, res);
+        }
+        catch (Exception e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-/**
-   *  delete(req,res) - generische Deletemethode. Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   *
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
+    /**
+     *  delete(req,res) - generische Deletemethode. Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     *
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
 
-  public void delete(HttpServletRequest req, HttpServletResponse res)
-  throws ServletModuleException
-  {
-    try {
-      String idParam = req.getParameter("id");
-      if (idParam == null) throw new ServletModuleException("Falscher Aufruf: (id) nicht angegeben");
-      // Hier code zum Loeschen
-      String confirmParam = req.getParameter("confirm");
-      String cancelParam = req.getParameter("cancel");
-      if (confirmParam == null && cancelParam == null) {
-        // HTML Ausgabe zum Confirmen!
-        SimpleHash mergeData = new SimpleHash();
-        String moduleClassName = mainModule.getClass().getName();
-        int i = moduleClassName.indexOf(".Module");
-        String moduleName = moduleClassName.substring(i+7);
-        mergeData.put("module", moduleName);
-        mergeData.put("infoString", moduleName + ": " + idParam);
-        mergeData.put("id", idParam);
-        mergeData.put("where", req.getParameter("where"));
-        mergeData.put("order", req.getParameter("order"));
-        mergeData.put("offset", req.getParameter("offset"));
-        deliver(req, res, mergeData,templateConfirmString);
-      } else {
-        if (confirmParam!= null && !confirmParam.equals("")) {
-          //theLog.printInfo("delete confirmed!");
-          mainModule.deleteById(idParam);
-          list(req,res); // back to list
-        } else {
-          if (req.getParameter("where") != null)
-              list(req,res);
-          else
-            edit(req,res);
+    public void delete(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException {
+        try {
+            String idParam = req.getParameter("id");
+            if (idParam == null) throw new ServletModuleException("Falscher Aufruf: (id) nicht angegeben");
+            // Hier code zum Loeschen
+            String confirmParam = req.getParameter("confirm");
+            String cancelParam = req.getParameter("cancel");
+            if (confirmParam == null && cancelParam == null) {
+                // HTML Ausgabe zum Confirmen!
+                SimpleHash mergeData = new SimpleHash();
+                String moduleClassName = mainModule.getClass().getName();
+                int i = moduleClassName.indexOf(".Module");
+                String moduleName = moduleClassName.substring(i + 7);
+                mergeData.put("module", moduleName);
+                mergeData.put("infoString", moduleName + ": " + idParam);
+                mergeData.put("id", idParam);
+                mergeData.put("where", req.getParameter("where"));
+                mergeData.put("order", req.getParameter("order"));
+                mergeData.put("offset", req.getParameter("offset"));
+                deliver(req, res, mergeData, templateConfirmString);
+            }
+            else {
+                if (confirmParam != null && !confirmParam.equals("")) {
+                    //theLog.printInfo("delete confirmed!");
+                    mainModule.deleteById(idParam);
+                    list(req, res); // back to list
+                }
+                else {
+                    if (req.getParameter("where") != null)
+                        list(req, res);
+                    else
+                        edit(req, res);
+                }
+            }
+        }
+        catch (Exception e) {
+            throw new ServletModuleException(e.toString());
         }
-      }
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
     }
-  }
 
-  /**
-   *  edit(req,res) - generische Editmethode. Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   *
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
-  public void edit(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException {
-    try {
-      String idParam = req.getParameter("id");
-      deliver(req, res, mainModule.getById(idParam), templateObjektString);
-    } catch(ModuleException e) {
-      throw new ServletModuleException(e.toString());
+    /**
+     *  edit(req,res) - generische Editmethode. Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     *
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
+    public void edit(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException {
+        try {
+            String idParam = req.getParameter("id");
+            deliver(req, res, mainModule.getById(idParam), templateObjektString);
+        }
+        catch (ModuleException e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-/**
-   *  update(req,res) - generische Updatemethode. Wennn die Funktionalitaet
-   *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
-   *  ueberschreiben werden.
-   *
-   * @param req Http-Request, das vom Dispatcher durchgereicht wird
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   */
+    /**
+     *  update(req,res) - generische Updatemethode. Wennn die Funktionalitaet
+     *  nicht reicht, muss sie in der abgeleiteten ServletModule-Klasse
+     *  ueberschreiben werden.
+     *
+     * @param req Http-Request, das vom Dispatcher durchgereicht wird
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     */
 
-  public void update(HttpServletRequest req, HttpServletResponse res)
-    throws ServletModuleException {
-    try {
-      String idParam = req.getParameter("id");
-      HashMap withValues = getIntersectingValues(req, mainModule.getStorageObject());
-      String id = mainModule.set(withValues);
-      //theLog.printInfo("Showing Entity with id: " + id);
-      //edit(req,res);
-      String whereParam = req.getParameter("where");
-      String orderParam = req.getParameter("order");
-      if ((whereParam!=null && !whereParam.equals("")) || (orderParam!=null && !orderParam.equals(""))){
-        //theLog.printDebugInfo("update to list");
-        list(req,res);
-      } else {
-        edit(req, res);
-      }
-      //list(req,res);
-    } catch (Exception e) {
-      throw new ServletModuleException(e.toString());
+    public void update(HttpServletRequest req, HttpServletResponse res)
+            throws ServletModuleException {
+        try {
+            String idParam = req.getParameter("id");
+            HashMap withValues = getIntersectingValues(req, mainModule.getStorageObject());
+            String id = mainModule.set(withValues);
+            //theLog.printInfo("Showing Entity with id: " + id);
+            //edit(req,res);
+            String whereParam = req.getParameter("where");
+            String orderParam = req.getParameter("order");
+            if ((whereParam != null && !whereParam.equals("")) || (orderParam != null && !orderParam.equals(""))) {
+                //theLog.printDebugInfo("update to list");
+                list(req, res);
+            }
+            else {
+                edit(req, res);
+            }
+            //list(req,res);
+        }
+        catch (Exception e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-  // Hilfsprozeduren
-  /**
-  public void predeliver(HttpServletResponse res, TemplateModelRoot rtm, String tmpl)
-    throws ServletModuleException {
-    try {
-      PrintWriter out = new LineFilterWriter(res.getWriter());
-      StringWriter a = new StringWriter();
-      deliver(new PrintWriter(a),rtm,tmpl);
-      out.write(a.toString());
-      out.flush();
-    } catch (Exception e) {
-      e.printStackTrace();System.err.println(e.toString());
-    }
-  }
-  */
+    // Hilfsprozeduren
+    /**
+     public void predeliver(HttpServletResponse res, TemplateModelRoot rtm, String tmpl)
+     throws ServletModuleException {
+     try {
+     PrintWriter out = new LineFilterWriter(res.getWriter());
+     StringWriter a = new StringWriter();
+     deliver(new PrintWriter(a),rtm,tmpl);
+     out.write(a.toString());
+     out.flush();
+     } catch (Exception e) {
+     e.printStackTrace();System.err.println(e.toString());
+     }
+     }
+     */
 
-  /**
-   * deliver liefert das Template mit dem Filenamen templateFilename
-   * an den HttpServletResponse res aus, nachdem es mit den Daten aus
-   * TemplateModelRoot rtm gemischt wurde
-   *
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
-   *   Daten, die ins Template gemerged werden sollen.
-   * @param tmpl Name des Templates
-   * @exception ServletModuleException
-   */
-  public void deliver(HttpServletRequest req, HttpServletResponse res, TemplateModelRoot rtm, String templateFilename)
-    throws ServletModuleException {
-    if (rtm == null) rtm = new SimpleHash();
-    try {
-      //PrintWriter out =  new LineFilterWriter(res.getWriter());
-      PrintWriter out =  res.getWriter();
-      HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateFilename, rtm , out, req.getLocale());
-      out.close();
-    } catch (HTMLParseException e) {
-      throw new ServletModuleException(e.toString());
-    } catch (IOException e) {
-      throw new ServletModuleException(e.toString());
-    }
-  }
-  /**
-   * deliver liefert das Template mit dem Filenamen templateFilename
-   * an den HttpServletResponse res aus, nachdem es mit den Daten aus
-   * TemplateModelRoot rtm gemischt wurde
-   *
-   * @param res Http-Response, die vom Dispatcher durchgereicht wird
-   * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
-   *   Daten, die ins Template gemerged werden sollen.
-   * @param tmpl Name des Templates
-   * @exception ServletModuleException
-   */
-  public void deliver_compressed(HttpServletRequest req, HttpServletResponse res, TemplateModelRoot rtm, String templateFilename)
-    throws ServletModuleException {
-    if (rtm == null) rtm = new SimpleHash();
-    try {
-      PrintWriter out =  new LineFilterWriter(res.getWriter());
-      //PrintWriter out =  res.getWriter();
-      HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateFilename, rtm , out, req.getLocale());
-      out.close();
-    } catch (HTMLParseException e) {
-      throw new ServletModuleException(e.toString());
-    } catch (IOException e) {
-      throw new ServletModuleException(e.toString());
+    /**
+     * deliver liefert das Template mit dem Filenamen templateFilename
+     * an den HttpServletResponse res aus, nachdem es mit den Daten aus
+     * TemplateModelRoot rtm gemischt wurde
+     *
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
+     *   Daten, die ins Template gemerged werden sollen.
+     * @param tmpl Name des Templates
+     * @exception ServletModuleException
+     */
+    public void deliver(HttpServletRequest req, HttpServletResponse res, TemplateModelRoot rtm, String templateFilename)
+            throws ServletModuleException {
+        if (rtm == null) rtm = new SimpleHash();
+        try {
+            //PrintWriter out =  new LineFilterWriter(res.getWriter());
+            PrintWriter out = res.getWriter();
+            HTMLTemplateProcessor.process(res, templateFilename, rtm, out, getLocale(req));
+            out.close();
+        }
+        catch (HTMLParseException e) {
+            throw new ServletModuleException(e.toString());
+        }
+        catch (IOException e) {
+            throw new ServletModuleException(e.toString());
+        }
     }
-  }
 
-  /**
-   * deliver liefert das Template mit dem Filenamen templateFilename
-   * an den HttpServletResponse res aus, nachdem es mit den Daten aus
-   * TemplateModelRoot rtm gemischt wurde
-   *
-   * @param out ist der OutputStream, in den die gergten Daten geschickt werden sollen.
-   * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
-   *   Daten, die ins Template gemerged werden sollen.
-   * @param tmpl Name des Templates
-   * @exception ServletModuleException
-   */
-  private void deliver(HttpServletResponse res,HttpServletRequest req, PrintWriter out, TemplateModelRoot rtm, String templateFilename)
-    throws HTMLParseException {
-    HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateFilename, rtm , out, req.getLocale());
-  }
+    /**
+     * deliver liefert das Template mit dem Filenamen templateFilename
+     * an den HttpServletResponse res aus, nachdem es mit den Daten aus
+     * TemplateModelRoot rtm gemischt wurde
+     *
+     * @param res Http-Response, die vom Dispatcher durchgereicht wird
+     * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
+     *   Daten, die ins Template gemerged werden sollen.
+     * @param tmpl Name des Templates
+     * @exception ServletModuleException
+     */
+    public void deliver_compressed(HttpServletRequest req, HttpServletResponse res, TemplateModelRoot rtm, String templateFilename)
+            throws ServletModuleException {
+        if (rtm == null) rtm = new SimpleHash();
+        try {
+            PrintWriter out = new LineFilterWriter(res.getWriter());
+            //PrintWriter out =  res.getWriter();
+            HTMLTemplateProcessor.process(res, templateFilename, rtm, out, getLocale(req));
+            out.close();
+        }
+        catch (HTMLParseException e) {
+            throw new ServletModuleException(e.toString());
+        }
+        catch (IOException e) {
+            throw new ServletModuleException(e.toString());
+        }
+    }
 
-  /**
-   *  Wenn die abgeleitete Klasse diese Methode ueberschreibt und einen String mit einem
-   *  Methodennamen zurueckliefert, dann wird diese Methode bei fehlender Angabe des
-   *  doParameters ausgefuehrt.
-   *
-   * @return Name der Default-Action
-   */
-  public String defaultAction() { return defaultAction; }
+    /**
+     * deliver liefert das Template mit dem Filenamen templateFilename
+     * an den HttpServletResponse res aus, nachdem es mit den Daten aus
+     * TemplateModelRoot rtm gemischt wurde
+     *
+     * @param out ist der OutputStream, in den die gergten Daten geschickt werden sollen.
+     * @param rtm beinahalten das freemarker.template.TempalteModelRoot mit den
+     *   Daten, die ins Template gemerged werden sollen.
+     * @param tmpl Name des Templates
+     * @exception ServletModuleException
+     */
+    private void deliver(HttpServletResponse res, HttpServletRequest req, PrintWriter out, TemplateModelRoot rtm, String templateFilename)
+            throws HTMLParseException {
+        HTMLTemplateProcessor.process(res, templateFilename, rtm, out, getLocale(req));
+    }
 
     /**
-   *  Hier kann vor der Datenaufbereitung schon mal ein response geschickt
-   *  werden (um das subjektive Antwortverhalten bei langsamen Verbindungen
-   *  zu verbessern).
-   */
-  public void predeliver(HttpServletRequest req, HttpServletResponse res) { ; }
+     *  Wenn die abgeleitete Klasse diese Methode ueberschreibt und einen String mit einem
+     *  Methodennamen zurueckliefert, dann wird diese Methode bei fehlender Angabe des
+     *  doParameters ausgefuehrt.
+     *
+     * @return Name der Default-Action
+     */
+    public String defaultAction() {
+        return defaultAction;
+    }
 
-  /**
-   * Holt die Felder aus der Metadatenfelderliste des StorageObjects, die
-   * im HttpRequest vorkommen und liefert sie als HashMap zurueck
-   *
-   * @return HashMap mit den Werten
-   */
-  public HashMap getIntersectingValues(HttpServletRequest req, StorageObject theStorage)
-    throws ServletModuleException {
-    ArrayList theFieldList;
-    try {
-        theFieldList = theStorage.getFields();
-    } catch (StorageObjectException e) {
-      throw new ServletModuleException("ServletModule.getIntersectingValues: " + e.toString());
+    /**
+     *  Hier kann vor der Datenaufbereitung schon mal ein response geschickt
+     *  werden (um das subjektive Antwortverhalten bei langsamen Verbindungen
+     *  zu verbessern).
+     */
+    public void predeliver(HttpServletRequest req, HttpServletResponse res) {
+        ;
     }
 
-    HashMap withValues = new HashMap();
-    String aField, aValue;
+    /**
+     * Holt die Felder aus der Metadatenfelderliste des StorageObjects, die
+     * im HttpRequest vorkommen und liefert sie als HashMap zurueck
+     *
+     * @return HashMap mit den Werten
+     */
+    public HashMap getIntersectingValues(HttpServletRequest req, StorageObject theStorage)
+            throws ServletModuleException {
+        ArrayList theFieldList;
+        try {
+            theFieldList = theStorage.getFields();
+        }
+        catch (StorageObjectException e) {
+            throw new ServletModuleException("ServletModule.getIntersectingValues: " + e.toString());
+        }
+
+        HashMap withValues = new HashMap();
+        String aField, aValue;
 
-    for(int i=0; i<theFieldList.size();i++) {
-      aField = (String)theFieldList.get(i);
-      aValue = req.getParameter(aField);
-      if (aValue!=null) withValues.put(aField,aValue);
+        for (int i = 0; i < theFieldList.size(); i++) {
+            aField = (String) theFieldList.get(i);
+            aValue = req.getParameter(aField);
+            if (aValue != null) withValues.put(aField, aValue);
+        }
+        return withValues;
     }
-    return withValues;
-  }
 
 }
index e853eb5..155aeb0 100755 (executable)
@@ -68,7 +68,7 @@ public class ServletModuleBreaking extends ServletModule
                                mergeData.put("prev", (new Integer(theList.getPrevBatch())).toString());
 
                        // raus damit
-                       HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString, mergeData, res.getWriter(), req.getLocale());
+                       HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req));
                }
                catch (ModuleException e) {throw new ServletModuleException(e.toString());}
                catch (IOException e) {throw new ServletModuleException(e.toString());}
index 3f333d1..dc5383d 100755 (executable)
@@ -117,8 +117,7 @@ public class ServletModuleComment extends ServletModule
                                        }
                                }
                                // raus damit
-                               HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString,
-                                                                                                                                                       mergeData, res.getWriter(), req.getLocale());
+                               HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req));
                        }
                        catch (ModuleException e) {throw new ServletModuleException(e.toString());}
                        catch (IOException e) {throw new ServletModuleException(e.toString());}
index 919f4e3..461f0ce 100755 (executable)
@@ -48,7 +48,7 @@ public class ServletModuleContent extends ServletModule
     try {
                theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Content.Logfile"));
       templateListString = MirConfig.getProp("ServletModule.Content.ListTemplate");
-      templateOpString = MirConfig.getProp("ServletModule.Content.OpTemplate");
+      //templateOpString = MirConfig.getProp("ServletModule.Content.OpTemplate");
       templateObjektString = MirConfig.getProp("ServletModule.Content.ObjektTemplate");
       templateConfirmString = MirConfig.getProp("ServletModule.Content.ConfirmTemplate");
       mainModule = new ModuleContent(DatabaseContent.getInstance());
index 8992cd0..eb8c38c 100755 (executable)
@@ -272,8 +272,7 @@ public class ServletModuleImages extends mir.servlet.ServletModule
           }
         }
         // raus damit
-        HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString,
-                                                                                                                                                       mergeData, res.getWriter(),req.getLocale());
+        HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req));
       }
       catch (ModuleException e) {throw new ServletModuleException(e.toString());}
       catch (IOException e) {throw new ServletModuleException(e.toString());}
index 8e7b36d..37cdad2 100755 (executable)
@@ -66,8 +66,7 @@ public class ServletModuleLinksImcs extends ServletModule
       modelRoot.put("languagelist",theLanguageList);
 
       if (theParentList == null || theParentList.getCount() == 0 || theParentList.getCount()>1){
-        HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateObjektString,
-                                                                                                                                                       modelRoot, res.getWriter(), req.getLocale());
+        HTMLTemplateProcessor.process(res, templateObjektString, modelRoot, res.getWriter(), getLocale(req));
       } else {
         deliver(req, res, modelRoot, templateObjektString);
       }
@@ -150,8 +149,7 @@ public class ServletModuleLinksImcs extends ServletModule
                        if (theImcsList.hasPrevBatch())
                                modelRoot.put("prev", (new Integer(theImcsList.getPrevBatch())).toString());
 
-      HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString,
-                                                                                                                                               modelRoot, res.getWriter(), req.getLocale());
+      HTMLTemplateProcessor.process(res, templateListString, modelRoot, res.getWriter(), getLocale(req));
 
       } catch (Exception e) {
       throw new ServletModuleException(e.toString());
index 4057c08..f9b8a93 100755 (executable)
@@ -68,8 +68,7 @@ public class ServletModuleMessage extends ServletModule
                                mergeData.put("prev", (new Integer(theList.getPrevBatch())).toString());
 
                        // raus damit
-                       HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString,
-                                                                                                                                               mergeData, res.getWriter(), req.getLocale());
+                       HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req));
 
                }
                catch (ModuleException e) {throw new ServletModuleException(e.toString());}