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 EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
81 new AssignmentProducerNode( "staticinclude", "1",
82 new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
83 new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
84 new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
85 new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
86 new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
87 new GeneratingProducerNode(
88 "/producer/indymedia.nl/start.template",
89 "${config.storageRoot}/index.shtml"
101 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
103 aStartPageFactory.addFactory(
104 new StartPageProducerFactory(
105 "producer/start.template",
107 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
108 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
111 aStartPageFactory.addFactory(
112 new StartPageProducerFactory(
113 "producer/newswire.template",
115 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
117 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
121 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
122 if(MirGlobal.getConfigBooleanProperty("Rsync")){
123 aSynchronizationFactory.addFactory(
124 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
127 NullProducerFactory nullFactory = new NullProducerFactory();
128 nullFactory.addVerb("run");
129 aSynchronizationFactory.addFactory(nullFactory);
133 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
134 ProducerNode staticNode = null;
138 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
140 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
141 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
142 new CompositeProducerNode( new ProducerNode[] {
143 new GeneratingProducerNode(
144 "/producer/indymedia.nl/nav.template",
145 "${config.storageRoot}/${language.code}/nav.inc"
147 new GeneratingProducerNode(
148 "/producer/indymedia.nl/top.template",
149 "${config.storageRoot}/${language.code}/top.inc"
151 new GeneratingProducerNode(
152 "/producer/indymedia.nl/bottom.template",
153 "${config.storageRoot}/${language.code}/bottom.inc"
155 new GeneratingProducerNode(
156 "/producer/indymedia.nl/style.template",
157 "${config.storageRoot}/${language.code}/style.css"
159 new GeneratingProducerNode(
160 "/producer/indymedia.nl/top.template",
161 "${config.storageRoot}/${language.code}/top.inc"
163 new GeneratingProducerNode(
164 "/producer/indymedia.nl/articlepre.template",
165 "${config.storageRoot}/${language.code}/articlepre.shtml"
167 new GeneratingProducerNode(
168 "/producer/indymedia.nl/articlepost.template",
169 "${config.storageRoot}/${language.code}/articlepost.shtml"
171 new AssignmentProducerNode( "staticinclude", "0",
172 new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
173 new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
174 new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
175 new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
176 new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
177 new GeneratingProducerNode(
178 "/producer/indymedia.nl/start.template",
179 "${config.storageRoot}/${language.code}/start.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}/try/features.inc",
189 new GeneratingProducerNode(
190 "/producer/indymedia.nl/start.template",
191 "${config.storageRoot}/try/${language.code}/start.shtml"
200 catch (Throwable t) {
203 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
206 protected void setupFactories(Map aFactoriesMap ) {
207 super.setupFactories(aFactoriesMap);
209 ProducerNode node = null;
213 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
214 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
215 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
216 "", "webdb_create desc", 5,
217 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
219 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
220 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
221 new GeneratingProducerNode(
222 "/producer/indymedia.nl/features.template",
223 "${config.storageRoot}/${language.code}/features.inc"
231 catch (Throwable t) {
234 aFactoriesMap.put("features", new NodedProducerFactory( node ) );
238 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
239 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
240 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
241 "", "webdb_create desc", 5,
242 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
244 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
245 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
246 new GeneratingProducerNode(
247 "/producer/indymedia.nl/features.template",
248 "${config.storageRoot}/${language.code}/try/features.inc"
256 catch (Throwable t) {
258 aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
261 aStartPageFactory.addFactory(
262 new StartPageProducerFactory(
263 "producer/start.template",
265 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
266 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
269 aStartPageFactory.addFactory(
270 new StartPageProducerFactory(
271 "producer/newswire.template",
273 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
275 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));