added ecuador's localizers
[mir.git] / source / mirlocal / ecuador.indymedia.org / EcuadorProducerLocalizer.java
1 package mirlocal.ecuador.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 EcuadorProducerLocalizer extends MirBasicProducerLocalizer {
12
13   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
14     EntityEnumeratingProducerNode contentNode = null;
15     aProducerNode.clear();
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", model, "content",
20             new CompositeProducerNode( new ProducerNode[] {
21               new EntityEnumeratingProducerNode( "language", model, "language", "", "",
22                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
23                     new CompositeProducerNode( new ProducerNode[] {
24                       new GeneratingProducerNode(
25                           "/producer/ecuador.indymedia.org/article.template",
26                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
27                       ),
28                       new ContentMarkingProducerNode( "content" )
29                     } )
30                 )
31               ),
32               new ContentMarkingProducerNode( "content")
33             } )
34           );
35     }
36     catch (Throwable t) {
37       logger.printError("EcuadorProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
38     }
39
40     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
41     contentNode.addVerb( "all", "is_published='1'", "" );
42
43     aProducerNode.addSubNode( contentNode );
44   }
45
46   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
47     aProducerNode.clear();
48     try {
49       aProducerNode.addSubNode(
50             new EntityListProducerNode("newswire", model, "content",
51                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
52               new EntityListProducerNode("languages", model, "language",
53                             "", "code", 10, 0,
54                 new EntityListProducerNode("startspecial", model, "content",
55                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
56                   new EntityListProducerNode("features", model, "content",
57                           "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
58                     new EntityListProducerNode("breaking", model, "breakingNews",
59                               "", "webdb_create desc", 5, 0,
60                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
61                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
62                           new GeneratingProducerNode(
63                               "/producer/ecuador.indymedia.org/startpage.template",
64                               "${config.storageRoot}/${language.code}/index.shtml"
65                           )
66                         )
67                       )
68                     )
69                   )
70                 )
71               )
72             )
73       );
74     }
75     catch (Throwable t) {
76       logger.printError("EcuadorProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
77     }
78   }
79
80   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
81     aProducerNode.clear();
82
83     try {
84       aProducerNode.addSubNode(
85           new EntityListProducerNode("languages", model, "language",
86                   "", "code", 10, 0,
87             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
88               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
89                 new GeneratingProducerNode(
90                     "/producer/ecuador.indymedia.org/navigation.template",
91                     "${config.storageRoot}/${language.code}/navigation.inc"
92                 )
93               )
94             )
95           )
96       );
97     }
98     catch (Throwable t) {
99       logger.printError("EcuadorProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
100     }
101   }
102
103   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
104     aProducerNode.clear();
105
106     EntityBatchingProducerNode topicArchiveNode = null;
107
108     try {
109 // topic pages:
110       topicArchiveNode =
111         new EntityBatchingProducerNode( "articles", "batch", model, "content",
112               "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,
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                     "/producer/ecuador.indymedia.org/topic.template",
119                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
120                 )
121               )
122             )
123           ),
124           new EntityListProducerNode("languages", model, "language",
125                   "", "code", 10, 0,
126             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
127               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
128                 new GeneratingProducerNode(
129                     "/producer/ecuador.indymedia.org/topicnavigation.template",
130                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
131                 )
132               )
133             )
134           )
135         );
136       topicArchiveNode.addVerb("new", 3);
137       topicArchiveNode.addVerb("all", -1);
138
139       aProducerNode.addSubNode(
140           new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
141             new EntityListProducerNode("topicspecial", model, "content",
142                   "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,
143               topicArchiveNode
144             )
145           )
146       );
147
148     }
149     catch (Throwable t) {
150       logger.printError("EcuadorProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
151     }
152   }
153
154   protected void setupFactories(Map aFactoriesMap ) {
155     EntityBatchingProducerNode archiveNode = null;
156
157     try {
158       super.setupFactories(aFactoriesMap);
159
160 // newswire archive:
161       archiveNode =
162         new EntityBatchingProducerNode( "articles", "batch", model, "content",
163               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
164           new EntityListProducerNode("languages", model, "language",
165                   "", "code", 10, 0,
166             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
167               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
168                 new GeneratingProducerNode(
169                     "/producer/ecuador.indymedia.org/newswire.template",
170                     "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
171                 )
172               )
173             )
174           ),
175           new EntityListProducerNode("languages", model, "language",
176                   "", "code", 10, 0,
177             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
178               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
179                 new GeneratingProducerNode(
180                     "/producer/ecuador.indymedia.org/newswirenavigation.template",
181                     "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
182                 )
183               )
184             )
185           )
186         );
187       archiveNode.addVerb("new", 3);
188       archiveNode.addVerb("all", -1);
189
190       aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
191
192 // feature archive:
193       archiveNode =
194         new EntityBatchingProducerNode( "articles", "batch", model, "content",
195               "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
196           new EntityListProducerNode("languages", model, "language",
197                   "", "code", 10, 0,
198             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
199               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
200                 new GeneratingProducerNode(
201                     "/producer/ecuador.indymedia.org/feature.template",
202                     "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
203                 )
204               )
205             )
206           ),
207           new EntityListProducerNode("languages", model, "language",
208                   "", "code", 10, 0,
209             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
210               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
211                 new GeneratingProducerNode(
212                     "/producer/ecuador.indymedia.org/featurenavigation.template",
213                     "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
214                 )
215               )
216             )
217           )
218         );
219       archiveNode.addVerb("new", 3);
220       archiveNode.addVerb("all", -1);
221
222       aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
223
224     }
225     catch (Throwable t) {
226       logger.printError("EcuadorProducerLocalizer.setupFactories: Exception "+t.getMessage());
227     }
228   }
229 }