first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / mircoders / producer / ProducerTopics.java
index 5597442..f26ab69 100755 (executable)
@@ -2,29 +2,38 @@ package mircoders.producer;
 
 import java.io.*;
 import java.lang.*;
+import java.lang.reflect.*;
 import java.util.*;
 import java.sql.*;
 
 import freemarker.template.*;
 
-import webdb.misc.*;
-import webdb.storage.*;
-import webdb.module.*;
-import webdb.entity.*;
-
+import mir.misc.*;
+import mir.media.*;
+import mir.storage.*;
 import mir.module.*;
 import mir.entity.*;
-import mir.storage.*;
 
+import mircoders.entity.*;
+import mircoders.storage.*;
 
 
-public class ProducerTopics extends ProducerList {
 
-       public String where;
+public class ProducerTopics extends ProducerList {
 
-       public void setAdditional(String key, TemplateModel value) {
-               additional.put(key,value);
-       }
+  public String where;
+  String              currentMediaId;
+  EntityList          upMediaEntityList;
+  EntityList          imageEntityList;
+  EntityList          currentMediaList;
+  Entity              mediaType;
+  EntityMedia         uploadedMedia;
+  Class               mediaHandlerClass=null;
+  MirMedia            mediaHandler=null;
+  String              mediaHandlerName=null;
+  Database            mediaStorage=null;
+  String              tinyIcon;
+  String              iconAlt;
 
   public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync, String id)
     throws StorageObjectException, ModuleException {
@@ -32,24 +41,30 @@ public class ProducerTopics extends ProducerList {
     handle(htmlout,user,force,sync);
   }
 
-       public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
-               throws StorageObjectException, ModuleException {
+  public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
+    throws StorageObjectException, ModuleException
+  {
+    long startTime = System.currentTimeMillis();
+    int pageCount =0;
+    logHTML(htmlout, "Producer.Topics: started");
 
-               orderBy="date desc, webdb_create desc";
-               listTemplate = Configuration.getProperty("Producer.TopicList.Template");
+    /** @todo should be done in static */
+    listTemplate = MirConfig.getProp("Producer.TopicList.Template");
 
+    orderBy="date desc, webdb_create desc";
     EntityList topicsEntityList;
     if(where==null){
       topicsEntityList = topicsModule.getByWhereClause("","title", -1);
     } else {
       topicsEntityList = topicsModule.getByWhereClause(where,"title", -1);
     }
-               SimpleList topicsList = HTMLTemplateProcessor.makeSimpleList(topicsEntityList);
 
-               for(int i=0; i < topicsEntityList.size(); i++){
+    for(int i=0; i < topicsEntityList.size(); i++){
+
+      EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i);
 
-                       EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i);
-                       EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic);
+      try {
+      EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic);
       String whereClauseSpecial=null;
 
       if (contentEntityList!=null || force==true) {
@@ -66,7 +81,7 @@ public class ProducerTopics extends ProducerList {
             whereClause += currentContent.getId();
             whereClauseSpecial += currentContent.getId();
 
-            setAdditional("topic",HTMLTemplateProcessor.makeSimpleHash(currentTopic));
+            setAdditional("topic",currentTopic);
 
             first = false;
           }
@@ -83,35 +98,40 @@ public class ProducerTopics extends ProducerList {
 
         // get the startarticle
         EntityList entityList = contentModule.getContent(whereClauseSpecial,"date desc, webdb_create desc",0,1);
-        SimpleList specialList = HTMLTemplateProcessor.makeSimpleList(entityList);
         String currentMediaId = null;
         SimpleHash imageHash = new SimpleHash();
         EntityContent currentContent;
-        if(entityList != null){
-          for (int k=0; k < entityList.size();k++) {
-            currentContent = (EntityContent)entityList.elementAt(k);
-            currentMediaId = currentContent.getValue("to_media");
-            if (currentMediaId!=null && !currentMediaId.equals("")) {
-              imageHash.put(currentMediaId, HTMLTemplateProcessor.makeSimpleHash(imageModule.getById(currentMediaId)));
-            }
+        if(entityList != null && entityList.size()==1){
+          currentContent = (EntityContent)entityList.elementAt(0);
+          try {
+              setAdditional("special",currentContent);
+          } catch (Exception e) {
+            theLog.printError("ProducerTopics: problem with start special media: "+currentContent.getId()+" "+e.toString()+" <font color=\"red\">skipping</font>");
+            logHTML(htmlout,"ProducerTopics: problem with start special media: "+currentContent.getId()+" "+e.toString());
           }
-          setAdditional("specialimage",imageHash);
         }
-        setAdditional("special",specialList);
 
         //set the list of topics
-        setAdditional("topicslist",topicsList);
+        setAdditional("topicslist",topicsEntityList);
 
         handleIt(htmlout,user,force);
+        pageCount++;
+      }
+      } catch (Exception e) {
+        theLog.printError("ProducerTopics: problem with start special media: "
+        +e.toString()+" <font color=\"red\">skipping</font>");
+        logHTML(htmlout,"ProducerTopics: problem with topic id: "
+        +currentTopic.getId()+ "<font color=\"red\">skipping</font>");
       }
     }
-       }
-
-       public static void main(String argv[]){
-               try {
-                       new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false);
-               } catch(Exception e) {
-                       System.err.println(e.toString());
-               }
-       }
-}
\ No newline at end of file
+    logHTMLFinish(htmlout, "Topics", pageCount, startTime, System.currentTimeMillis());
+  }
+
+  public static void main(String argv[]){
+    try {
+      new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false);
+    } catch(Exception e) {
+      System.err.println(e.toString());
+    }
+  }
+}