+package mirlocal.euskalherria.indymedia.org;
+
+import java.util.*;
+import mir.producer.*;
+import mircoders.global.*;
+import mircoders.localizer.*;
+import mircoders.localizer.basic.*;
+import mircoders.producer.*;
+import mircoders.storage.*;
+import mircoders.entity.adapter.*;
+
+public class EHProducerLocalizer extends MirBasicProducerLocalizer {
+
+ protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
+ EntityEnumeratingProducerNode contentNode = null;
+
+ try {
+ contentNode =
+ new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+ new CompositeProducerNode( new ProducerNode[] {
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new CompositeProducerNode( new ProducerNode[] {
+ new GeneratingProducerNode(
+ "/producer/euskalherria.indymedia.org/article.template",
+ "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
+ ),
+ new FileDateSettingProducerNode(
+ "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
+ "content.date.date"
+ )
+ } )
+ )
+ )
+ } )
+ );
+ }
+ catch (Throwable t) {
+ }
+
+ contentNode.addVerb( "all", "is_published='1'", "" );
+ contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
+
+ aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
+
+ }
+
+ protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
+ ProducerNode startPageNode = null;
+
+ try {
+ startPageNode =
+ new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+ "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40,
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+ "is_published='1' and to_article_type = 4", "date desc, webdb_create desc", 1,
+ new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+ "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
+ new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
+ "", "webdb_create desc", 5,
+ new GeneratingProducerNode(
+ "/producer/euskalherria.indymedia.org/startpage.template",
+ "${config.storageRoot}/${language.code}/index.shtml"
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ );
+ }
+ catch (Throwable t) {
+ }
+
+ aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
+ }
+
+ protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
+ if(MirGlobal.getConfigBooleanProperty("Rsync")){
+ aSynchronizationFactory.addFactory(
+ new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
+ }
+ else {
+ NullProducerFactory nullFactory = new NullProducerFactory();
+ nullFactory.addVerb("run");
+ aSynchronizationFactory.addFactory(nullFactory);
+ }
+ }
+
+ protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
+ ProducerNode staticNode = null;
+
+ try {
+ staticNode =
+ new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+ "", "code", 10,
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/euskalherria.indymedia.org/navigation.template",
+ "${config.storageRoot}/${language.code}/navigation.inc"
+ )
+ )
+ )
+ );
+ }
+ catch (Throwable t) {
+ }
+
+ aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
+ }
+
+ protected void setupFactories(Map aFactoriesMap ) {
+ super.setupFactories(aFactoriesMap);
+ }
+}