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 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",
45 contentNode.addVerb( "all", "is_published='1'", "" );
46 contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
48 aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
52 aContentFactory.addFactory(
53 new ContentProducerFactory(
54 "producer/content.template",
56 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/content/${contentyear}/${contentmonth}/${contentid}.inc",
57 Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
59 aContentFactory.addFactory(
60 new ContentProducerFactory(
61 "producer/article.template",
63 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/${contentyear}/${contentmonth}/${contentid}.shtml",
64 Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
68 protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
69 ProducerNode startPageNode = null;
73 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
74 "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40, 0,
75 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
77 new CompositeProducerNode( new ProducerNode[] {
78 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
79 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
80 new GeneratingProducerNode(
81 "/producer/indymedia.nl/newswire.template",
82 "${config.storageRoot}/${language.code}/newswire.inc"
86 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
87 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
88 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
89 "", "webdb_create desc", 5, 0,
90 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
91 new AssignmentProducerNode( "staticinclude", "1",
92 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
93 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
94 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
95 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
96 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
97 new GeneratingProducerNode(
98 "/producer/indymedia.nl/start.template",
99 "${config.storageRoot}/index.shtml"
110 catch (Throwable t) {
113 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
115 aStartPageFactory.addFactory(
116 new StartPageProducerFactory(
117 "producer/start.template",
119 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
120 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
123 aStartPageFactory.addFactory(
124 new StartPageProducerFactory(
125 "producer/newswire.template",
127 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
129 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
133 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
134 /* if(MirGlobal.getConfigBooleanProperty("Rsync")){
135 aSynchronizationFactory.addFactory(
136 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
140 NullProducerFactory nullFactory = new NullProducerFactory();
141 nullFactory.addVerb("run");
142 aSynchronizationFactory.addFactory(nullFactory);
148 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
149 ProducerNode staticNode = null;
153 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
155 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
156 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
157 new CompositeProducerNode( new ProducerNode[] {
158 new GeneratingProducerNode(
159 "/producer/indymedia.nl/nav.template",
160 "${config.storageRoot}/${language.code}/nav.inc"
162 new GeneratingProducerNode(
163 "/producer/indymedia.nl/top.template",
164 "${config.storageRoot}/${language.code}/top.inc"
166 new GeneratingProducerNode(
167 "/producer/indymedia.nl/bottom.template",
168 "${config.storageRoot}/${language.code}/bottom.inc"
170 new GeneratingProducerNode(
171 "/producer/indymedia.nl/style.template",
172 "${config.storageRoot}/${language.code}/style.css"
174 new GeneratingProducerNode(
175 "/producer/indymedia.nl/top.template",
176 "${config.storageRoot}/${language.code}/top.inc"
178 new GeneratingProducerNode(
179 "/producer/indymedia.nl/articlepre.template",
180 "${config.storageRoot}/${language.code}/articlepre.shtml"
182 new GeneratingProducerNode(
183 "/producer/indymedia.nl/articlepost.template",
184 "${config.storageRoot}/${language.code}/articlepost.shtml"
186 new AssignmentProducerNode( "staticinclude", "0",
187 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
188 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
189 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
190 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
191 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
192 new GeneratingProducerNode(
193 "/producer/indymedia.nl/start.template",
194 "${config.storageRoot}/${language.code}/start.shtml"
198 new AssignmentProducerNode( "staticinclude", "0",
199 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
200 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
201 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
202 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
203 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
204 new GeneratingProducerNode(
205 "/producer/indymedia.nl/start.template",
206 "${config.storageRoot}/try/${language.code}/start.shtml"
215 catch (Throwable t) {
218 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
221 protected void setupFactories(Map aFactoriesMap ) {
222 super.setupFactories(aFactoriesMap);
224 ProducerNode node = null;
228 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
229 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
230 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
231 "", "webdb_create desc", 5, 0,
232 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
234 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
235 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
236 new GeneratingProducerNode(
237 "/producer/indymedia.nl/features.template",
238 "${config.storageRoot}/${language.code}/features.inc"
246 catch (Throwable t) {
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) {
273 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
276 aStartPageFactory.addFactory(
277 new StartPageProducerFactory(
278 "producer/start.template",
280 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
281 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
284 aStartPageFactory.addFactory(
285 new StartPageProducerFactory(
286 "producer/newswire.template",
288 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
290 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));