X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fproducer%2FProducerTopics.java;h=7fb06c0ba538b268fe7a0ae41d546ab117c25268;hb=bc21f0a64104912239bed0fbdfe5cf7a5296241c;hp=75356d46afbdbec6d790ee6d12c4128fbacc87c3;hpb=86b6f499b413c722acc895346ac5186405b0c44c;p=mir.git diff --git a/source/mircoders/producer/ProducerTopics.java b/source/mircoders/producer/ProducerTopics.java index 75356d46..7fb06c0b 100755 --- a/source/mircoders/producer/ProducerTopics.java +++ b/source/mircoders/producer/ProducerTopics.java @@ -2,12 +2,14 @@ package mircoders.producer; import java.io.*; import java.lang.*; +import java.lang.reflect.*; import java.util.*; import java.sql.*; import freemarker.template.*; import mir.misc.*; +import mir.media.*; import mir.storage.*; import mir.module.*; import mir.entity.*; @@ -19,11 +21,23 @@ import mircoders.storage.*; public class ProducerTopics extends ProducerList { - public String where; - - public void setAdditional(String key, TemplateModel value) { - additional.put(key,value); - } + public String where; + String currentMediaId; + EntityList upMediaEntityList; + EntityList imageEntityList; + EntityList currentMediaList; + Entity mediaType; + EntityMedia uploadedMedia; + Class mediaHandlerClass=null; + MirMedia mediaHandler=null; + String mediaHandlerName=null; + Database mediaStorage=null; + String tinyIcon; + String iconAlt; + + public void setAdditional(String key, TemplateModel value) { + additional.put(key,value); + } public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync, String id) throws StorageObjectException, ModuleException { @@ -31,11 +45,11 @@ public class ProducerTopics extends ProducerList { handle(htmlout,user,force,sync); } - public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync) - throws StorageObjectException, ModuleException { + public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync) + throws StorageObjectException, ModuleException { - orderBy="date desc, webdb_create desc"; - listTemplate = MirConfig.getProp("Producer.TopicList.Template"); + orderBy="date desc, webdb_create desc"; + listTemplate = MirConfig.getProp("Producer.TopicList.Template"); EntityList topicsEntityList; if(where==null){ @@ -43,12 +57,12 @@ public class ProducerTopics extends ProducerList { } else { topicsEntityList = topicsModule.getByWhereClause(where,"title", -1); } - SimpleList topicsList = HTMLTemplateProcessor.makeSimpleList(topicsEntityList); + SimpleList topicsList = HTMLTemplateProcessor.makeSimpleList(topicsEntityList); - for(int i=0; i < topicsEntityList.size(); i++){ + for(int i=0; i < topicsEntityList.size(); i++){ - EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i); - EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic); + EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i); + EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic); String whereClauseSpecial=null; if (contentEntityList!=null || force==true) { @@ -82,21 +96,65 @@ public class ProducerTopics extends ProducerList { // get the startarticle EntityList entityList = contentModule.getContent(whereClauseSpecial,"date desc, webdb_create desc",0,1); - SimpleList specialList = HTMLTemplateProcessor.makeSimpleList(entityList); String currentMediaId = null; SimpleHash imageHash = new SimpleHash(); EntityContent currentContent; - if(entityList != null){ - for (int k=0; k < entityList.size();k++) { - currentContent = (EntityContent)entityList.elementAt(k); - currentMediaId = currentContent.getValue("to_media"); - if (currentMediaId!=null && !currentMediaId.equals("")) { - imageHash.put(currentMediaId, HTMLTemplateProcessor.makeSimpleHash(imageModule.getById(currentMediaId))); - } + if(entityList != null && entityList.size()==1){ + currentContent = (EntityContent)entityList.elementAt(0); + try { + SimpleHash specialHash = HTMLTemplateProcessor.makeSimpleHash(currentContent); + + 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(); + 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"); + 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); + //we most likely need further info + upMedia = mediaStorage.selectById(upMedia.getId()); + upMediaSimpleHash.put("url", mediaHandler.getListView(upMedia, mediaType)); + 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 + specialHash.put("to_media_audio", mediaListAudio); + specialHash.put("to_media_images", mediaListImages); + specialHash.put("to_media_video", mediaListVideo); + specialHash.put("to_media_other", mediaListOther); + } //end if currentMediaList != null + //convert to html + if ( ((SimpleScalar)specialHash.get("is_html")).getAsString().equals("0") ) { + SimpleScalar temp = (SimpleScalar)specialHash.get("description"); + specialHash.put("description",StringUtil.createHTML(temp.getAsString())); + } + setAdditional("special",specialHash); + } catch (Exception e) { + theLog.printError("ProducerTopics: problem with start special: "+currentContent.getId()+" "+e.toString()); + logHTML(htmlout,"ProducerTopics: problem with start special: "+currentContent.getId()+" "+e.toString()); } - setAdditional("specialimage",imageHash); } - setAdditional("special",specialList); //set the list of topics setAdditional("topicslist",topicsList); @@ -104,13 +162,13 @@ public class ProducerTopics extends ProducerList { handleIt(htmlout,user,force); } } - } - - public static void main(String argv[]){ - try { - new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false); - } catch(Exception e) { - System.err.println(e.toString()); - } - } -} \ No newline at end of file + } + + public static void main(String argv[]){ + try { + new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false); + } catch(Exception e) { + System.err.println(e.toString()); + } + } +}