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")));
139 NullProducerFactory nullFactory = new NullProducerFactory();
140 nullFactory.addVerb("run");
141 aSynchronizationFactory.addFactory(nullFactory);
145 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
146 ProducerNode staticNode = null;
150 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
152 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
153 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
154 new CompositeProducerNode( new ProducerNode[] {
155 new GeneratingProducerNode(
156 "/producer/indymedia.nl/nav.template",
157 "${config.storageRoot}/${language.code}/nav.inc"
159 new GeneratingProducerNode(
160 "/producer/indymedia.nl/top.template",
161 "${config.storageRoot}/${language.code}/top.inc"
163 new GeneratingProducerNode(
164 "/producer/indymedia.nl/bottom.template",
165 "${config.storageRoot}/${language.code}/bottom.inc"
167 new GeneratingProducerNode(
168 "/producer/indymedia.nl/style.template",
169 "${config.storageRoot}/${language.code}/style.css"
171 new GeneratingProducerNode(
172 "/producer/indymedia.nl/top.template",
173 "${config.storageRoot}/${language.code}/top.inc"
175 new GeneratingProducerNode(
176 "/producer/indymedia.nl/articlepre.template",
177 "${config.storageRoot}/${language.code}/articlepre.shtml"
179 new GeneratingProducerNode(
180 "/producer/indymedia.nl/articlepost.template",
181 "${config.storageRoot}/${language.code}/articlepost.shtml"
183 new AssignmentProducerNode( "staticinclude", "0",
184 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
185 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
186 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
187 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
188 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
189 new GeneratingProducerNode(
190 "/producer/indymedia.nl/start.template",
191 "${config.storageRoot}/${language.code}/start.shtml"
195 new AssignmentProducerNode( "staticinclude", "0",
196 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
197 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
198 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
199 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
200 new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
201 new GeneratingProducerNode(
202 "/producer/indymedia.nl/start.template",
203 "${config.storageRoot}/try/${language.code}/start.shtml"
212 catch (Throwable t) {
215 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
218 protected void setupFactories(Map aFactoriesMap ) {
219 super.setupFactories(aFactoriesMap);
221 ProducerNode node = null;
225 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
226 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
227 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
228 "", "webdb_create desc", 5, 0,
229 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
231 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
232 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
233 new GeneratingProducerNode(
234 "/producer/indymedia.nl/features.template",
235 "${config.storageRoot}/${language.code}/features.inc"
243 catch (Throwable t) {
246 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
250 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
251 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10, 0,
252 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
253 "", "webdb_create desc", 5, 0,
254 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
256 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
257 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
258 new GeneratingProducerNode(
259 "/producer/indymedia.nl/features.template",
260 "${config.storageRoot}/try/${language.code}/features.inc"
268 catch (Throwable t) {
270 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
273 aStartPageFactory.addFactory(
274 new StartPageProducerFactory(
275 "producer/start.template",
277 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
278 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
281 aStartPageFactory.addFactory(
282 new StartPageProducerFactory(
283 "producer/newswire.template",
285 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
287 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));