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("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
93 "is_published='1' and to_article_type in ( ${articletype.feature}, ${articletype.promotednewswire})", "date desc, webdb_create desc", 10, 0,
94 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
95 "", "webdb_create desc", 5, 0,
96 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
97 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
98 new AssignmentProducerNode( "staticinclude", "1",
99 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
100 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
101 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
102 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
103 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
104 new GeneratingProducerNode(
105 "/producer/indymedia.nl/start.template",
106 "${config.storageRoot}/index.shtml"
119 catch (Throwable t) {
120 logger.printError("IndyNLProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
124 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
125 EntityBatchingProducerNode topicPageNode = null;
129 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
130 "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,
131 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
133 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
134 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
135 new GeneratingProducerNode(
136 "/producer/indymedia.nl/topic.template",
137 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
142 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
144 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
145 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
146 new GeneratingProducerNode(
147 "/producer/indymedia.nl/topicnavigation.template",
148 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
154 topicPageNode.addVerb("all", -1);
155 topicPageNode.addVerb("new", 3);
157 aProducerNode.addSubNode(
158 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
159 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
160 "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,
166 catch (Throwable t) {
167 logger.printError("IndyNLProducerLocalizer.setupTopicsFactory Exception "+t.getMessage());
172 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
174 aProducerNode.addSubNode(
175 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
177 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
178 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
179 new CompositeProducerNode( new ProducerNode[] {
180 new GeneratingProducerNode(
181 "/producer/indymedia.nl/nav.template",
182 "${config.storageRoot}/${language.code}/nav.inc"
184 new GeneratingProducerNode(
185 "/producer/indymedia.nl/top.template",
186 "${config.storageRoot}/${language.code}/top.inc"
188 new GeneratingProducerNode(
189 "/producer/indymedia.nl/bottom.template",
190 "${config.storageRoot}/${language.code}/bottom.inc"
192 new GeneratingProducerNode(
193 "/producer/indymedia.nl/style.template",
194 "${config.storageRoot}/${language.code}/style.css"
196 new GeneratingProducerNode(
197 "/producer/indymedia.nl/style2.template",
198 "${config.storageRoot}/${language.code}/style2.css"
200 new GeneratingProducerNode(
201 "/producer/indymedia.nl/top.template",
202 "${config.storageRoot}/${language.code}/top.inc"
204 new GeneratingProducerNode(
205 "/producer/indymedia.nl/articlepre.template",
206 "${config.storageRoot}/${language.code}/articlepre.shtml"
208 new GeneratingProducerNode(
209 "/producer/indymedia.nl/articlepost.template",
210 "${config.storageRoot}/${language.code}/articlepost.shtml"
212 new AssignmentProducerNode( "staticinclude", "0",
213 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
214 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
215 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
216 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
217 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
218 new GeneratingProducerNode(
219 "/producer/indymedia.nl/start.template",
220 "${config.storageRoot}/${language.code}/start.shtml"
224 new AssignmentProducerNode( "staticinclude", "0",
225 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
226 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
227 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
228 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
229 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
230 new GeneratingProducerNode(
231 "/producer/indymedia.nl/start.template",
232 "${config.storageRoot}/try/${language.code}/start.shtml"
242 catch (Throwable t) {
243 logger.printError("IndyNLProducerLocalizer.setupStaticFactory Exception "+t.getMessage());
247 protected void setupFactories(Map aFactoriesMap ) {
248 super.setupFactories(aFactoriesMap);
250 ProducerNode node = null;
251 EntityBatchingProducerNode batchingNode = null;
252 EntityEnumeratingProducerNode enumeratingNode = null;
256 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
257 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
258 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
259 "", "webdb_create desc", 5, 0,
260 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
262 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
263 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
264 new GeneratingProducerNode(
265 "/producer/indymedia.nl/features.template",
266 "${config.storageRoot}/${language.code}/features.inc"
273 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
275 catch (Throwable t) {
276 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
282 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
283 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
284 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
285 "", "webdb_create desc", 5, 0,
286 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
288 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
289 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
290 new GeneratingProducerNode(
291 "/producer/indymedia.nl/features.template",
292 "${config.storageRoot}/try/${language.code}/features.inc"
299 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
301 catch (Throwable t) {
302 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
307 new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
308 "", "id asc", 25, 15, 0,
309 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
311 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
312 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
313 new GeneratingProducerNode(
314 "/producer/indymedia.nl/commentsindex.template",
315 "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
320 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
322 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
323 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
324 new GeneratingProducerNode(
325 "/producer/indymedia.nl/commentsindexnavigation.template",
326 "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
332 batchingNode.addVerb("new", 3);
333 batchingNode.addVerb("all", -1);
335 aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
337 catch (Throwable t) {
338 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());
343 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
344 new GeneratingProducerNode(
345 "/producer/indymedia.nl/static.template",
346 "${config.storageRoot}/${language.code}/static/${content.edittitle}.shtml"
350 enumeratingNode.addVerb( "all", "is_published='1' and to_article_type=${articletype.static} and to_language=${language.id} and edittitle<>'' and not edittitle is null", "" );
351 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", "" );
353 aFactoriesMap.put("staticarticles", new NodedProducerFactory(
354 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
355 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
361 catch (Throwable t) {
362 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());