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", "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("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
68 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
69 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
70 "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 10,
71 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
72 "", "webdb_create desc", 5,
73 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
75 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
76 new ResourceBundleProducerNode("lang", "producer_${language.code}",
77 new CompositeProducerNode( new ProducerNode[] {
78 new GeneratingProducerNode(
79 "/producer/indymedia.nl/start.template",
80 "${config.storageRoot}/${language.code}/start.shtml"
82 new GeneratingProducerNode(
83 "/producer/indymedia.nl/newswire.template",
84 "${config.storageRoot}/${language.code}/newswire.inc"
97 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
99 aStartPageFactory.addFactory(
100 new StartPageProducerFactory(
101 "producer/start.template",
103 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
104 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
107 aStartPageFactory.addFactory(
108 new StartPageProducerFactory(
109 "producer/newswire.template",
111 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
113 MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
117 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
118 if(MirGlobal.getConfigBooleanProperty("Rsync")){
119 aSynchronizationFactory.addFactory(
120 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
123 NullProducerFactory nullFactory = new NullProducerFactory();
124 nullFactory.addVerb("run");
125 aSynchronizationFactory.addFactory(nullFactory);
129 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
130 ProducerNode staticNode = null;
134 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
136 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
137 new ResourceBundleProducerNode("lang", "producer_${language.code}",
138 new CompositeProducerNode( new ProducerNode[] {
139 new GeneratingProducerNode(
140 "/producer/indymedia.nl/nav.template",
141 "${config.storageRoot}/${language.code}/nav.inc"
143 new GeneratingProducerNode(
144 "/producer/indymedia.nl/top.template",
145 "${config.storageRoot}/${language.code}/top.inc"
147 new GeneratingProducerNode(
148 "/producer/indymedia.nl/bottom.template",
149 "${config.storageRoot}/${language.code}/bottom.inc"
151 new GeneratingProducerNode(
152 "/producer/indymedia.nl/style.template",
153 "${config.storageRoot}/${language.code}/style.css"
155 new GeneratingProducerNode(
156 "/producer/indymedia.nl/top.template",
157 "${config.storageRoot}/${language.code}/top.inc"
159 new GeneratingProducerNode(
160 "/producer/indymedia.nl/articlepre.template",
161 "${config.storageRoot}/${language.code}/articlepre.inc"
163 new GeneratingProducerNode(
164 "/producer/indymedia.nl/articlepost.template",
165 "${config.storageRoot}/${language.code}/articlepost.inc"
172 catch (Throwable t) {
175 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
179 aStaticFactory.addFactory(
180 new StaticProducerFactory(
181 "producer/nav.template",
183 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/nav.inc"));
185 aStaticFactory.addFactory(
186 new StaticProducerFactory(
187 "producer/top.template",
189 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/top.inc"));
191 aStaticFactory.addFactory(
192 new StaticProducerFactory(
193 "producer/bottom.template",
195 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/bottom.inc"));
197 aStaticFactory.addFactory(
198 new StaticProducerFactory(
199 "producer/style.template",
201 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/style.css"));
203 aStaticFactory.addFactory(
204 new StaticProducerFactory(
205 "producer/articlepre.template",
207 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/articlepre.shtml"));
209 aStaticFactory.addFactory(
210 new StaticProducerFactory(
211 "producer/articlepost.template",
213 MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/articlepost.shtml"));