f08d21a55beed05adb9aa78915dc9e4810450bc1
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerToolLocalizer.java
1 package mircoders.localizer.basic;
2
3 import java.util.*;
4 import java.io.*;
5 import freemarker.template.utility.*;
6 import mir.misc.*;
7 import mir.entity.*;
8 import mircoders.module.*;
9 import mircoders.storage.*;
10 import mircoders.localizer.*;
11 import mircoders.global.*;
12
13 public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
14   protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
15
16   public void initializeGenerationValueSet(Map aValueSet) {
17     // ML: these config settings will be included more beautifully as soon as the new config system is in place
18
19     Map configMap = new HashMap();
20
21                 configMap.put("producerDocRoot", "");//MirGlobal.getConfigProperty("Producer.DocRoot"));
22                 configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
23     configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
24                 configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
25                 configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
26                 configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
27                 configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
28                 configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
29                 configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
30                 configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
31                 configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
32                 configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
33                 configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
34
35     aValueSet.put("config", configMap);
36
37     EntityList topicList=null;
38     EntityList entityList=null;
39     EntityList parentList=null;
40     EntityList languageList=null;
41
42     try {
43       ModuleLinksImcs linksImcsModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
44       ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
45       ModuleLanguage languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
46
47       topicList = topicsModule.getTopicsList();
48       entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1);
49       parentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1);
50       languageList = languageModule.getByWhereClause("", "id", -1);
51     }
52     catch (Throwable t) {
53       logger.printError("initializeGenerationValueSet: Exception "+t.getMessage());
54     }
55
56     aValueSet.put("topics", topicList);
57     aValueSet.put("imclist", entityList);
58     aValueSet.put("parentlist", parentList);
59
60     Map articleTypeMap = new HashMap();
61     articleTypeMap.put("openposting", "0");
62     articleTypeMap.put("newswire", "1");
63     articleTypeMap.put("feature", "2");
64     articleTypeMap.put("topicspecial", "3");
65     articleTypeMap.put("startspecial", "4");
66     aValueSet.put("articletype", articleTypeMap);
67   };
68
69   public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure {
70     File file;
71     File dir;
72
73     try {
74       file = new File( anIdentifier );
75       dir = new File(file.getParent());
76         if (dir!=null && !dir.exists()){
77           dir.mkdirs();
78       }
79
80       return new PrintWriter(
81         new OutputStreamWriter(
82           new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
83         )
84       );
85     }
86     catch (Throwable t) {
87       throw new MirLocalizerFailure("Failure while opening a PrintWriter",t);
88     }
89   };
90
91   public void closeWriter(PrintWriter aWriter) {
92     aWriter.close();
93   };
94
95   public String filterText(String aText) {
96     return StringUtil.createHTML(
97         StringUtil.deleteForbiddenTags(aText),
98         MirGlobal.getConfigProperty("Producer.ImageRoot"),
99         MirGlobal.getConfigProperty("Producer.MailLinkName"),
100         MirGlobal.getConfigProperty("Producer.ExtLinkName"),
101         MirGlobal.getConfigProperty("Producer.IntLinkName")
102     );
103   }
104 }