ProducerStartpage is now converted to use the new media handling.
authormh <mh>
Sat, 6 Oct 2001 17:32:10 +0000 (17:32 +0000)
committermh <mh>
Sat, 6 Oct 2001 17:32:10 +0000 (17:32 +0000)
I need to put that in a helper class actually

source/mircoders/producer/ProducerStartPage.java
templates-dist/producer/startpage.template

index ea3e937..534c514 100755 (executable)
@@ -2,6 +2,7 @@ package mircoders.producer;
 
 import java.io.*;
 import java.lang.*;
+import java.lang.reflect.*;
 import java.util.*;
 
 import freemarker.template.*;
@@ -22,6 +23,14 @@ public class ProducerStartPage extends Producer {
   private static String startPageTemplate = MirConfig.getProp("Producer.StartPage.Template");
   private static int itemsPerPage = Integer.parseInt(MirConfig.getProp("Producer.StartPage.Items"));
   private static int newsPerPage = Integer.parseInt(MirConfig.getProp("Producer.StartPage.Newswire"));
+  Entity              mediaType;
+  Entity              upMedia;
+  SimpleHash          upMediaSimpleHash;
+  Class               mediaHandlerClass;
+  Class               mediaStorageClass;
+  String              mediaStorageName;
+
+
 
   public static void main(String argv[]){
     try {
@@ -59,11 +68,13 @@ public class ProducerStartPage extends Producer {
     String              currentMediaId;
     EntityList          upMediaEntityList;
     EntityList          imageEntityList;
+    EntityList          currentMediaList;
     Entity              mediaType;
     EntityUploadedMedia uploadedMedia;
-    Class               mediaHandlerClass;
-    MirMedia            mediaHandler;
-    String              mediaHandlerName;
+    Class               mediaHandlerClass=null;
+    MirMedia            mediaHandler=null;
+    String              mediaHandlerName=null;
+    Database            mediaStorage=null;
     String              tinyIcon;
     String              iconAlt;
     Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Producer.Logfile"));
@@ -156,7 +167,65 @@ public class ProducerStartPage extends Producer {
       entityList = contentModule.getContent(whereClause,"date desc, webdb_create desc",0,1);
     }
     SimpleList startItemList = HTMLTemplateProcessor.makeSimpleList(entityList);
-    for (int i=0; i < entityList.size();i++) {
+    for (int k=0; k < entityList.size();k++) {
+      currentContent = (EntityContent)entityList.elementAt(k);
+      //images to content
+      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();
+        //SimpleHash allMediaSimpleHash = new SimpleHash();
+        for (int n=0; n < currentMediaList.size();n++) {
+          upMedia = currentMediaList.elementAt(n);
+          upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
+          mediaType = ((EntityUploadedMedia)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();
+              if(!mediaStorageName.equals(new String("UploadedMedia"))) {
+                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{
+          //SimpleList contentList = (SimpleList)mergeData.get("contentlist");
+          contentHash = (SimpleHash)startItemList.get(k);
+          contentHash.put("to_media_audio", mediaListAudio);
+          contentHash.put("to_media_images", mediaListImages);
+          contentHash.put("to_media_video", mediaListVideo);
+          contentHash.put("to_media_other", mediaListOther);
+        } catch (Exception e){}
+      } //end if currentMediaList != null
+    } //enf for featurueList.size..
+
+
+    
+    /*for (int i=0; i < entityList.size();i++) {
       currentContent = (EntityContent)entityList.elementAt(i);
       //fetching/setting the images
       imageEntityList = DatabaseContentToMedia.getInstance().getImages(currentContent);
@@ -167,7 +236,7 @@ public class ProducerStartPage extends Producer {
           contentHash.put("to_media", mediaList);
         } catch (Exception e){}
       }
-    }
+    }*/
 
     // get the breaking news
     // only the first 5
@@ -181,7 +250,65 @@ public class ProducerStartPage extends Producer {
     orderBy="date desc, webdb_create desc";
     entityList = contentModule.getContent(whereClause, orderBy, 0, itemsPerPage);
     SimpleList featureList = HTMLTemplateProcessor.makeSimpleList(entityList);
-    for (int i=0; i < entityList.size();i++) {
+    for (int k=0; k < entityList.size();k++) {
+      currentContent = (EntityContent)entityList.elementAt(k);
+      //images to content
+      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();
+        //SimpleHash allMediaSimpleHash = new SimpleHash();
+        for (int n=0; n < currentMediaList.size();n++) {
+          upMedia = currentMediaList.elementAt(n);
+          upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
+          mediaType = ((EntityUploadedMedia)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();
+              if(!mediaStorageName.equals(new String("UploadedMedia"))) {
+                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{
+          //SimpleList contentList = (SimpleList)mergeData.get("contentlist");
+          contentHash = (SimpleHash)featureList.get(k);
+          contentHash.put("to_media_audio", mediaListAudio);
+          contentHash.put("to_media_images", mediaListImages);
+          contentHash.put("to_media_video", mediaListVideo);
+          contentHash.put("to_media_other", mediaListOther);
+        } catch (Exception e){}
+      } //end if currentMediaList != null
+    } //enf for featurueList.size..
+
+
+
+    /*for (int i=0; i < entityList.size();i++) {
       currentContent = (EntityContent)entityList.elementAt(i);
       //fetching/setting the images
       imageEntityList = DatabaseContentToMedia.getInstance().getImages(currentContent);
@@ -192,7 +319,7 @@ public class ProducerStartPage extends Producer {
           contentHash.put("to_media", mediaList);
         } catch (Exception e){}
       }
-    }
+    }*/
 
     // Zusaetzlich Informationen
     startPageModel = new SimpleHash();
index ca7fc58..3a44bb0 100755 (executable)
                       <td> 
                         <h3>${s.title}</h3>
                         <h4><i>${s.creator}, ${s.webdb_create_formatted}</i></h4>
-                        <p> <if s.to_media && s.to_media[0]["is_published"]=="1"> 
-                          <img src="${s.to_media[0]["icon_path"]}" width="${s.to_media[0]["icon_width"]}" height="${s.to_media[0]["icon_height"]}" alt="${s.to_media[0]["title"]}" align="left" vspace="8" hspace="8"> 
-                          </if> 
+                        <p>                     
+                        <if s.to_media_audio && s.to_media_audio[0]["is_published"]=="1"> 
+                          ${s.to_media_audio[0]["url"]}
+                        </if> 
+                        <if s.to_media_video && s.to_media_video[0]["is_published"]=="1"> 
+                          ${s.to_media_video[0]["url"]}
+                        </if> 
+                        <if s.to_media_other && s.to_media_other[0]["is_published"]=="1"> 
+                          ${s.to_media_other[0]["url"]}
+                        </if> 
+                        <p>
+                        <if s.to_media_images && s.to_media_images[0]["is_published"]=="1"> 
+                          ${s.to_media_images[0]["url"]}
+                        </if> 
                        ${s.description} </p>
                         <p align="right">[<a href="${config.docroot}${s.publish_path}${s.id}.shtml">read</a>]</p>
                       </td>
                       <td> 
                         <h3>${i.title}</h3>
                         <h4><i>${i.creator}, ${i.webdb_create_formatted}</i></h4>
-                        <p> <if i.to_media && i.to_media[0]["is_published"]=="1"> 
-                          <img src="${i.to_media[0]["icon_path"]}" width="${i.to_media[0]["icon_width"]}" height="${i.to_media[0]["icon_height"]}" alt="${i.to_media[0]["title"]}" align="left" vspace="8" hspace="8"> 
-                          </if> ${i.description} </p>
+                        <p>                     
+                        <if i.to_media_audio && i.to_media_audio[0]["is_published"]=="1"> 
+                          ${i.to_media_audio[0]["url"]}
+                        </if> 
+                        <if i.to_media_video && i.to_media_video[0]["is_published"]=="1"> 
+                          ${i.to_media_video[0]["url"]}
+                        </if> 
+                        <if i.to_media_other && i.to_media_other[0]["is_published"]=="1"> 
+                          ${i.to_media_other[0]["url"]}
+                        </if> 
+                        <p>
+                        <if i.to_media_images && i.to_media_images[0]["is_published"]=="1"> 
+                          ${i.to_media_images[0]["url"]}
+                        </if> 
+                          ${i.description} </p>
                         <p align="right">[<a href="${config.docroot}${i.publish_path}${i.id}.shtml">read</a>]</p>
                       </td>
                     </tr>