first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / mircoders / producer / ProducerStartPage.java
index fdae520..8ae3e5b 100755 (executable)
@@ -1,16 +1,14 @@
 package mircoders.producer;
 
 import java.io.*;
-import java.lang.*;
 import java.util.*;
 
 import freemarker.template.*;
 
+import mir.entity.*;
 import mir.misc.*;
-import mir.storage.*;
 import mir.module.*;
-import mir.entity.*;
-
+import mir.storage.*;
 import mircoders.module.*;
 import mircoders.storage.*;
 import mircoders.entity.*;
@@ -37,97 +35,28 @@ public class ProducerStartPage extends Producer {
   public void handle(PrintWriter htmlout, EntityUsers user, boolean force,boolean sync)
     throws StorageObjectException, ModuleException
   {
+    long    startTime = System.currentTimeMillis();
     printHTML(htmlout, "Producer.StartPage: started");
+    SimpleHash startPageModel = new SimpleHash();
 
-    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;
-    SimpleHash          imageHash = new SimpleHash();
-
-    // get the topiclist
-    entityList = topicsModule.getByWhereClause("","title",-1);
-    SimpleList topicList = HTMLTemplateProcessor.makeSimpleList(entityList);
-
-    // get the newswire
-    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);
-
-    // 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);
-    }
-    SimpleList startItemList = HTMLTemplateProcessor.makeSimpleList(entityList);
-    for (int i=0; i < entityList.size();i++) {
-      currentContent = (EntityContent)entityList.elementAt(i);
-      currentMediaId = currentContent.getValue("to_media");
-      if (currentMediaId!=null && !currentMediaId.equals("")) {
-        imageHash.put(currentMediaId, HTMLTemplateProcessor.makeSimpleHash(imageModule.getById(currentMediaId)));
-      }
-    }
-
-    // get the breaking news
-    // only the first 5
+    // breaking news
     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);
-    for (int i=0; i < entityList.size();i++) {
-      currentContent = (EntityContent)entityList.elementAt(i);
-      /**
-      if (currentContent.get("is_html").equals("0")) {
-        currentContent.put("content_data",StringUtil.createHTML((String)currentContent.get("content_data"),imageRoot,mailLinkName,extLinkName,intLinkName));
-        currentContent.put("description",StringUtil.createHTML((String)currentContent.get("description"),imageRoot,mailLinkName,extLinkName,intLinkName));
-      }
-      */
-      currentMediaId = currentContent.getValue("to_media");
-      if (currentMediaId!=null && !currentMediaId.equals("")) {
-        imageHash.put(currentMediaId, HTMLTemplateProcessor.makeSimpleHash(imageModule.getById(currentMediaId)));
-      }
-    }
-    SimpleList itemList = HTMLTemplateProcessor.makeSimpleList(entityList);
+    startPageModel.put("breakingnews", breakingModule.getBreakingNews());
+    startPageModel.put("topics", topicsModule.getTopicsList());
+    startPageModel.put("newswire", contentModule.getNewsWire(0,newsPerPage));
+    startPageModel.put("startspecial", contentModule.getStartArticle());
+    startPageModel.put("features", contentModule.getFeatures(0,itemsPerPage));
 
-    // Zusaetzlich Informationen
-    startPageModel = new SimpleHash();
-    startPageModel.put("breaking", breakingList);
-    startPageModel.put("topics", topicList);
-    startPageModel.put("newswire", newsWireList);
-    startPageModel.put("start", startItemList);
-    startPageModel.put("items", itemList);
-    startPageModel.put("images", imageHash);
+    /** @todo switch to compressed */
+    produce(startPageTemplate, producerDocRoot + "/index.shtml", startPageModel, htmlout);
 
-    htmlFileName = producerDocRoot + "/index.shtml";
-    
-    produce(startPageTemplate, htmlFileName, startPageModel, htmlout);
+    // finished
+    logHTMLFinish(htmlout, "Startpage", 1, startTime, System.currentTimeMillis());
 
-    // Finish
-    sessionConnectTime = new java.util.Date().getTime() - startTime;
-    logHTML(htmlout, "Producer.Startseite finished: " + sessionConnectTime + " ms.");
     if(sync==true){
+      logHTML(htmlout, "Producer.Startpage: rsyncing...");
       Helper.rsync();
-      logHTML(htmlout, "Producer.Startseite: rsync done");
+      logHTML(htmlout, "Producer.Startpage: rsync done");
     }
   }
 }