newswire archive / topic startpages for bolivia
authorzapata <zapata>
Thu, 13 Jun 2002 00:19:22 +0000 (00:19 +0000)
committerzapata <zapata>
Thu, 13 Jun 2002 00:19:22 +0000 (00:19 +0000)
source/mirlocal/bolivia.indymedia.org/BoliviaProducerLocalizer.java

index eceec0d..02cf672 100755 (executable)
@@ -104,11 +104,12 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
     aProducerNode.clear();
 
-    EntityBatchingProducerNode newswireArchiveNode = null;
+    EntityBatchingProducerNode topicArchiveNode = null;
+    ProducerNode topicStartpageNode = null;
 
     try {
 // topic pages:
-      newswireArchiveNode =
+      topicArchiveNode =
         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
               "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 10, 0,
           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
@@ -134,17 +135,44 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
             )
           )
         );
-      newswireArchiveNode.addVerb("new", 3);
-      newswireArchiveNode.addVerb("all", -1);
+      topicArchiveNode.addVerb("new", 3);
+      topicArchiveNode.addVerb("all", -1);
 
       aProducerNode.addSubNode(
           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
             new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
-              newswireArchiveNode
+              topicArchiveNode
             )
           )
       );
+
+      aProducerNode.addSubNode(
+        new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
+          new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+                "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
+            new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+                    "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 40, 0,
+              new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+                      "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 10, 0,
+                  new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+                                "", "code", 10, 0,
+                      new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+                        new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                          new GeneratingProducerNode(
+                              "/producer/bolivia.indymedia.org/topicstartpage.template",
+                              "${config.storageRoot}/${language.code}/${topic.filename}/index.shtml"
+                          )
+                        )
+                      )
+
+                  )
+              )
+            )
+          )
+        )
+      );
+
     }
     catch (Throwable t) {
       logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
@@ -152,13 +180,13 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
   }
 
   protected void setupFactories(Map aFactoriesMap ) {
-    EntityBatchingProducerNode newswireArchiveNode = null;
+    EntityBatchingProducerNode archiveNode = null;
 
     try {
       super.setupFactories(aFactoriesMap);
 
 // newswire archive:
-      newswireArchiveNode =
+      archiveNode =
         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
@@ -184,10 +212,43 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
             )
           )
         );
-      newswireArchiveNode.addVerb("new", 3);
-      newswireArchiveNode.addVerb("all", -1);
+      archiveNode.addVerb("new", 3);
+      archiveNode.addVerb("all", -1);
+
+      aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
+
+// feature archive:
+      archiveNode =
+        new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+              "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
+          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+                  "", "code", 10, 0,
+            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+              new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                new GeneratingProducerNode(
+                    "/producer/bolivia.indymedia.org/feature.template",
+                    "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
+                )
+              )
+            )
+          ),
+          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+                  "", "code", 10, 0,
+            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+              new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                new GeneratingProducerNode(
+                    "/producer/bolivia.indymedia.org/featurenavigation.template",
+                    "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
+                )
+              )
+            )
+          )
+        );
+      archiveNode.addVerb("new", 3);
+      archiveNode.addVerb("all", -1);
+
+      aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
 
-      aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( newswireArchiveNode ) );
     }
     catch (Throwable t) {
       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());