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",
43 logger.printError("IndyNLProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
46 contentNode.addVerb( "all", "is_published='1'", "" );
47 contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
49 aProducerNode.addSubNode( contentNode );
52 protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
54 aProducerNode.addSubNode(
55 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
56 "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40, 0,
57 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
59 new CompositeProducerNode( new ProducerNode[] {
60 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
61 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
62 new GeneratingProducerNode(
63 "/producer/indymedia.nl/newswire.template",
64 "${config.storageRoot}/${language.code}/newswire.inc"
68 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
69 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
70 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
71 "", "webdb_create desc", 5, 0,
72 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
73 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
74 new AssignmentProducerNode( "staticinclude", "1",
75 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
76 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
77 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
78 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
79 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
80 new GeneratingProducerNode(
81 "/producer/indymedia.nl/start.template",
82 "${config.storageRoot}/index.shtml"
96 logger.printError("IndyNLProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
100 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
101 EntityBatchingProducerNode topicPageNode = null;
105 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
106 "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", 6, 5, 0,
107 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
109 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
110 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
111 new GeneratingProducerNode(
112 "/producer/indymedia.nl/topic.template",
113 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
118 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
120 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
121 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
122 new GeneratingProducerNode(
123 "/producer/indymedia.nl/topicnavigation.template",
124 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
130 topicPageNode.addVerb("all", -1);
131 topicPageNode.addVerb("new", 3);
133 aProducerNode.addSubNode(
134 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
135 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
136 "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,
142 catch (Throwable t) {
143 logger.printError("IndyNLProducerLocalizer.setupTopicsFactory Exception "+t.getMessage());
148 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
150 aProducerNode.addSubNode(
151 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
153 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
154 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
155 new CompositeProducerNode( new ProducerNode[] {
156 new GeneratingProducerNode(
157 "/producer/indymedia.nl/nav.template",
158 "${config.storageRoot}/${language.code}/nav.inc"
160 new GeneratingProducerNode(
161 "/producer/indymedia.nl/top.template",
162 "${config.storageRoot}/${language.code}/top.inc"
164 new GeneratingProducerNode(
165 "/producer/indymedia.nl/bottom.template",
166 "${config.storageRoot}/${language.code}/bottom.inc"
168 new GeneratingProducerNode(
169 "/producer/indymedia.nl/style.template",
170 "${config.storageRoot}/${language.code}/style.css"
172 new GeneratingProducerNode(
173 "/producer/indymedia.nl/top.template",
174 "${config.storageRoot}/${language.code}/top.inc"
176 new GeneratingProducerNode(
177 "/producer/indymedia.nl/articlepre.template",
178 "${config.storageRoot}/${language.code}/articlepre.shtml"
180 new GeneratingProducerNode(
181 "/producer/indymedia.nl/articlepost.template",
182 "${config.storageRoot}/${language.code}/articlepost.shtml"
184 new AssignmentProducerNode( "staticinclude", "0",
185 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
186 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
187 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
188 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
189 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
190 new GeneratingProducerNode(
191 "/producer/indymedia.nl/start.template",
192 "${config.storageRoot}/${language.code}/start.shtml"
196 new AssignmentProducerNode( "staticinclude", "0",
197 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
198 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
199 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
200 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
201 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
202 new GeneratingProducerNode(
203 "/producer/indymedia.nl/start.template",
204 "${config.storageRoot}/try/${language.code}/start.shtml"
214 catch (Throwable t) {
215 logger.printError("IndyNLProducerLocalizer.setupStaticFactory Exception "+t.getMessage());
219 protected void setupFactories(Map aFactoriesMap ) {
220 super.setupFactories(aFactoriesMap);
222 ProducerNode node = null;
223 EntityBatchingProducerNode batchingNode = null;
227 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
228 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
229 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
230 "", "webdb_create desc", 5, 0,
231 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
233 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
234 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
235 new GeneratingProducerNode(
236 "/producer/indymedia.nl/features.template",
237 "${config.storageRoot}/${language.code}/features.inc"
245 catch (Throwable t) {
246 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
249 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
253 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
254 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
255 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
256 "", "webdb_create desc", 5, 0,
257 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
259 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
260 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
261 new GeneratingProducerNode(
262 "/producer/indymedia.nl/features.template",
263 "${config.storageRoot}/try/${language.code}/features.inc"
271 catch (Throwable t) {
272 logger.printError("IndyNLProducerLocalizer.setupFactories Exception "+t.getMessage());
275 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
278 new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
279 "", "id asc", 25, 15, 0,
280 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
282 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
283 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
284 new GeneratingProducerNode(
285 "/producer/indymedia.nl/commentsindex.template",
286 "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
291 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
293 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
294 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
295 new GeneratingProducerNode(
296 "/producer/indymedia.nl/commentsindexnavigation.template",
297 "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
303 batchingNode.addVerb("new", 3);
304 batchingNode.addVerb("all", -1);
306 aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
308 catch (Throwable t) {
309 logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());