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 topiclist
- entityList = topicsModule.getByWhereClause("","title",-1);
- SimpleList topicList = HTMLTemplateProcessor.makeSimpleList(entityList);
-
- // get the imclinks
- 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";
- 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);
- //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) {
- /*
- * 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();
- }
- }
- }
- //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){}
- }
-
- // get the startarticle and the related images
- 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);
- //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 = ((EntityMedia)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();
- 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);
- if (imageEntityList!=null && imageEntityList.getCount()>=1) {
- try{
- mediaList = HTMLTemplateProcessor.makeSimpleList(imageEntityList);
- contentHash = (SimpleHash)startItemList.get(i);
- contentHash.put("to_media", mediaList);
- } catch (Exception e){}
- }
- }*/
-
- // get the breaking news
- // only the first 5
- // todo: the number of breaking_news items have to be configurable
- ModuleBreaking breakingModule = new ModuleBreaking(DatabaseBreaking.getInstance());
- entityList = breakingModule.getByWhereClause(null,"webdb_create desc",0,5);
- SimpleList breakingList = HTMLTemplateProcessor.makeSimpleList(entityList);
-
- // get the articles
- 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);
- //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 = ((EntityMedia)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();
- 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..
+ SimpleHash startPageModel = new SimpleHash();
+ // breaking news
+ ModuleBreaking breakingModule = new ModuleBreaking(DatabaseBreaking.getInstance());
+ startPageModel.put("breakingnews", breakingModule.getBreakingNews());
- /*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
- startPageModel = new SimpleHash();
- startPageModel.put("breakingnews", breakingList);
- startPageModel.put("topics", topicList);
- startPageModel.put("imclist", imcList);
- startPageModel.put("parentlist", parentList);
+ startPageModel.put("topics", topicsModule.getTopicsList());
startPageModel.put("newswire", newsWireList);
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");
}
}
}