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("encodeURI", new GeneratorHTMLFunctions.encodeURIGeneratorFunction());
76 utilityMap.put("subString", new GeneratorStringFunctions.subStringFunction());
77 utilityMap.put("subList", new GeneratorListFunctions.subListFunction());
78 utilityMap.put("isOdd", new GeneratorIntegerFunctions.isOddFunction());
79 utilityMap.put("increment", new GeneratorIntegerFunctions.incrementFunction());
82 aValueSet.put("config", configMap);
83 aValueSet.put("utility", utilityMap);
85 EntityList topicList=null;
86 EntityList entityList=null;
87 EntityList parentList=null;
88 EntityList languageList=null;
91 ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
92 ModuleLanguage languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
94 topicList = topicsModule.getTopicsList();
95 languageList = languageModule.getByWhereClause("", "id", -1);
98 logger.printError("initializeGenerationValueSet: Exception "+t.getMessage());
101 aValueSet.put("topics", topicList);
102 aValueSet.put("imclist", entityList);
103 aValueSet.put("parentlist", parentList);
105 Map articleTypeMap = new HashMap();
106 articleTypeMap.put("openposting", "0");
107 articleTypeMap.put("newswire", "1");
108 articleTypeMap.put("feature", "2");
109 articleTypeMap.put("topicspecial", "3");
110 articleTypeMap.put("startspecial", "4");
113 i = new EntityIteratorAdapter( "", "", 20, MirGlobal.localizer().dataModel().adapterModel(), "articleType" );
115 while (i.hasNext()) {
116 EntityAdapter articleType = (EntityAdapter) i.next();
118 articleTypeMap.put(articleType.get("name"), articleType.get("id"));
121 catch (Throwable t) {
122 logger.printError("initializeGenerationValueSet: Exception while collecting article types "+t.getMessage());
124 aValueSet.put("articletype", articleTypeMap);
126 Map commentStatusMap = new HashMap();
128 i = new EntityIteratorAdapter( "", "", 20, MirGlobal.localizer().dataModel().adapterModel(), "commentStatus" );
130 while (i.hasNext()) {
131 EntityAdapter commentStatus = (EntityAdapter) i.next();
133 commentStatusMap.put(commentStatus.get("name"), commentStatus.get("id"));
136 catch (Throwable t) {
137 logger.printError("initializeGenerationValueSet: Exception while collecting comment statuses"+t.getMessage());
139 aValueSet.put("commentstatus", articleTypeMap);
143 public String filterText(String aText) {
144 return StringUtil.createHTML(
145 StringUtil.deleteForbiddenTags(aText),
146 MirGlobal.getConfigProperty("Producer.ImageRoot"),
147 MirGlobal.getConfigProperty("Producer.MailLinkName"),
148 MirGlobal.getConfigProperty("Producer.ExtLinkName"),
149 MirGlobal.getConfigProperty("Producer.IntLinkName")