X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fmisc%2FHTMLTemplateProcessor.java;h=af419eac45ef6f28511f29e7b2fd4475155f5dac;hb=96e3f217ad3b3e4582e9b07966df8daf14072189;hp=07815d49fd3c7474a7c830574a38d5ca61676404;hpb=8bf1c9c26ec4031532eb2f7784d67c12c5a83977;p=mir.git diff --git a/source/mir/misc/HTMLTemplateProcessor.java b/source/mir/misc/HTMLTemplateProcessor.java index 07815d49..af419eac 100755 --- a/source/mir/misc/HTMLTemplateProcessor.java +++ b/source/mir/misc/HTMLTemplateProcessor.java @@ -13,6 +13,7 @@ import freemarker.template.*; import mir.entity.*; import mir.storage.*; import javax.servlet.http.*; +import org.apache.struts.util.MessageResources; /** @@ -30,19 +31,21 @@ public final class HTMLTemplateProcessor { private static String videoHost; private static String imageHost; private static String openAction; - protected static String producerDocRoot = MirConfig.getProp("Producer.DocRoot"); - protected static String producerStorageRoot = MirConfig.getProp("Producer.StorageRoot"); - + protected static String producerDocRoot = + MirConfig.getProp("Producer.DocRoot"); + protected static String producerStorageRoot = + MirConfig.getProp("Producer.StorageRoot"); // // init static { - + /** @todo either in the above block or here :) //rk */ templateDir = MirConfig.getPropWithHome("HTMLTemplateProcessor.Dir"); templateCache = new FileTemplateCache(templateDir); templateCache.setLoadingPolicy(templateCache.LOAD_ON_DEMAND); - templateCache.startAutoUpdate(); + // gone in freemarker 1.7.1 + // templateCache.startAutoUpdate(); theLog = Logfile.getInstance(MirConfig.getPropWithHome("HTMLTemplateProcessor.Logfile")); docRoot = MirConfig.getProp("RootUri"); //the quick hack is back in effect as it was more broken than ever before @@ -50,9 +53,12 @@ public final class HTMLTemplateProcessor { // sorry: nadir back in town, i have to debug the mirbase.jar in the // nadir evironment. from my point of coding, this needs an urgent // fixxx. - //actionRoot = docRoot + "/servlet/" + MirConfig.getProp("ServletName"); + // yeah, from my point too - tob. + //actionRoot = docRoot + "/servlet/" + MirConfig.getProp("ServletName"); //actionRoot = docRoot + "/servlet/NadirAktuell"; - actionRoot = docRoot + "/servlet/Metropolis"; + + actionRoot = docRoot + "/servlet/Mir"; + openAction = MirConfig.getProp("Producer.OpenAction"); productionHost = MirConfig.getProp("Producer.ProductionHost"); videoHost = MirConfig.getProp("Producer.VideoHost"); @@ -100,9 +106,10 @@ public final class HTMLTemplateProcessor { * @param out * @exception HTMLParseException */ - public static void process(HttpServletResponse res,String templateFilename, EntityList entList, PrintWriter out) - throws HTMLParseException { - process(res, templateFilename, entList, (String)null, (TemplateModelRoot)null, out); + public static void process(HttpServletResponse res,String templateFilename, + EntityList entList, PrintWriter out, Locale locale) + throws HTMLParseException { + process(res, templateFilename, entList, (String)null, (TemplateModelRoot)null, out, locale); } /** @@ -118,14 +125,16 @@ public final class HTMLTemplateProcessor { * @param out * @exception HTMLParseException */ - public static void process(HttpServletResponse res,String templateFilename, EntityList entList, String additionalModelName, - TemplateModelRoot additionalModel, PrintWriter out) + public static void process(HttpServletResponse res,String templateFilename, + EntityList entList, String additionalModelName, + TemplateModelRoot additionalModel, PrintWriter out, + Locale locale) throws HTMLParseException { SimpleHash modelRoot = new SimpleHash(); if (entList == null) { - process(null,templateFilename, modelRoot, out); + process(null,templateFilename, modelRoot, out, locale); } else { try { modelRoot = makeSimpleHashWithEntitylistInfos(entList); @@ -134,7 +143,7 @@ public final class HTMLTemplateProcessor { if (additionalModelName != null && additionalModel != null) modelRoot.put(additionalModelName, additionalModel); - process(res,templateFilename, modelRoot, out); + process(res,templateFilename, modelRoot, out, locale); } catch (StorageObjectException e) { throw new HTMLParseException(e.toString()); } @@ -151,9 +160,10 @@ public final class HTMLTemplateProcessor { * @param out * @exception HTMLParseException */ - public static void process(HttpServletResponse res,String templateFilename, HashMap mergeData, PrintWriter out) + public static void process(HttpServletResponse res,String templateFilename, + HashMap mergeData, PrintWriter out, Locale locale) throws HTMLParseException { - process(res,templateFilename, makeSimpleHash(mergeData), out); + process(res,templateFilename, makeSimpleHash(mergeData), out, locale); } /** @@ -165,11 +175,29 @@ public final class HTMLTemplateProcessor { * @param out * @exception HTMLParseException */ - public static void process(String templateFilename, PrintWriter out) + public static void process(String templateFilename, PrintWriter out, + Locale locale) throws HTMLParseException { - process(null,templateFilename, (TemplateModelRoot)null, out); + process(null,templateFilename, (TemplateModelRoot)null, out, locale); } + + /** + * Mischt die freemarker-Struktur tmr mit + * Template templateFilename und gibt das Ergebnis an den PrintWriter + * out + * + * @param templateFilename + * @param mergeData + * @param out + * @exception HTMLParseException + */ + public static void process(HttpServletResponse res,String templateFilename, + TemplateModelRoot tmr, PrintWriter out, Locale locale) + throws HTMLParseException { + process(res,templateFilename,tmr,null,out,locale); + + } /** * Mischt die freemarker-Struktur tmr mit @@ -181,54 +209,73 @@ public final class HTMLTemplateProcessor { * @param out * @exception HTMLParseException */ - public static void process(HttpServletResponse res,String templateFilename, TemplateModelRoot tmr, PrintWriter out) - throws HTMLParseException { - if (out==null) throw new HTMLParseException("no outputstream"); - Template tmpl = getTemplateFor(templateFilename); - if (tmpl == null) throw new HTMLParseException("no template: " + templateFilename); - if (tmr==null) tmr = new SimpleHash(); - - /** @todo what is this for? (rk) */ - String session=""; - if (res!=null) { - session=res.encodeURL(""); - } - - // put standard configuration into tempalteRootmodel - SimpleHash configHash = new SimpleHash(); - configHash.put("docroot", new SimpleScalar(producerDocRoot)); - configHash.put("storageroot", new SimpleScalar(producerStorageRoot)); - configHash.put("productionhost", new SimpleScalar(productionHost)); - configHash.put("openaction", new SimpleScalar(openAction)); - configHash.put("actionRootLogin",new SimpleScalar(actionRoot)); - - - tmr.put("docRoot", new SimpleScalar(docRoot)); - tmr.put("now", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar()))); - tmr.put("actionRoot", new SimpleScalar(actionRoot+session)); - tmr.put("openAction", new SimpleScalar(openAction)); - tmr.put("productionHost", new SimpleScalar(productionHost)); - tmr.put("videoHost", new SimpleScalar(videoHost)); - tmr.put("audioHost", new SimpleScalar(audioHost)); - tmr.put("imageHost", new SimpleScalar(imageHost)); - - tmr.put("config", configHash); - tmpl.process(tmr, out); - - } + public static void process(HttpServletResponse res,String templateFilename, + TemplateModelRoot tmr, TemplateModelRoot popups, + PrintWriter out, Locale locale) + throws HTMLParseException { + if (out==null) throw new HTMLParseException("no outputstream"); + Template tmpl = getTemplateFor(templateFilename); + if (tmpl == null) throw new HTMLParseException("no template: " + templateFilename); + if (tmr==null) tmr = new SimpleHash(); + + /** @todo what is this for? (rk) */ + String session=""; + if (res!=null) { + session=res.encodeURL(""); + } + + // put standard configuration into tempalteRootmodel + SimpleHash configHash = new SimpleHash(); + configHash.put("producerDocRoot", new SimpleScalar(producerDocRoot)); + configHash.put("storageRoot", new SimpleScalar(producerStorageRoot)); + configHash.put("productionHost", new SimpleScalar(productionHost)); + configHash.put("openAction", new SimpleScalar(openAction)); + configHash.put("actionRootLogin",new SimpleScalar(actionRoot)); + configHash.put("docRoot", new SimpleScalar(docRoot)); + configHash.put("now", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar()))); + configHash.put("actionRoot", new SimpleScalar(actionRoot+session)); + configHash.put("productionHost", new SimpleScalar(productionHost)); + 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() ); + + SimpleHash outPutHash = new SimpleHash(); + + if(popups!=null){ + outPutHash.put("popups",popups); + try{ + while(((SimpleList)popups).hasNext()){ + theLog.printDebugInfo(((SimpleList)popups).next().toString()); + } + }catch(Exception e){} + } + outPutHash.put("data",tmr); + outPutHash.put("config", configHash); + + MessageResources messages = MessageResources.getMessageResources("admin"); + outPutHash.put("lang", new MessageMethodModel(locale, messages) ); + + tmpl.process(outPutHash,out); + } /** * Converts Entity-List to SimpleList of SimpleHashes. * @param aList ist eine Liste von Entity * @return eine freemarker.template.SimpleList von SimpleHashes. + * + * @deprecated EntityLists comply with TemplateListModel now. */ public static SimpleList makeSimpleList(EntityList aList) throws StorageObjectException { + theLog.printWarning("## using deprecated makeSimpleList(entityList) - a waste of resources"); SimpleList simpleList = new SimpleList(); if (aList != null) { for(int i=0;i