1 package mirlocal.indymedia.nl;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10 import mircoders.entity.adapter.*;
12 public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer {
14 protected void setupContentFactory(CompositeProducerNode aProducerNode) {
15 EntityEnumeratingProducerNode contentNode = null;
19 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
20 new CompositeProducerNode( new ProducerNode[] {
21 new GeneratingProducerNode(
22 "/producer/indymedia.nl/content.template",
23 "${config.storageRoot}/content/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.inc"
25 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
26 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
27 new CompositeProducerNode( new ProducerNode[] {
28 new GeneratingProducerNode(
29 "/producer/indymedia.nl/article.template",
30 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
32 new FileDateSettingProducerNode(
33 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
42 contentNode.addVerb( "all", "is_published='1' and to_article_type<>${articletype.trashed} and to_article_type<>${articletype.static}", "" );
43 contentNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type<>${articletype.trashed} and to_article_type<>${articletype.static}", "" );
45 aProducerNode.addSubNode( contentNode );
49 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
50 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
51 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
52 new CompositeProducerNode( new ProducerNode[] {
53 new GeneratingProducerNode(
54 "/producer/indymedia.nl/trashed.template",
55 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
57 new FileDateSettingProducerNode(
58 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
65 contentNode.addVerb( "all", "is_published='1' and to_article_type=${articletype.trashed}", "" );
66 contentNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type=${articletype.trashed}", "" );
68 aProducerNode.addSubNode( contentNode );
71 logger.printError("IndyNLProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
76 protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
78 aProducerNode.addSubNode(
79 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
80 "is_published='1' and to_article_type in (${articletype.newswire}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 40, 0,
81 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
83 new CompositeProducerNode( new ProducerNode[] {
84 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
85 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
86 new GeneratingProducerNode(
87 "/producer/indymedia.nl/newswire.template",
88 "${config.storageRoot}/${language.code}/newswire.inc"
92 new EntityListProducerNode("startspecials", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
93 "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0,
94 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
95 "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0,
96 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
97 "", "webdb_create desc", 5, 0,
98 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
99 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
100 new AssignmentProducerNode( "staticinclude", "1",
101 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
102 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
103 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
104 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
105 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
106 new GeneratingProducerNode(
107 "/producer/indymedia.nl/start.template",
108 "${config.storageRoot}/index.shtml"
122 catch (Throwable t) {
123 logger.printError("IndyNLProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
127 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
128 EntityBatchingProducerNode topicPageNode = null;
132 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
133 "is_published='1' and to_article_type in (${articletype.newswire}, ${articletype.promotednewswire}) and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0,
134 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
136 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
137 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
138 new GeneratingProducerNode(
139 "/producer/indymedia.nl/topic.template",
140 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
145 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
147 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
148 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
149 new GeneratingProducerNode(
150 "/producer/indymedia.nl/topicnavigation.template",
151 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
157 topicPageNode.addVerb("all", -1);
158 topicPageNode.addVerb("new", 3);
160 aProducerNode.addSubNode(
161 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
162 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
163 "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,
169 catch (Throwable t) {
170 logger.printError("IndyNLProducerLocalizer.setupTopicsFactory Exception "+t.getMessage());
175 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
177 aProducerNode.addSubNode(
178 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
180 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
181 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
182 new CompositeProducerNode( new ProducerNode[] {
183 new GeneratingProducerNode(
184 "/producer/indymedia.nl/nav.template",
185 "${config.storageRoot}/${language.code}/nav.inc"
187 new GeneratingProducerNode(
188 "/producer/indymedia.nl/top.template",
189 "${config.storageRoot}/${language.code}/top.inc"
191 new GeneratingProducerNode(
192 "/producer/indymedia.nl/bottom.template",
193 "${config.storageRoot}/${language.code}/bottom.inc"
195 new GeneratingProducerNode(
196 "/producer/indymedia.nl/style.template",
197 "${config.storageRoot}/${language.code}/style.css"
199 new GeneratingProducerNode(
200 "/producer/indymedia.nl/style2.template",
201 "${config.storageRoot}/${language.code}/style2.css"
203 new GeneratingProducerNode(
204 "/producer/indymedia.nl/top.template",
205 "${config.storageRoot}/${language.code}/top.inc"
207 new GeneratingProducerNode(
208 "/producer/indymedia.nl/articlepre.template",
209 "${config.storageRoot}/${language.code}/articlepre.shtml"
211 new GeneratingProducerNode(
212 "/producer/indymedia.nl/articlepost.template",
213 "${config.storageRoot}/${language.code}/articlepost.shtml"
215 new AssignmentProducerNode( "staticinclude", "0",
216 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
217 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
218 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
219 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
220 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
221 new GeneratingProducerNode(
222 "/producer/indymedia.nl/start.template",
223 "${config.storageRoot}/${language.code}/start.shtml"
227 new AssignmentProducerNode( "staticinclude", "0",
228 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
229 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
230 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
231 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
232 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
233 new GeneratingProducerNode(
234 "/producer/indymedia.nl/start.template",
235 "${config.storageRoot}/try/${language.code}/start.shtml"
245 catch (Throwable t) {
246 logger.printError("IndyNLProducerLocalizer.setupStaticFactory Exception "+t.getMessage());
250 protected void setupFactories(Map aFactoriesMap ) {
251 super.setupFactories(aFactoriesMap);
253 ProducerNode node = null;
254 EntityBatchingProducerNode batchingNode = null;
255 EntityEnumeratingProducerNode enumeratingNode = null;
259 new EntityListProducerNode("startspecials", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
260 "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0,
261 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
262 "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0,
263 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
264 "", "webdb_create desc", 5, 0,
265 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
267 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
268 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
269 new GeneratingProducerNode(
270 "/producer/indymedia.nl/features.template",
271 "${config.storageRoot}/${language.code}/features.inc"
279 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
281 catch (Throwable t) {
282 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
288 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
289 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
290 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
291 "", "webdb_create desc", 5, 0,
292 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
294 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
295 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
296 new GeneratingProducerNode(
297 "/producer/indymedia.nl/features.template",
298 "${config.storageRoot}/try/${language.code}/features.inc"
305 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
307 catch (Throwable t) {
308 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
313 new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
314 "", "id asc", 25, 15, 0,
315 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
317 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
318 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
319 new GeneratingProducerNode(
320 "/producer/indymedia.nl/commentsindex.template",
321 "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
326 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
328 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
329 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
330 new GeneratingProducerNode(
331 "/producer/indymedia.nl/commentsindexnavigation.template",
332 "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
338 batchingNode.addVerb("new", 3);
339 batchingNode.addVerb("all", -1);
341 aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
343 catch (Throwable t) {
344 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());
349 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
350 new GeneratingProducerNode(
351 "/producer/indymedia.nl/static.template",
352 "${config.storageRoot}/${language.code}/static/${content.edittitle}.shtml"
356 enumeratingNode.addVerb( "all", "is_published='1' and to_article_type=${articletype.static} and to_language=${language.id} and edittitle<>'' and not edittitle is null", "" );
357 enumeratingNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type=${articletype.static} and to_language=${language.id} and edittitle<>'' and not edittitle is null", "" );
359 aFactoriesMap.put("staticarticles", new NodedProducerFactory(
360 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
361 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
367 catch (Throwable t) {
368 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());