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));
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