* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with any library licensed under the Apache Software License,
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
- * (or with modified versions of the above that use the same license as the above),
- * and distribute linked combinations including the two. You must obey the
- * GNU General Public License in all respects for all of the code used other than
- * the above mentioned libraries. If you modify this file, you may extend this
- * exception to your version of the file, but you are not obligated to do so.
+ * the code of this program with any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two. You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries. If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
* If you do not wish to do so, delete this exception statement from your version.
*/
package mircoders.servlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import mir.entity.EntityList;
-import mir.log.LoggerWrapper;
-import mir.misc.HTMLTemplateProcessor;
-import mir.servlet.ServletModule;
-import mir.servlet.ServletModuleExc;
-import mir.servlet.ServletModuleFailure;
-import mir.storage.StorageObjectFailure;
-import mircoders.module.ModuleContent;
+import java.util.Iterator;\r
+import java.util.Locale;\r
+import java.util.Map;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import mir.entity.adapter.EntityIteratorAdapter;\r
+import mir.log.LoggerWrapper;\r
+import mir.servlet.ServletModule;\r
+import mir.servlet.ServletModuleExc;\r
+import mir.servlet.ServletModuleFailure;\r
+import mir.storage.StorageObjectFailure;\r
+import mir.util.CachingRewindableIterator;\r
+import mir.util.HTTPRequestParser;\r
+import mir.util.JDBCStringRoutines;\r
+import mircoders.global.MirGlobal;\r
+import mircoders.module.ModuleContent;\r
import mircoders.storage.DatabaseContent;
-import freemarker.template.SimpleHash;
/*
* ServletModuleHidden - output of so called "censored" articles
public class ServletModuleHidden extends ServletModule
{
-
-// Singelton / Kontruktor
private static ServletModuleHidden instance = new ServletModuleHidden();
public static ServletModule getInstance() { return instance; }
private ServletModuleHidden() {
super();
+
logger = new LoggerWrapper("ServletModule.Hidden");
- templateListString = configuration.getString("ServletModule.Hidden.ListTemplate");
+
try {
mainModule = new ModuleContent(DatabaseContent.getInstance());
}
public void list(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
{
// determine parameter
- SimpleHash mergeData = new SimpleHash();
- String query_year = req.getParameter("year");
- String query_month = req.getParameter("month");
- String order = "webdb_create";
+ HTTPRequestParser requestParser = new HTTPRequestParser(req);
+ Map responseData = ServletHelper.makeGenerationData(req, res, new Locale[] { getLocale(req), getFallbackLocale(req)});
-// form sql statement
- String whereClause = "is_published=false AND webdb_create LIKE '"+
- query_year+"-"+query_month+"%'";
+ String query_year = requestParser.getParameter("year");
+ String query_month = requestParser.getParameter("month");
- logger.debug("ServletModuleHidden.list: whereclause: " + whereClause);
-
-// fetch and deliver
try {
+ if ((query_year!=null && !query_year.equals("")) && (query_month!=null && !query_month.equals(""))) {
+ String whereClause = "is_published=false AND webdb_create LIKE "+
+ "'"+JDBCStringRoutines.escapeStringLiteral(query_year)+"-"+JDBCStringRoutines.escapeStringLiteral(query_month)+"%'";
- if ((query_year!=null && !query_year.equals(""))
- && (query_month!=null && !query_month.equals(""))) {
- EntityList theList = mainModule.getByWhereClause(whereClause, order, -1);
- if (theList!=null && theList.size()>0) {
-
-//make articleHash for comment
- StringBuffer buf= new StringBuffer("id in (");boolean first=true;
- for(int i=0;i<theList.size();i++) {
- if (first==false) buf.append(",");
- first=false;
- buf.append(theList.elementAt(i).getValue("to_media"));
- }
- buf.append(")");
- SimpleHash articleHash =
- HTMLTemplateProcessor.makeSimpleHash(
- mainModule.getByWhereClause(buf.toString(),-1));
- mergeData.put("articleHash", articleHash);
+ Iterator articleList =
+ new CachingRewindableIterator(
+ new EntityIteratorAdapter( whereClause, "webdb_create", 100,
+ MirGlobal.localizer().dataModel().adapterModel(), "content", -1, 0)
+ );
-// send the year and month for use in the list template
- mergeData.put("year", query_year);
- mergeData.put("month", query_month);
-// get comment
- mergeData.put("contentlist",theList);
- }
+ responseData.put("year", query_year);
+ responseData.put("month", query_month);
+ responseData.put("articles", articleList);
}
-// raus damit
- HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req), getFallbackLocale(req));
+
+ ServletHelper.generateResponse(res.getWriter(), responseData, listGenerator);
}
catch (Throwable e) {
throw new ServletModuleFailure(e);