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 e007aad..f26ab69 100755 (executable)
@@ -35,10 +35,6 @@ public class ProducerTopics extends ProducerList {
   String              tinyIcon;
   String              iconAlt;
 
-  public void setAdditional(String key, TemplateModel value) {
-    additional.put(key,value);
-  }
-
   public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync, String id)
     throws StorageObjectException, ModuleException {
     where=id;
@@ -46,22 +42,28 @@ public class ProducerTopics extends ProducerList {
   }
 
   public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
-    throws StorageObjectException, ModuleException {
+    throws StorageObjectException, ModuleException
+  {
+    long startTime = System.currentTimeMillis();
+    int pageCount =0;
+    logHTML(htmlout, "Producer.Topics: started");
 
-    orderBy="date desc, webdb_create desc";
+    /** @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++){
 
       EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i);
+
+      try {
       EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic);
       String whereClauseSpecial=null;
 
@@ -101,63 +103,28 @@ public class ProducerTopics extends ProducerList {
         EntityContent currentContent;
         if(entityList != null && entityList.size()==1){
           currentContent = (EntityContent)entityList.elementAt(0);
-          SimpleHash specialHash = HTMLTemplateProcessor.makeSimpleHash(currentContent);
-
-          currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent);
-          if (currentMediaList!=null && currentMediaList.getCount()>=1) {
-            SimpleList mediaListAudio = new SimpleList();
-            SimpleList mediaListImages = new SimpleList();
-            SimpleList mediaListVideo = new SimpleList();
-            SimpleList mediaListOther = new SimpleList();
-            for (int n=0; n < currentMediaList.size();n++) {
-              upMedia = currentMediaList.elementAt(n);
-              upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
-              mediaType = ((EntityMedia)upMedia).getMediaType();
-              //must be a non-existant to_media_type entry..
-              if (mediaType != null) {
-                try {
-                  mediaHandlerName = mediaType.getValue("classname");
-                  mediaStorageName = mediaType.getValue("tablename");
-                  mediaStorageClass = Class.forName("mircoders.storage.Database"+mediaStorageName);
-                  mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
-                  mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
-                  Method m = mediaStorageClass.getMethod("getInstance", null);
-                  mediaStorage = (Database)m.invoke(null, null);
-                  //we most likely need further info
-                  upMedia = mediaStorage.selectById(upMedia.getId());
-                } catch (Exception e) {
-                  theLog.printError("ProducerList: problem in reflection: "+mediaHandlerName);
-                } //end catch
-                upMediaSimpleHash.put("url", mediaHandler.getListView(upMedia, mediaType));
-                if (upMedia.getValue("is_published") == "1") {
-                  if (mediaHandler.isImage()) {
-                    mediaListImages.add(upMediaSimpleHash);
-                  } else if (mediaHandler.isAudio()) {
-                    mediaListAudio.add(upMediaSimpleHash);
-                  } else if (mediaHandler.isVideo()) {
-                    mediaListVideo.add(upMediaSimpleHash);
-                  } else {
-                    mediaListOther.add(upMediaSimpleHash);
-                  }
-                } //end if is_published
-              } //end if media_type != null
-            } //end for
-            try{
-              specialHash.put("to_media_audio", mediaListAudio);
-              specialHash.put("to_media_images", mediaListImages);
-              specialHash.put("to_media_video", mediaListVideo);
-              specialHash.put("to_media_other", mediaListOther);
-            } catch (Exception e){}
-          } //end if currentMediaList != null
-          setAdditional("special",specialHash);
+          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());
+          }
         }
 
         //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>");
       }
     }
+    logHTMLFinish(htmlout, "Topics", pageCount, startTime, System.currentTimeMillis());
   }
 
   public static void main(String argv[]){