X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fentity%2FEntityContent.java;h=39dfc580b314e128977d5e225618dc8f2bf67297;hb=fa58a8a8c88c4c23cc537258818abbd8569c093b;hp=d2bae16c0508723857e85474b9936e02fd2a8881;hpb=b404c313e48004f5580bcf0a0a16927febc9e6c4;p=mir.git diff --git a/source/mircoders/entity/EntityContent.java b/source/mircoders/entity/EntityContent.java index d2bae16c..39dfc580 100755 --- a/source/mircoders/entity/EntityContent.java +++ b/source/mircoders/entity/EntityContent.java @@ -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