*** empty log message ***
[mir.git] / source / mircoders / entity / EntityContent.java
index d2bae16..39dfc58 100755 (executable)
@@ -173,6 +173,24 @@ public class EntityContent extends Entity
           throw new TemplateModelException(ex.toString());
         }
       }
+      else if (key.equals("to_media_icon")) {
+        try {
+          return getUploadedMediaForNewswire();
+        }
+        catch (Exception ex) {
+          theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString());
+          throw new TemplateModelException(ex.toString());
+        }
+      }
+      else if (key.equals("to_media_list")) {
+        try {
+          return getUploadedMediaForList();
+        }
+        catch (Exception ex) {
+          theLog.printWarning("-- getUploadedMediaForList: could not fetch data " + ex.toString());
+          throw new TemplateModelException(ex.toString());
+        }
+      }
       else if (key.equals("to_topics")) {
         try {
           HTMLTemplateProcessor.makeSimpleList(DatabaseContentToTopics.getInstance().getTopics(this));
@@ -247,8 +265,139 @@ public class EntityContent extends Entity
                return ((DatabaseContent)theStorageObject).getComments(this);
        }
 
-  private SimpleList getUploadedMediaForList() throws StorageObjectException
-  { return null; }
+  private SimpleHash getUploadedMediaForNewswire()
+    throws StorageObjectException, TemplateModelException
+  {
+    // fetching/setting the images
+    // return to_media_icons
+    String        tinyIcon = null, iconAlt = null, mediaHandlerName = null;
+    MirMedia      mediaHandler = null;
+    EntityMedia   uploadedMedia;
+    Entity        mediaType;
+    Class         mediaHandlerClass;
+    SimpleHash    returnHash = new SimpleHash();
+
+    EntityList upMediaEntityList = DatabaseContentToMedia.getInstance().getUploadedMedia(this);
+    if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) {
+
+      for (int n=0; n < upMediaEntityList.size();n++) {
+        uploadedMedia = (EntityMedia)upMediaEntityList.elementAt(n);
+        mediaType = uploadedMedia.getMediaType();
+
+        //must of had a non-existant to_media_type entry..
+        //let's save our ass.
+        if (mediaType != null) {
+            mediaHandlerName = mediaType.getValue("classname");
+            try {
+              mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
+              mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
+            }
+            catch (Exception ex) {
+              throw new TemplateModelException(ex.toString());
+            }
+
+            //the "best" media type to show
+            if (mediaHandler.isVideo()) {
+              tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
+              iconAlt = "Video";
+              break;
+            } else if (mediaHandler.isAudio()) {
+              tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio");
+              iconAlt = "Audio";
+            } else if (tinyIcon == null && !mediaHandler.isImage()) {
+              tinyIcon = mediaHandler.getTinyIcon();
+              iconAlt = mediaHandler.getIconAlt();
+            }
+        }
+      }
+      //it only has image(s)
+      if (tinyIcon == null) {
+        tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage");
+        iconAlt = "Image";
+      }
+
+    // uploadedMedia Entity list is empty.
+    // we only have text
+    } else {
+      tinyIcon = MirConfig.getProp("Producer.Icon.TinyText");
+      iconAlt = "Text";
+    }
+
+    returnHash.put("tiny_icon", mirconf_imageRoot+"/"+tinyIcon);
+    returnHash.put("icon_alt", iconAlt);
+    return returnHash;
+  }
+
+  private SimpleHash getUploadedMediaForList()
+    throws StorageObjectException, TemplateModelException
+  {
+    SimpleHash returnHash = new SimpleHash();
+    //media to content
+    EntityList currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(this);
+    if (currentMediaList!=null && currentMediaList.getCount()>=1) {
+      SimpleList          mediaListAudio = new SimpleList();
+      SimpleList          mediaListImages = new SimpleList();
+      SimpleList          mediaListVideo = new SimpleList();
+      SimpleList          mediaListOther = new SimpleList();
+      Entity              upMedia;
+      Entity              mediaType;
+      SimpleHash          upMediaSimpleHash;
+      Class               mediaHandlerClass=null,mediaStorageClass;
+      MirMedia            mediaHandler=null;
+      String              mediaHandlerName=null,mediaStorageName;
+      Database            mediaStorage=null;
+
+      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) {
+          mediaHandlerName = mediaType.getValue("classname");
+          mediaStorageName = mediaType.getValue("tablename");
+          try {
+            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);
+          }
+          catch (Exception ex) {
+            throw new TemplateModelException(ex.toString());
+          }
+
+          //we most likely need further info
+          upMedia = mediaStorage.selectById(upMedia.getId());
+          try {
+            String url = mediaHandler.getListView(upMedia, mediaType);
+            upMediaSimpleHash.put("url", url);
+            theLog.printDebugInfo("url is "+  url);
+          }
+          catch (Exception ex) {
+            throw new TemplateModelException(ex.toString());
+          }
+
+          // putting media in the apropriate list container
+          if (upMedia.getValue("is_published").equals("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
+      returnHash.put("media_audio", mediaListAudio);
+      returnHash.put("media_images", mediaListImages);
+      returnHash.put("media_video", mediaListVideo);
+      returnHash.put("media_other", mediaListOther);
+    } //end if currentMediaList != null
+    return returnHash;
+ }
 
   private SimpleList getUploadedMediaForContent()
     throws StorageObjectException, TemplateModelException