bugfixes mainly...
[mir.git] / source / mirlocal / bolivia.indymedia.org / BoliviaProducerLocalizer.java
1 package mirlocal.bolivia.indymedia.org;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10
11 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
12
13   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
14     EntityEnumeratingProducerNode contentNode = null;
15
16     try {
17       aProducerNode.clear();
18
19       contentNode =
20           new EntityEnumeratingProducerNode( "content", model, "content",
21             new CompositeProducerNode( new ProducerNode[] {
22               new EntityEnumeratingProducerNode( "language", model, "language", "", "",
23                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
24                     new CompositeProducerNode( new ProducerNode[] {
25                       new GeneratingProducerNode(
26                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
27                     MirGlobal.localizer().generators().makeWriterEngine(),\r
28                           "/producer/bolivia.indymedia.org/article.template",
29                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
30                       ),
31                                 new GeneratingProducerNode(
32                           MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
33                           MirGlobal.localizer().generators().makeWriterEngine(),\r
34                           "/producer/bolivia.indymedia.org/printablecontent.template",
35                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo"
36                       ),
37                                 new PDFGeneratingProducerNode(
38                                             "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo",
39                                         "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.pdf"
40                           ),
41                           new ContentMarkingProducerNode( "content" )
42                      } )
43                 )
44               ),
45               new ContentMarkingProducerNode( "content")
46             } )
47           );
48       contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
49       contentNode.addVerb( "all", "is_published='1'", "" );
50   
51       aProducerNode.addSubNode( contentNode );
52     }
53     catch (Throwable t) {
54       logger.printError("BoliviaProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
55     }
56
57   }
58
59   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
60     try {
61       aProducerNode.clear();
62       aProducerNode.addSubNode(
63             new EntityListProducerNode("newswire", model, "content",
64                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
65               new EntityListProducerNode("languages", model, "language",
66                             "", "code", 10, 0,
67                 new EntityListProducerNode("startspecial", model, "content",
68                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
69                   new EntityListProducerNode("features", model, "content",
70                           "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
71                     new EntityListProducerNode("breaking", model, "breakingNews",
72                               "", "webdb_create desc", 5, 0,
73                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
74                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
75                           new GeneratingProducerNode(
76                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
77                     MirGlobal.localizer().generators().makeWriterEngine(),\r
78                               "/producer/bolivia.indymedia.org/startpage.template",
79                               "${config.storageRoot}/${language.code}/index.shtml"
80                           )
81                         )
82                       )
83                     )
84                   )
85                 )
86               )
87             )
88       );
89       aProducerNode.addSubNode(
90         new EntityListProducerNode( "articles", model, "content",
91               "is_published='1' and to_article_type = ${articletype.feature}",
92               "webdb_create desc, date desc", 10, 0,
93           new GeneratingProducerNode(
94                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
95                     MirGlobal.localizer().generators().makeWriterEngine(),\r
96               "/producer/bolivia.indymedia.org/featuressyndication.template",
97               "${config.storageRoot}/features.1-0.rdf",
98               "UTF-8"
99           )
100         )
101       );
102     }
103     catch (Throwable t) {
104       logger.printError("BoliviaProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
105     }
106   }
107
108   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
109
110     try {
111       aProducerNode.clear();
112       aProducerNode.addSubNode(
113           new EntityListProducerNode("languages", model, "language",
114                   "", "code", 10, 0,
115             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
116               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
117                 new GeneratingProducerNode(
118                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
119                     MirGlobal.localizer().generators().makeWriterEngine(),\r
120                     "/producer/bolivia.indymedia.org/navigation.template",
121                     "${config.storageRoot}/${language.code}/navigation.inc"
122                 )
123               )
124             )
125           )
126       );
127     }
128     catch (Throwable t) {
129       logger.printError("BoliviaProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
130     }
131   }
132
133   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
134     aProducerNode.clear();
135
136     EntityBatchingProducerNode topicArchiveNode = null;
137     ProducerNode topicStartpageNode = null;
138
139     try {
140 // topic pages:
141       topicArchiveNode =
142         new EntityBatchingProducerNode( "articles", "batch", model, "content",
143               "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 10, 0,
144           new EntityListProducerNode("languages", model, "language",
145                   "", "code", 10, 0,
146             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
147               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
148                 new GeneratingProducerNode(
149                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
150                     MirGlobal.localizer().generators().makeWriterEngine(),\r
151                     "/producer/bolivia.indymedia.org/topic.template",
152                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
153                 )
154               )
155             )
156           ),
157           new EntityListProducerNode("languages", model, "language",
158                   "", "code", 10, 0,
159             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
160               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
161                 new GeneratingProducerNode(
162                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
163                     MirGlobal.localizer().generators().makeWriterEngine(),\r
164                     "/producer/bolivia.indymedia.org/topicnavigation.template",
165                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
166                 )
167               )
168             )
169           )
170         );
171       topicArchiveNode.addVerb("new", 3);
172       topicArchiveNode.addVerb("all", -1);
173
174       aProducerNode.addSubNode(
175           new EntityEnumeratingProducerNode( "topic", model, "topic", "filename != ''", "",
176             new EntityListProducerNode("topicspecial", model, "content",
177                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
178               topicArchiveNode
179             )
180           )
181       );
182
183       aProducerNode.addSubNode(
184         new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
185           new EntityListProducerNode("topicspecial", model, "content",
186                 "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
187             new EntityListProducerNode("newswire", model, "content",
188                     "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 40, 0,
189               new EntityListProducerNode("features", model, "content",
190                       "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 10, 0,
191                   new EntityListProducerNode("languages", model, "language",
192                                 "", "code", 10, 0,
193                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
194                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
195                           new GeneratingProducerNode(
196                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
197                     MirGlobal.localizer().generators().makeWriterEngine(),\r
198                               "/producer/bolivia.indymedia.org/topicstartpage.template",
199                               "${config.storageRoot}/${language.code}/${topic.filename}/index.shtml"
200                           )
201                         )
202                       )
203
204                   )
205               )
206             )
207           )
208         )
209       );
210
211     }
212     catch (Throwable t) {
213       logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
214     }
215   }
216
217   protected void setupFactories(Map aFactoriesMap ) {
218     EntityBatchingProducerNode archiveNode = null;
219
220     try {
221       super.setupFactories(aFactoriesMap);
222
223 // newswire archive:
224       archiveNode =
225         new EntityBatchingProducerNode( "articles", "batch", model, "content",
226               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
227           new EntityListProducerNode("languages", model, "language",
228                   "", "code", 10, 0,
229             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
230               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
231                 new GeneratingProducerNode(
232                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
233                     MirGlobal.localizer().generators().makeWriterEngine(),\r
234                     "/producer/bolivia.indymedia.org/newswire.template",
235                     "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
236                 )
237               )
238             )
239           ),
240           new EntityListProducerNode("languages", model, "language",
241                   "", "code", 10, 0,
242             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
243               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
244                 new GeneratingProducerNode(
245                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
246                     MirGlobal.localizer().generators().makeWriterEngine(),\r
247                     "/producer/bolivia.indymedia.org/newswirenavigation.template",
248                     "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
249                 )
250               )
251             )
252           )
253         );
254       archiveNode.addVerb("new", 3);
255       archiveNode.addVerb("all", -1);
256
257       aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
258
259 // feature archive:
260       archiveNode =
261         new EntityBatchingProducerNode( "articles", "batch", model, "content",
262               "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
263           new EntityListProducerNode("languages", model, "language",
264                   "", "code", 10, 0,
265             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
266               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
267                 new GeneratingProducerNode(
268                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
269                     MirGlobal.localizer().generators().makeWriterEngine(),\r
270                     "/producer/bolivia.indymedia.org/feature.template",
271                     "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
272                 )
273               )
274             )
275           ),
276           new EntityListProducerNode("languages", model, "language",
277                   "", "code", 10, 0,
278             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
279               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
280                 new GeneratingProducerNode(
281                     MirGlobal.localizer().generators().makeGeneratorLibrary(),\r
282                     MirGlobal.localizer().generators().makeWriterEngine(),\r
283                     "/producer/bolivia.indymedia.org/featurenavigation.template",
284                     "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
285                 )
286               )
287             )
288           )
289         );
290       archiveNode.addVerb("new", 3);
291       archiveNode.addVerb("all", -1);
292
293       aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
294
295     }
296     catch (Throwable t) {
297       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
298     }
299   }
300   
301   
302 }