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.*;
11 public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer {
13 protected void setupContentFactory(CompositeProducerNode aProducerNode) {
14 EntityEnumeratingProducerNode contentNode = null;
18 new EntityEnumeratingProducerNode( "content", model, "content",
19 new CompositeProducerNode( new ProducerNode[] {
20 new GeneratingProducerNode(
21 "/producer/indymedia.nl/content.template",
22 "${config.storageRoot}/content/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.inc"
24 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
25 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
26 new CompositeProducerNode( new ProducerNode[] {
27 new GeneratingProducerNode(
28 "/producer/indymedia.nl/article.template",
29 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
31 new FileDateSettingProducerNode(
32 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
41 contentNode.addVerb( "all", "is_published='1' and to_article_type<>${articletype.trashed} and to_article_type<>${articletype.static}", "" );
42 contentNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type<>${articletype.trashed} and to_article_type<>${articletype.static}", "" );
44 aProducerNode.addSubNode( contentNode );
48 new EntityEnumeratingProducerNode( "content", model, "content",
49 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
50 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
51 new CompositeProducerNode( new ProducerNode[] {
52 new GeneratingProducerNode(
53 "/producer/indymedia.nl/trashed.template",
54 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
56 new FileDateSettingProducerNode(
57 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
64 contentNode.addVerb( "all", "is_published='1' and to_article_type=${articletype.trashed}", "" );
65 contentNode.addVerb( "new", "is_published='1' and is_produced='f' and to_article_type=${articletype.trashed}", "" );
67 aProducerNode.addSubNode( contentNode );
70 logger.printError("IndyNLProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
75 protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
77 aProducerNode.addSubNode(
78 new EntityListProducerNode("newswire", model, "content",
79 "is_published='1' and to_article_type in (${articletype.newswire}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 40, 0,
80 new EntityListProducerNode("languages", model, "language",
82 new CompositeProducerNode( new ProducerNode[] {
83 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
84 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
85 new GeneratingProducerNode(
86 "/producer/indymedia.nl/newswire.template",
87 "${config.storageRoot}/${language.code}/newswire.inc"
91 new EntityListProducerNode("startspecials", model, "content",
92 "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0,
93 new EntityListProducerNode("features", model, "content",
94 "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0,
95 new EntityListProducerNode("breaking", model, "breakingNews",
96 "", "webdb_create desc", 5, 0,
97 new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "",
98 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
99 new AssignmentProducerNode( "staticinclude", "1",
100 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
101 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
102 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
103 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
104 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
105 new GeneratingProducerNode(
106 "/producer/indymedia.nl/start.template",
107 "${config.storageRoot}/index.shtml"
121 catch (Throwable t) {
122 logger.printError("IndyNLProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
126 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
127 EntityBatchingProducerNode topicPageNode = null;
131 new EntityBatchingProducerNode( "articles", "batch", model, "content",
132 "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,
133 new EntityListProducerNode("languages", model, "language",
135 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
136 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
137 new GeneratingProducerNode(
138 "/producer/indymedia.nl/topic.template",
139 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
144 new EntityListProducerNode("languages", model, "language",
146 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
147 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
148 new GeneratingProducerNode(
149 "/producer/indymedia.nl/topicnavigation.template",
150 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
156 topicPageNode.addVerb("all", -1);
157 topicPageNode.addVerb("new", 3);
159 aProducerNode.addSubNode(
160 new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
161 new EntityListProducerNode("topicspecial", model, "content",
162 "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,
168 catch (Throwable t) {
169 logger.printError("IndyNLProducerLocalizer.setupTopicsFactory Exception "+t.getMessage());
174 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
176 aProducerNode.addSubNode(
177 new EntityListProducerNode("languages", model, "language",
179 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
180 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
181 new CompositeProducerNode( new ProducerNode[] {
182 new GeneratingProducerNode(
183 "/producer/indymedia.nl/nav.template",
184 "${config.storageRoot}/${language.code}/nav.inc"
186 new GeneratingProducerNode(
187 "/producer/indymedia.nl/top.template",
188 "${config.storageRoot}/${language.code}/top.inc"
190 new GeneratingProducerNode(
191 "/producer/indymedia.nl/bottom.template",
192 "${config.storageRoot}/${language.code}/bottom.inc"
194 new GeneratingProducerNode(
195 "/producer/indymedia.nl/style.template",
196 "${config.storageRoot}/${language.code}/style.css"
198 new GeneratingProducerNode(
199 "/producer/indymedia.nl/style2.template",
200 "${config.storageRoot}/${language.code}/style2.css"
202 new GeneratingProducerNode(
203 "/producer/indymedia.nl/top.template",
204 "${config.storageRoot}/${language.code}/top.inc"
206 new GeneratingProducerNode(
207 "/producer/indymedia.nl/articlepre.template",
208 "${config.storageRoot}/${language.code}/articlepre.shtml"
210 new GeneratingProducerNode(
211 "/producer/indymedia.nl/articlepost.template",
212 "${config.storageRoot}/${language.code}/articlepost.shtml"
214 new AssignmentProducerNode( "staticinclude", "0",
215 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
216 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
217 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
218 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
219 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
220 new GeneratingProducerNode(
221 "/producer/indymedia.nl/start.template",
222 "${config.storageRoot}/${language.code}/start.shtml"
226 new AssignmentProducerNode( "staticinclude", "0",
227 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
228 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
229 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
230 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
231 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
232 new GeneratingProducerNode(
233 "/producer/indymedia.nl/start.template",
234 "${config.storageRoot}/try/${language.code}/start.shtml"
244 catch (Throwable t) {
245 logger.printError("IndyNLProducerLocalizer.setupStaticFactory Exception "+t.getMessage());
249 protected void setupFactories(Map aFactoriesMap ) {
250 super.setupFactories(aFactoriesMap);
252 ProducerNode node = null;
253 EntityBatchingProducerNode batchingNode = null;
254 EntityEnumeratingProducerNode enumeratingNode = null;
258 new EntityListProducerNode("startspecials", model, "content",
259 "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 10, 0,
260 new EntityListProducerNode("features", model, "content",
261 "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 20, 0,
262 new EntityListProducerNode("breaking", model, "breakingNews",
263 "", "webdb_create desc", 5, 0,
264 new EntityListProducerNode("languages", model, "language",
266 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
267 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
268 new GeneratingProducerNode(
269 "/producer/indymedia.nl/features.template",
270 "${config.storageRoot}/${language.code}/features.inc"
278 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
280 catch (Throwable t) {
281 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
287 new EntityListProducerNode("features", model, "content",
288 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
289 new EntityListProducerNode("breaking", model, "breakingNews",
290 "", "webdb_create desc", 5, 0,
291 new EntityListProducerNode("languages", model, "language",
293 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
294 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
295 new GeneratingProducerNode(
296 "/producer/indymedia.nl/features.template",
297 "${config.storageRoot}/try/${language.code}/features.inc"
304 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
306 catch (Throwable t) {
307 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
312 new EntityBatchingProducerNode( "comments", "batch", model, "comments",
314 "", "id asc", 25, 15, 0,
315 new EntityListProducerNode("languages", model, "language",
317 new EntityEnumeratingProducerNode( "language", model, "language", "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", model, "language",
328 new EntityEnumeratingProducerNode( "language", model, "language", "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", model, "content",
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", model, "language", "", "",
361 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
367 catch (Throwable t) {
368 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());