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 EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
72 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
73 new CompositeProducerNode( new ProducerNode[] {
74 new GeneratingProducerNode(
75 "/producer/indymedia.nl/newswire.template",
76 "${config.storageRoot}/${language.code}/newswire.inc"
78 new AssignmentProducerNode( "staticinclude", "1",
79 new EvaluatedAssignmentProducerNode( "topinclude", "${config.storageRoot}/${language.code}/top.inc",
80 new EvaluatedAssignmentProducerNode( "bottominclude", "${config.storageRoot}/${language.code}/bottom.inc",
81 new EvaluatedAssignmentProducerNode( "navinclude", "${config.storageRoot}/${language.code}/nav.inc",
82 new EvaluatedAssignmentProducerNode( "newswireinclude", "${config.storageRoot}/${language.code}/newswire.inc",
83 new EvaluatedAssignmentProducerNode( "featuresinclude", "${config.storageRoot}/${language.code}/features.inc",
84 new GeneratingProducerNode(
85 "/producer/indymedia.nl/start.template",
86 "${config.storageRoot}/${language.code}/start.shtml"
99 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
101 aStartPageFactory.addFactory(
102 new StartPageProducerFactory(
103 "producer/start.template",
105 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
106 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
109 aStartPageFactory.addFactory(
110 new StartPageProducerFactory(
111 "producer/newswire.template",
113 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
115 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
119 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
120 if(MirGlobal.getConfigBooleanProperty("Rsync")){
121 aSynchronizationFactory.addFactory(
122 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
125 NullProducerFactory nullFactory = new NullProducerFactory();
126 nullFactory.addVerb("run");
127 aSynchronizationFactory.addFactory(nullFactory);
131 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
132 ProducerNode staticNode = null;
136 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
138 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
139 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
140 new CompositeProducerNode( new ProducerNode[] {
141 new GeneratingProducerNode(
142 "/producer/indymedia.nl/nav.template",
143 "${config.storageRoot}/${language.code}/nav.inc"
145 new GeneratingProducerNode(
146 "/producer/indymedia.nl/top.template",
147 "${config.storageRoot}/${language.code}/top.inc"
149 new GeneratingProducerNode(
150 "/producer/indymedia.nl/bottom.template",
151 "${config.storageRoot}/${language.code}/bottom.inc"
153 new GeneratingProducerNode(
154 "/producer/indymedia.nl/style.template",
155 "${config.storageRoot}/${language.code}/style.css"
157 new GeneratingProducerNode(
158 "/producer/indymedia.nl/top.template",
159 "${config.storageRoot}/${language.code}/top.inc"
161 new GeneratingProducerNode(
162 "/producer/indymedia.nl/articlepre.template",
163 "${config.storageRoot}/${language.code}/articlepre.shtml"
165 new GeneratingProducerNode(
166 "/producer/indymedia.nl/articlepost.template",
167 "${config.storageRoot}/${language.code}/articlepost.shtml"
169 new AssignmentProducerNode( "staticinclude", "0",
170 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
171 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
172 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
173 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
174 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
175 new GeneratingProducerNode(
176 "/producer/indymedia.nl/start.template",
177 "${config.storageRoot}/${language.code}/start.shtml"
181 new AssignmentProducerNode( "staticinclude", "0",
182 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
183 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
184 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
185 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
186 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/try/features.inc",
187 new GeneratingProducerNode(
188 "/producer/indymedia.nl/start.template",
189 "${config.storageRoot}/try/${language.code}/start.shtml"
198 catch (Throwable t) {
201 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
204 protected void setupFactories(Map aFactoriesMap ) {
205 super.setupFactories(aFactoriesMap);
207 ProducerNode node = null;
211 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
212 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
213 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
214 "", "webdb_create desc", 5,
215 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
217 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
218 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
219 new GeneratingProducerNode(
220 "/producer/indymedia.nl/features.template",
221 "${config.storageRoot}/${language.code}/features.inc"
229 catch (Throwable t) {
232 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
236 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
237 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
238 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
239 "", "webdb_create desc", 5,
240 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
242 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
243 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
244 new GeneratingProducerNode(
245 "/producer/indymedia.nl/features.template",
246 "${config.storageRoot}/${language.code}/try/features.inc"
254 catch (Throwable t) {
256 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
259 aStartPageFactory.addFactory(
260 new StartPageProducerFactory(
261 "producer/start.template",
263 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
264 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
267 aStartPageFactory.addFactory(
268 new StartPageProducerFactory(
269 "producer/newswire.template",
271 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
273 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));