-
- /**
- * Mischt die freemarker-Struktur <code>tmr</code> mit
- * Template <code>templateFilename</code> und gibt das Ergebnis an den PrintWriter
- * <code>out</code>
- *
- * @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 <code>tmr</code> mit
- * Template <code>templateFilename</code> und gibt das Ergebnis an den PrintWriter
- * <code>out</code>
- *
- * @param templateFilename
- * @param mergeData
- * @param out
- * @exception HTMLParseException
- */
- public static void process(HttpServletResponse res,String templateFilename,
- TemplateModelRoot tmr, TemplateModelRoot extra,
- 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("imagePath", new SimpleScalar(imagePath));
- 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(extra!=null){
- outPutHash.put("extra",extra);
- try{
- while(((SimpleList)extra).hasNext()){
- theLog.printDebugInfo(((SimpleList)extra).next().toString());
- }
- }catch(Exception e){}
- }
- outPutHash.put("data",tmr);
- outPutHash.put("config", configHash);
-
- MessageResources messages = MessageResources.getMessageResources("bundles.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<aList.size();i++) {
- simpleList.add(aList.elementAt(i));
- }
+ /**
+ * Mischt die freemarker-Struktur <code>tmr</code> mit
+ * Template <code>templateFilename</code> und gibt das Ergebnis an den PrintWriter
+ * <code>out</code>
+ *
+ * @param templateFilename
+ * @param mergeData
+ * @param out
+ * @exception HTMLParseException
+ */
+ public static void process(HttpServletResponse res, String templateFilename,
+ TemplateModelRoot tmr, TemplateModelRoot extra,
+ PrintWriter out, Locale locale, String bundles)
+ 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("");
+ }
+
+ SimpleHash configHash = new SimpleHash();
+
+ // pass the whole config hash to the templates
+ Enumeration en = MirConfig.getResourceKeys();
+ String key;
+ while (en.hasMoreElements()) {
+ key = (String) en.nextElement();
+ configHash.put(key, new SimpleScalar(MirConfig.getProp(key)));
+ }
+
+ // this does not come directly from the config file
+ configHash.put("docRoot", new SimpleScalar(docRoot));
+ configHash.put("actionRoot", new SimpleScalar(actionRoot + session));
+ configHash.put("now", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
+
+ // this conform to updated freemarker syntax
+ configHash.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace());
+
+ SimpleHash utilityHash = new SimpleHash();
+ try {
+ utilityHash.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace());
+ utilityHash.put("encodeURI", FreemarkerGenerator.makeAdapter(new GeneratorHTMLFunctions.encodeURIGeneratorFunction()));
+ utilityHash.put("encodeHTML", FreemarkerGenerator.makeAdapter(new GeneratorHTMLFunctions.encodeHTMLGeneratorFunction()));
+ }
+ catch (Throwable t) {
+ throw new HTMLParseException(t.getMessage());
+ }
+
+
+ SimpleHash outPutHash = new SimpleHash();
+
+ if (extra != null) {
+ outPutHash.put("extra", extra);
+ try {
+ while (((SimpleList) extra).hasNext()) {
+ theLog.printDebugInfo(((SimpleList) extra).next().toString());
+ }
+ } catch (Exception e) {
+ }
+ }
+ outPutHash.put("data", tmr);
+ outPutHash.put("config", configHash);
+ outPutHash.put("utility", utilityHash);
+
+ MessageResources messages = MessageResources.getMessageResources(bundles);
+ outPutHash.put("lang", new MessageMethodModel(locale, messages));
+
+ tmpl.process(outPutHash, out);