1 package mircoders.producer;
8 import freemarker.template.*;
11 import webdb.storage.*;
12 import webdb.module.*;
13 import webdb.entity.*;
21 public class ProducerOverview extends Producer {
23 static String monthTemplate;
24 static String yearTemplate;
25 static int numberOfTermine;
29 monthTemplate = Configuration.getProperty("Producer.Overview.MonthTemplate");
30 yearTemplate = Configuration.getProperty("Producer.Overview.YearTemplate");
31 numberOfTermine = Integer.parseInt(Configuration.getProperty("Producer.Startseite.Termine"));
34 public static void main(String argv[]){
36 new ProducerOverview().handle(new PrintWriter(System.out), null, false, false);
39 System.err.println(e.toString());
43 public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
44 throws StorageObjectException, ModuleException
46 logHTML(htmlout, "Producer.Overview: started");
48 long sessionConnectTime = 0;
49 long startTime = (new java.util.Date()).getTime();
50 String nowWebdbDate = StringUtil.date2webdbDate(new GregorianCalendar());
52 String orderBy="date";
54 EntityContent currentContent;
55 EntityList monatsListe;
56 EntityList batchEntityList;
57 EntityGruppen userEntity=null;
59 SimpleHash gruppenPopupData = gruppenModule.getHashData();
60 SimpleHash themenPopupData = topicsModule.getHashData();
61 SimpleHash schwerpunktPopupData = schwerpunktModule.getHashData();
62 ArrayList yearArrayList = new ArrayList();
63 HashMap yearHash = new HashMap();
65 // Datenstrukturen fuer Themen/Schwerpunkt aufbauen
66 batchEntityList = schwerpunktModule.getByWhereClause("is_published!=0", 0);
67 SimpleList schwerpunktList = HTMLTemplateProcessor.makeSimpleList(batchEntityList);
68 batchEntityList = contentModule.getContent("(date_from<="+ nowWebdbDate +" and date_to>=" + nowWebdbDate+ ")", "", 0, numberOfTermine, null);
69 SimpleList terminList = HTMLTemplateProcessor.makeSimpleList(batchEntityList);
70 batchEntityList = topicsModule.getByWhereClause("","title",-1);
71 SimpleList themenList = HTMLTemplateProcessor.makeSimpleList(batchEntityList);
76 DatabaseContent dbContent=DatabaseContent.getInstance();
78 String sql = "select distinct LEFT(date,6) as date from content order by date desc";
80 con = dbContent.getPooledCon();
81 stmt = con.createStatement();
82 rs = dbContent.executeSql(stmt,sql);
84 //jetzt übersetzen wir month in text
85 SimpleHash monatslookup = new SimpleHash();
86 monatslookup.put("01","Januar");
87 monatslookup.put("02","Februar");
88 monatslookup.put("03","März");
89 monatslookup.put("04","April");
90 monatslookup.put("05","Mai");
91 monatslookup.put("06","Juni");
92 monatslookup.put("07","Juli");
93 monatslookup.put("08","August");
94 monatslookup.put("09","September");
95 monatslookup.put("10","Oktober");
96 monatslookup.put("11","November");
97 monatslookup.put("12","Dezember");
102 // select * from content_objekt where datum like yyyymm%
103 String currentDate = rs.getString(1);
104 whereClause="date like '"+ currentDate + "%' and is_published!=0 and islink=0";
105 monatsListe = contentModule.getContent(whereClause, orderBy, 0, -1, userEntity);
107 // baue uebersichtsseite aus erbenis
108 if (monatsListe!=null) {
109 SimpleList items = new SimpleList();
110 for(int i=0;i<monatsListe.size();i++) {
111 currentContent = (EntityContent)monatsListe.elementAt(i);
112 items.add(HTMLTemplateProcessor.makeSimpleHash(currentContent));
114 String year = currentDate.substring(0,4);
115 String month = currentDate.substring(4,6);
116 fileName = producerDocRoot + "/"
122 // wir merken uns mal was ...
125 if (!yearArrayList.contains(year)) yearArrayList.add(year);
126 if (!yearHash.containsKey(year)) yearHash.put(year, new SimpleList());
127 ((SimpleList)yearHash.get(year)).add(month);// hier hab ich wieder month eingefuegt, statt des gepatchten monats
129 SimpleHash mergeData = new SimpleHash();
130 mergeData.put("year",year);
131 mergeData.put("month",month); // hier hab ich wieder month eingefuegt, statt des gepatchten monats
132 mergeData.put("content", items);
133 mergeData.put("schwerpunkt", schwerpunktList);
134 mergeData.put("termine", terminList);
135 mergeData.put("themen", themenList);
136 mergeData.put("gruppenPopupData", gruppenPopupData);
137 mergeData.put("themenPopupData", themenPopupData);
138 mergeData.put("schwerpunktPopupData", schwerpunktPopupData);
139 mergeData.put("producerDocRoot", producerDocRoot);
140 mergeData.put("monatslookup",monatslookup);
141 boolean retVal = produce_compressed(monthTemplate, fileName, mergeData, htmlout);
146 SimpleList item = new SimpleList();
147 for(int i=0;i<yearArrayList.size();i++){
148 String year = (String)yearArrayList.get(i);
149 SimpleHash entry = new SimpleHash();
150 entry.put("name", year);
151 entry.put("mm",(SimpleList)yearHash.get(year));
154 SimpleHash mergeData = new SimpleHash();
155 mergeData.put("content", item);
156 mergeData.put("schwerpunkt", schwerpunktList);
157 mergeData.put("termine", terminList);
158 mergeData.put("themen", themenList);
159 mergeData.put("gruppenPopupData", gruppenPopupData);
160 mergeData.put("themenPopupData", themenPopupData);
161 mergeData.put("schwerpunktPopupData", schwerpunktPopupData);
162 mergeData.put("producerDocRoot", producerDocRoot);
163 mergeData.put("monatslookup", monatslookup);
164 boolean retVal = produce_compressed(yearTemplate, producerDocRoot+"/uebersicht.html", mergeData, htmlout);
166 } catch (Exception e) {
167 theLog.printDebugInfo("overview gescheitert! schade"+e.toString());
169 dbContent.freeConnection(con,stmt);
173 sessionConnectTime = new java.util.Date().getTime() - startTime;
174 logHTML(htmlout, "Producer.Content finished: " + sessionConnectTime + " ms.");