X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fproducer%2FProducerStartPage.java;h=3ea6e418090df3cdf9c98145be04c8162cd432dc;hb=bc21f0a64104912239bed0fbdfe5cf7a5296241c;hp=d5aae4140e9339641e027160d21a3c3b905b5237;hpb=cb0f6400ac10a4328272a61a0733d5a4123359c2;p=mir.git diff --git a/source/mircoders/producer/ProducerStartPage.java b/source/mircoders/producer/ProducerStartPage.java index d5aae414..3ea6e418 100755 --- a/source/mircoders/producer/ProducerStartPage.java +++ b/source/mircoders/producer/ProducerStartPage.java @@ -70,102 +70,92 @@ public class ProducerStartPage extends Producer { EntityList imageEntityList; EntityList currentMediaList; Entity mediaType; - EntityUploadedMedia uploadedMedia; + EntityMedia uploadedMedia; 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")); + Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home") + "/" +MirConfig.getProp("Producer.Logfile")); SimpleList mediaList; SimpleHash contentHash; - // get the topiclist - entityList = topicsModule.getByWhereClause("","title",-1); - SimpleList topicList = HTMLTemplateProcessor.makeSimpleList(entityList); - // get the imclinks + /** @todo don't we want to preproduce and include the imcs? */ entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1); SimpleList imcList = HTMLTemplateProcessor.makeSimpleList(entityList); - EntityList theParentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1); SimpleList parentList = HTMLTemplateProcessor.makeSimpleList(theParentList); // get the newswire - whereClause="is_published=true AND to_article_type >= 1"; + /** @todo same with newswire, should be fetched via moduleContent.getNewswire() */ + whereClause="is_published=true AND to_article_type = 1"; entityList = contentModule.getContent(whereClause,"date desc, webdb_create desc",0,newsPerPage); SimpleList newsWireList = HTMLTemplateProcessor.makeSimpleList(entityList); for (int i=0; i < entityList.size();i++) { currentContent = (EntityContent)entityList.elementAt(i); - //fetching/setting the images - upMediaEntityList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent); - if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) { - tinyIcon = null; - iconAlt = null; - mediaHandler = null; - mediaHandlerName = null; - for (int n=0; n < upMediaEntityList.size();n++) { - uploadedMedia = (EntityUploadedMedia)upMediaEntityList.elementAt(n); - mediaType = uploadedMedia.getMediaType(); - - //must of had a non-existant to_media_type entry.. - //let's save our ass. - if (mediaType != null) { - /* - * grrr. why doesn't getId return an int! if It - * did I could just compare the value of getId and - * pick the biggest one. or is there - * another way around this that I am missing? - * can we make getIdasInt() or can we just have - * another getId() that returns an Int and the VM - * will handle it transparantly? -mh - */ - try { - mediaHandlerName = mediaType.getValue("classname"); - mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName); - mediaHandler = (MirMedia)mediaHandlerClass.newInstance(); - } catch (Exception e) { - theLog.printError("ProducerStartpage:problem in reflection: "+mediaHandlerName); - } - - //the best media type - 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(); + try { + /** @todo all this should be done inside EntityContent and on demand */ + //fetching/setting the images + upMediaEntityList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent); + if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) { + tinyIcon = null; + iconAlt = null; + mediaHandler = null; + mediaHandlerName = null; + 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"); + mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName); + mediaHandler = (MirMedia)mediaHandlerClass.newInstance(); + + //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"; } - } - //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"; - } - try{ - //mediaList = HTMLTemplateProcessor.makeSimpleList(upMediaEntityList); - contentHash = (SimpleHash)newsWireList.get(i); - contentHash.put("tiny_icon", imageRoot+"/"+tinyIcon); - contentHash.put("icon_alt", iconAlt); - } catch (Exception e){} + //mediaList = HTMLTemplateProcessor.makeSimpleList(upMediaEntityList); + contentHash = (SimpleHash)newsWireList.get(i); + contentHash.put("tiny_icon", imageRoot+"/"+tinyIcon); + contentHash.put("icon_alt", iconAlt); + } catch (Exception e) { + logHTML(htmlout, "Producer.StartPage error id: " + currentContent.getId() + ", skipping"); + theLog.printError("Producer.StartPage error id: " + currentContent.getId() + ", skipping"+e.toString()); + } } + theLog.printDebugInfo("############### got newswire"); // get the startarticle and the related images + /** @todo this should move to moduleContent.getStartArticle */ whereClause="is_published=true AND to_article_type=4"; entityList = contentModule.getContent(whereClause,"date desc, webdb_create desc",0,1); //if no startspecial exists @@ -176,74 +166,65 @@ public class ProducerStartPage extends Producer { SimpleList startItemList = HTMLTemplateProcessor.makeSimpleList(entityList); 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"))) { + try { + //media to content + currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent); + contentHash = (SimpleHash)startItemList.get(k); + /** @todo this should move to Entity */ + 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()); - } - } 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 + 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 + contentHash.put("to_media_audio", mediaListAudio); + contentHash.put("to_media_images", mediaListImages); + contentHash.put("to_media_video", mediaListVideo); + contentHash.put("to_media_other", mediaListOther); + } //end if currentMediaList != null + //convert to html + if ( ((SimpleScalar)contentHash.get("is_html")).getAsString().equals("0") ) { + SimpleScalar tempScalar = (SimpleScalar)contentHash.get("description"); + String temp = StringUtil.createHTML(tempScalar.getAsString(),imageRoot,mailLinkName,extLinkName,intLinkName); + temp = StringUtil.decodeHTMLinTags(temp); + contentHash.put("description",temp); + } + + } catch (Exception e) { + logHTML(htmlout, "Producer.StartPage error id: " + currentContent.getId() + ", skipping"); + theLog.printError("Producer.StartPage error id: " + currentContent.getId() + ", skipping"+e.toString()); + } } //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); - if (imageEntityList!=null && imageEntityList.getCount()>=1) { - try{ - mediaList = HTMLTemplateProcessor.makeSimpleList(imageEntityList); - contentHash = (SimpleHash)startItemList.get(i); - contentHash.put("to_media", mediaList); - } catch (Exception e){} - } - }*/ + theLog.printDebugInfo("############### got startitems"); // get the breaking news // only the first 5 @@ -251,87 +232,85 @@ public class ProducerStartPage extends Producer { ModuleBreaking breakingModule = new ModuleBreaking(DatabaseBreaking.getInstance()); entityList = breakingModule.getByWhereClause(null,"webdb_create desc",0,5); SimpleList breakingList = HTMLTemplateProcessor.makeSimpleList(entityList); + theLog.printDebugInfo("############### got breaking"); // get the articles + /** @todo moduleContent.getArticles() */ whereClause="is_published=true AND to_article_type=2"; orderBy="date desc, webdb_create desc"; entityList = contentModule.getContent(whereClause, orderBy, 0, itemsPerPage); SimpleList featureList = HTMLTemplateProcessor.makeSimpleList(entityList); 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"))) { + try { + //media to content + currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent); + theLog.printDebugInfo("############### getting contenthash"); + contentHash = (SimpleHash)featureList.get(k); + theLog.printDebugInfo("############### building media lists"); + 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()); - } - } 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 + 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 + contentHash.put("to_media_audio", mediaListAudio); + contentHash.put("to_media_images", mediaListImages); + contentHash.put("to_media_video", mediaListVideo); + contentHash.put("to_media_other", mediaListOther); + } //end if currentMediaList != null + + //convert to html + theLog.printDebugInfo("############### html conversion"); + if ( ((SimpleScalar)contentHash.get("is_html")).getAsString().equals("0") ) { + SimpleScalar tempScalar = (SimpleScalar)contentHash.get("description"); + String temp = StringUtil.createHTML(tempScalar.getAsString(),imageRoot,mailLinkName,extLinkName,intLinkName); + temp = StringUtil.decodeHTMLinTags(temp); + contentHash.put("description",temp); + } + } catch (Exception e) { + logHTML(htmlout, "Producer.StartPage error id: " + currentContent.getId() + ", skipping"); + theLog.printError("Producer.StartPage error id: " + currentContent.getId() + ", skipping"+e.toString()); + } } //enf for featurueList.size.. + theLog.printDebugInfo("############### got featurelist"); + /** @todo the following should be the only thing left done here. a lot of redundancies are gone then, + * code is more readable, and caching stuff, mass changes, etc. can be done in one spot */ - - /*for (int i=0; i < entityList.size();i++) { - currentContent = (EntityContent)entityList.elementAt(i); - //fetching/setting the images - imageEntityList = DatabaseContentToMedia.getInstance().getImages(currentContent); - if (imageEntityList!=null && imageEntityList.getCount()>=1) { - try{ - mediaList = HTMLTemplateProcessor.makeSimpleList(imageEntityList); - contentHash = (SimpleHash)featureList.get(i); - contentHash.put("to_media", mediaList); - } catch (Exception e){} - } - }*/ - - // Zusaetzlich Informationen + // Additional Information startPageModel = new SimpleHash(); startPageModel.put("breakingnews", breakingList); - startPageModel.put("topics", topicList); + startPageModel.put("topics", topicsModule.getTopicsList()); startPageModel.put("imclist", imcList); startPageModel.put("parentlist", parentList); startPageModel.put("newswire", newsWireList);