throw new TemplateModelException(ex.toString());
}
}
+ else if (key.equals("to_media_icon")) {
+ try {
+ return getUploadedMediaForContent();
+ }
+ catch (Exception ex) {
+ theLog.printWarning("-- getUploadedMediaForContent: could not fetch data " + ex.toString());
+ throw new TemplateModelException(ex.toString());
+ }
+ }
+ else if (key.equals("to_media_list")) {
+ try {
+ return getUploadedMediaForContent();
+ }
+ catch (Exception ex) {
+ theLog.printWarning("-- getUploadedMediaForContent: 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();
+ EntityMedia 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 = (EntityMedia)currentMediaList.elementAt(n);
+ upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
+ mediaType = 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 = (EntityMedia)mediaStorage.selectById(upMedia.getId());
+ try {
+ upMediaSimpleHash.put("url", mediaHandler.getListView(upMedia, mediaType));
+ }
+ 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("to_media_audio", mediaListAudio);
+ returnHash.put("to_media_images", mediaListImages);
+ returnHash.put("to_media_video", mediaListVideo);
+ returnHash.put("to_media_other", mediaListOther);
+ } //end if currentMediaList != null
+ return returnHash;
+ }
private SimpleList getUploadedMediaForContent()
throws StorageObjectException, TemplateModelException
package mircoders.producer;
import java.io.*;
-import java.lang.*;
-import java.lang.reflect.*;
import java.util.*;
import freemarker.template.*;
+import mir.entity.*;
import mir.misc.*;
-import mir.media.*;
-import mir.storage.*;
import mir.module.*;
-import mir.entity.*;
-
+import mir.storage.*;
import mircoders.module.*;
import mircoders.storage.*;
import mircoders.entity.*;
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 {
throws StorageObjectException, ModuleException
{
printHTML(htmlout, "Producer.StartPage: started");
-
- String extLinkName = MirConfig.getProp("Producer.ExtLinkName");
- String intLinkName = MirConfig.getProp("Producer.IntLinkName");
- String mailLinkName = MirConfig.getProp("Producer.MailLinkName");
- String imageRoot = MirConfig.getProp("Producer.ImageRoot");
-
long sessionConnectTime = 0;
long startTime = (new java.util.Date()).getTime();
String nowWebdbDate = StringUtil.date2webdbDate(new GregorianCalendar());
- String whereClause;
- String orderBy;
- FileWriter outputFile;
- String htmlFileName;
- EntityContent currentContent;
EntityList entityList;
- SimpleHash startPageModel;
- SimpleList contentList;
- 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;
- Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home") + "/" +MirConfig.getProp("Producer.Logfile"));
-
- SimpleList mediaList;
- SimpleHash contentHash;
// get the newswire
- /** @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);
+ entityList = contentModule.getNewsWire(0,newsPerPage);
SimpleList newsWireList = HTMLTemplateProcessor.makeSimpleList(entityList);
- for (int i=0; i < entityList.size();i++) {
- currentContent = (EntityContent)entityList.elementAt(i);
- 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";
- }
-
- //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
- if (entityList==null || entityList.size()==0){
- whereClause="is_published=true AND to_article_type=3";
- entityList = contentModule.getContent(whereClause,"date desc, webdb_create desc",0,1);
- }
+ // get the startarticle
+ entityList = contentModule.getStartArticle();
SimpleList startItemList = HTMLTemplateProcessor.makeSimpleList(entityList);
- for (int k=0; k < entityList.size();k++) {
- currentContent = (EntityContent)entityList.elementAt(k);
- 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());
- 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
-
- } 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 startitems");
-
-
-
- // 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);
+ // get the features
+ entityList = contentModule.getFeatures(0,itemsPerPage);
SimpleList featureList = HTMLTemplateProcessor.makeSimpleList(entityList);
- for (int k=0; k < entityList.size();k++) {
- currentContent = (EntityContent)entityList.elementAt(k);
- 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());
- 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
- } 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 */
-
- // Additional Information
- startPageModel = new SimpleHash();
+ SimpleHash startPageModel = new SimpleHash();
// breaking news
ModuleBreaking breakingModule = new ModuleBreaking(DatabaseBreaking.getInstance());
startPageModel.put("startspecial", startItemList);
startPageModel.put("features", featureList);
- htmlFileName = producerDocRoot + "/index.shtml";
-
- produce(startPageTemplate, htmlFileName, startPageModel, htmlout);
+ produce(startPageTemplate, producerDocRoot + "/index.shtml", startPageModel, htmlout);
// Finish
sessionConnectTime = new java.util.Date().getTime() - startTime;
- logHTML(htmlout, "Producer.Startseite finished: " + sessionConnectTime + " ms.");
+ logHTML(htmlout, "Producer.Startpage finished: " + sessionConnectTime + " ms.");
if(sync==true){
Helper.rsync();
- logHTML(htmlout, "Producer.Startseite: rsync done");
+ logHTML(htmlout, "Producer.Startpage: rsync done");
}
}
}