From: mh Date: Sat, 6 Oct 2001 17:32:10 +0000 (+0000) Subject: ProducerStartpage is now converted to use the new media handling. X-Git-Tag: prexmlproducerconfig~363 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=5e1fbf5df802e968e628f37531e258cbd34053a3;p=mir.git ProducerStartpage is now converted to use the new media handling. I need to put that in a helper class actually --- diff --git a/source/mircoders/producer/ProducerStartPage.java b/source/mircoders/producer/ProducerStartPage.java index ea3e9379..534c5144 100755 --- a/source/mircoders/producer/ProducerStartPage.java +++ b/source/mircoders/producer/ProducerStartPage.java @@ -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(); diff --git a/templates-dist/producer/startpage.template b/templates-dist/producer/startpage.template index ca7fc587..3a44bb0b 100755 --- a/templates-dist/producer/startpage.template +++ b/templates-dist/producer/startpage.template @@ -56,9 +56,20 @@

${s.title}

${s.creator}, ${s.webdb_create_formatted}

-

- ${s.to_media[0][ - +

+ + ${s.to_media_audio[0]["url"]} + + + ${s.to_media_video[0]["url"]} + + + ${s.to_media_other[0]["url"]} + +

+ + ${s.to_media_images[0]["url"]} + ${s.description}

[read]

@@ -74,9 +85,21 @@

${i.title}

${i.creator}, ${i.webdb_create_formatted}

-

- ${i.to_media[0][ - ${i.description}

+

+ + ${i.to_media_audio[0]["url"]} + + + ${i.to_media_video[0]["url"]} + + + ${i.to_media_other[0]["url"]} + +

+ + ${i.to_media_images[0]["url"]} + + ${i.description}

[read]