aab7d08f29dafa7f8378614b19a0b528dea91f78
[mir.git] / source / mircoders / producer / ProducerNavigation.java
1 package mircoders.producer;
2
3 import java.io.*;
4 import java.lang.*;
5 import java.util.*;
6
7 import freemarker.template.*;
8
9 import mir.misc.*;
10 import mir.storage.*;
11 import mir.module.*;
12 import mir.entity.*;
13
14 import mircoders.entity.*;
15
16 /**
17  * Title:        mir - another content management system
18  * Description:
19  * Copyright:    Copyright (c) 2001
20  * Company:      indymedia
21  * @author idefix
22  * @version 1.0
23  */
24
25 public class ProducerNavigation extends Producer {
26
27   private static String naviPageTemplate = MirConfig.getProp("Producer.Navigation.Template");
28
29   public void handle(PrintWriter htmlout, EntityUsers user, boolean forced, boolean sync)
30     throws mir.module.ModuleException, mir.storage.StorageObjectException {
31
32     printHTML(htmlout, "Producer.Navigation: started");
33
34                 long                sessionConnectTime = 0;
35                 long                startTime = (new java.util.Date()).getTime();
36                 String              nowWebdbDate = StringUtil.date2webdbDate(new GregorianCalendar());
37                 String              whereClause;
38                 String              orderBy;
39                 FileWriter          outputFile;
40                 String              htmlFileName;
41                 EntityContent       currentContent;
42                 EntityList          entityList;
43                 SimpleHash          naviPageModel;
44
45                 // get the topiclist
46                 entityList = topicsModule.getByWhereClause("","title",-1);
47                 SimpleList topicList = HTMLTemplateProcessor.makeSimpleList(entityList);
48
49     // get the imclinks
50     entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1);
51     SimpleList imcList = HTMLTemplateProcessor.makeSimpleList(entityList);
52
53     EntityList theParentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1);
54     SimpleList parentList = HTMLTemplateProcessor.makeSimpleList(theParentList);
55
56                 // put the informations into the navipagemodel
57                 naviPageModel = new SimpleHash();
58                 naviPageModel.put("topics", topicList);
59     naviPageModel.put("imclist", imcList);
60     naviPageModel.put("parentlist", parentList);
61
62                 htmlFileName = producerDocRoot + "/navigation.inc";
63
64                 produce(naviPageTemplate, htmlFileName, naviPageModel, new LineFilterWriter(htmlout));
65
66                 // Finish
67                 sessionConnectTime = new java.util.Date().getTime() - startTime;
68                 logHTML(htmlout, "Producer.Navigation finished: " + sessionConnectTime + " ms.");
69
70                 if(sync==true){
71                         Helper.rsync();
72                         logHTML(htmlout, "Producer.Startseite: rsync done");
73                 }
74         }
75
76 }