2 * Copyright (C) 2001, 2002 The Mir-coders group
4 * This file is part of Mir.
6 * Mir is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * Mir is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with Mir; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 * In addition, as a special exception, The Mir-coders gives permission to link
21 * the code of this program with the com.oreilly.servlet library, any library
22 * licensed under the Apache Software License, The Sun (tm) Java Advanced
23 * Imaging library (JAI), The Sun JIMI library (or with modified versions of
24 * the above that use the same license as the above), and distribute linked
25 * combinations including the two. You must obey the GNU General Public
26 * License in all respects for all of the code used other than the above
27 * mentioned libraries. If you modify this file, you may extend this exception
28 * to your version of the file, but you are not obligated to do so. If you do
29 * not wish to do so, delete this exception statement from your version.
32 package mircoders.localizer.basic;
36 import freemarker.template.utility.*;
39 import mir.entity.adapter.*;
41 import mircoders.module.*;
42 import mircoders.storage.*;
43 import mircoders.localizer.*;
44 import mircoders.global.*;
46 public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantLocalizer {
47 protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
49 public void initializeGenerationValueSet(Map aValueSet) {
52 Map configMap = new HashMap();
53 Map utilityMap = new HashMap();
56 configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
57 configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
58 configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
59 configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
60 configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
61 configMap.put("actionRoot", MirGlobal.getConfigProperty("RootUri")+"/servlet/Mir");
62 configMap.put("now", new DateToMapAdapter((new GregorianCalendar()).getTime()));
63 configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
64 configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
65 configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
66 configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
67 configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
68 configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
71 configMap.putAll( MirConfig.allSettings() );
73 utilityMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
74 utilityMap.put("encodeHTML", new GeneratorHTMLFunctions.encodeHTMLGeneratorFunction());
75 utilityMap.put("encodeXML", new GeneratorHTMLFunctions.encodeXMLGeneratorFunction());
76 utilityMap.put("encodeURI", new GeneratorHTMLFunctions.encodeURIGeneratorFunction());
77 utilityMap.put("subString", new GeneratorStringFunctions.subStringFunction());
78 utilityMap.put("subList", new GeneratorListFunctions.subListFunction());
79 utilityMap.put("isOdd", new GeneratorIntegerFunctions.isOddFunction());
80 utilityMap.put("increment", new GeneratorIntegerFunctions.incrementFunction());
83 aValueSet.put("config", configMap);
84 aValueSet.put("utility", utilityMap);
88 EntityList topicList=null;
89 EntityList entityList=null;
90 EntityList parentList=null;
91 EntityList languageList=null;
94 ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
95 ModuleLanguage languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
97 topicList = topicsModule.getTopicsList();
98 languageList = languageModule.getByWhereClause("", "id", -1);
101 catch (Throwable t) {
102 logger.printError("initializeGenerationValueSet: Exception "+t.getMessage());
105 aValueSet.put("topics", topicList);
106 aValueSet.put("imclist", entityList);
107 aValueSet.put("parentlist", parentList);
109 Map articleTypeMap = new HashMap();
110 articleTypeMap.put("openposting", "0");
111 articleTypeMap.put("newswire", "1");
112 articleTypeMap.put("feature", "2");
113 articleTypeMap.put("topicspecial", "3");
114 articleTypeMap.put("startspecial", "4");
117 i = new EntityIteratorAdapter( "", "", 20, MirGlobal.localizer().dataModel().adapterModel(), "articleType" );
119 while (i.hasNext()) {
120 EntityAdapter articleType = (EntityAdapter) i.next();
122 articleTypeMap.put(articleType.get("name"), articleType.get("id"));
125 catch (Throwable t) {
126 logger.printError("initializeGenerationValueSet: Exception while collecting article types "+t.getMessage());
128 aValueSet.put("articletype", articleTypeMap);
130 Map commentStatusMap = new HashMap();
132 i = new EntityIteratorAdapter( "", "", 20, MirGlobal.localizer().dataModel().adapterModel(), "commentStatus" );
134 while (i.hasNext()) {
135 EntityAdapter commentStatus = (EntityAdapter) i.next();
137 commentStatusMap.put(commentStatus.get("name"), commentStatus.get("id"));
140 catch (Throwable t) {
141 logger.printError("initializeGenerationValueSet: Exception while collecting comment statuses"+t.getMessage());
143 aValueSet.put("commentstatus", commentStatusMap);
147 public String filterText(String aText) {
148 return StringUtil.createHTML(
149 StringUtil.deleteForbiddenTags(aText),
150 MirGlobal.getConfigProperty("Producer.ImageRoot"),
151 MirGlobal.getConfigProperty("Producer.MailLinkName"),
152 MirGlobal.getConfigProperty("Producer.ExtLinkName"),
153 MirGlobal.getConfigProperty("Producer.IntLinkName")