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(CompositeProducerFactory aContentFactory) {
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.year}/${content.date.month}/${content.id}.inc"
25 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
26 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
27 new GeneratingProducerNode(
28 "/producer/indymedia.nl/article.template",
29 "${config.storageRoot}/${language.code}/${content.date.year}/${content.date.month}/${content.id}.shtml"
39 contentNode.addVerb( "all", "is_published='1'", "" );
40 contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
42 aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
46 aContentFactory.addFactory(
47 new ContentProducerFactory(
48 "producer/content.template",
50 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/content/${contentyear}/${contentmonth}/${contentid}.inc",
51 Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
53 aContentFactory.addFactory(
54 new ContentProducerFactory(
55 "producer/article.template",
57 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/${contentyear}/${contentmonth}/${contentid}.shtml",
58 Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
62 protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
63 ProducerNode startPageNode = null;
67 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
68 "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40,
69 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
71 new CompositeProducerNode( new ProducerNode[] {
72 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
73 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
74 new GeneratingProducerNode(
75 "/producer/indymedia.nl/newswire.template",
76 "${config.storageRoot}/${language.code}/newswire.inc"
80 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
81 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
82 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
83 "", "webdb_create desc", 5,
84 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
85 new AssignmentProducerNode( "staticinclude", "1",
86 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
87 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
88 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
89 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
90 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
91 new GeneratingProducerNode(
92 "/producer/indymedia.nl/start.template",
93 "${config.storageRoot}/index.shtml"
104 catch (Throwable t) {
107 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
109 aStartPageFactory.addFactory(
110 new StartPageProducerFactory(
111 "producer/start.template",
113 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
114 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
117 aStartPageFactory.addFactory(
118 new StartPageProducerFactory(
119 "producer/newswire.template",
121 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
123 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
127 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
128 if(MirGlobal.getConfigBooleanProperty("Rsync")){
129 aSynchronizationFactory.addFactory(
130 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
133 NullProducerFactory nullFactory = new NullProducerFactory();
134 nullFactory.addVerb("run");
135 aSynchronizationFactory.addFactory(nullFactory);
139 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
140 ProducerNode staticNode = null;
144 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
146 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
147 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
148 new CompositeProducerNode( new ProducerNode[] {
149 new GeneratingProducerNode(
150 "/producer/indymedia.nl/nav.template",
151 "${config.storageRoot}/${language.code}/nav.inc"
153 new GeneratingProducerNode(
154 "/producer/indymedia.nl/top.template",
155 "${config.storageRoot}/${language.code}/top.inc"
157 new GeneratingProducerNode(
158 "/producer/indymedia.nl/bottom.template",
159 "${config.storageRoot}/${language.code}/bottom.inc"
161 new GeneratingProducerNode(
162 "/producer/indymedia.nl/style.template",
163 "${config.storageRoot}/${language.code}/style.css"
165 new GeneratingProducerNode(
166 "/producer/indymedia.nl/top.template",
167 "${config.storageRoot}/${language.code}/top.inc"
169 new GeneratingProducerNode(
170 "/producer/indymedia.nl/articlepre.template",
171 "${config.storageRoot}/${language.code}/articlepre.shtml"
173 new GeneratingProducerNode(
174 "/producer/indymedia.nl/articlepost.template",
175 "${config.storageRoot}/${language.code}/articlepost.shtml"
177 new AssignmentProducerNode( "staticinclude", "0",
178 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
179 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
180 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
181 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
182 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
183 new GeneratingProducerNode(
184 "/producer/indymedia.nl/start.template",
185 "${config.storageRoot}/${language.code}/start.shtml"
189 new AssignmentProducerNode( "staticinclude", "0",
190 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
191 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
192 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
193 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
194 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
195 new GeneratingProducerNode(
196 "/producer/indymedia.nl/start.template",
197 "${config.storageRoot}/try/${language.code}/start.shtml"
206 catch (Throwable t) {
209 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
212 protected void setupFactories(Map aFactoriesMap ) {
213 super.setupFactories(aFactoriesMap);
215 ProducerNode node = null;
219 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
220 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
221 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
222 "", "webdb_create desc", 5,
223 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
225 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
226 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
227 new GeneratingProducerNode(
228 "/producer/indymedia.nl/features.template",
229 "${config.storageRoot}/${language.code}/features.inc"
237 catch (Throwable t) {
240 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
244 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
245 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
246 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
247 "", "webdb_create desc", 5,
248 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
250 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
251 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
252 new GeneratingProducerNode(
253 "/producer/indymedia.nl/features.template",
254 "${config.storageRoot}/try/${language.code}/features.inc"
262 catch (Throwable t) {
264 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
267 aStartPageFactory.addFactory(
268 new StartPageProducerFactory(
269 "producer/start.template",
271 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
272 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
275 aStartPageFactory.addFactory(
276 new StartPageProducerFactory(
277 "producer/newswire.template",
279 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
281 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));