*/
package mircoders.localizer.basic;
-import java.util.Arrays;
-import java.util.*;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Vector;
+import java.util.Map;
import mir.entity.Entity;
+import mir.misc.StringUtil;
import mir.session.Request;
import mir.session.Response;
import mir.session.Session;
import mir.session.SessionFailure;
import mir.session.UploadedFile;
import mir.util.ExceptionFunctions;
+import mircoders.entity.EntityContent;
import mircoders.global.MirGlobal;
-import mir.misc.*;
import mircoders.media.MediaUploadProcessor;
-import mircoders.module.*;
-import mircoders.entity.*;
-import mircoders.storage.*;
+import mircoders.module.ModuleContent;
+import mircoders.module.ModuleMediaType;
import mircoders.storage.DatabaseContent;
-import mircoders.media.*;
+import mircoders.storage.DatabaseContentToMedia;
+import mircoders.storage.DatabaseContentToTopics;
/**
*
String field = (String) i.next();
aResponse.setResponseValue(field, aRequest.getParameter(field));
}
- aResponse.setResponseValue("to_topic", aRequest.getParameter("to_topic"));
+ aResponse.setResponseValue("to_topic", aRequest.getParameters("to_topic"));
}
public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure {
aContent.setValueForProperty("to_publisher", "1");
}
+ public void setArticleTopics(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
+ // topics:
+ List topics = aRequest.getParameters("to_topic");
+ if (topics.size() > 0) {
+ try {
+ DatabaseContentToTopics.getInstance().setTopics(aContent.getId(), topics);
+ }
+ catch (Throwable e) {
+ logger.error("setting content_x_topic failed");
+ throw new SessionFailure("MirBasicArticlePostingHandler: can't set topics: " + e.toString(), e);
+ }
+ }
+ }
+
public void preProcessRequest(Request aRequest, Session aSession) throws SessionExc, SessionFailure {
try {
String id;
}
aSession.setAttribute("content", article);
- // topics:
- List topics = aRequest.getParameters("to_topic");
- if (topics.size() > 0) {
- try {
- DatabaseContentToTopics.getInstance().setTopics(id, topics);
- }
- catch (Throwable e) {
- logger.error("setting content_x_topic failed");
- contentModule.deleteById(id);
- throw new SessionFailure("MirBasicArticlePostingHandler: can't set topics: " + e.toString(), e);
- }
- }
+
+ setArticleTopics(aRequest, aSession, article);
+
}
catch (Throwable t) {
throw new SessionFailure(t);
}
}
}
-
-/*
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import mir.entity.Entity;
-import mir.session.Request;
-import mir.session.Response;
-import mir.session.Session;
-import mir.session.SessionExc;
-import mir.session.SessionFailure;
-import mir.session.UploadedFile;
-import mir.util.ExceptionFunctions;
-import mircoders.entity.EntityContent;
-import mircoders.global.MirGlobal;
-import mircoders.media.MediaUploadProcessor;
-import mircoders.module.ModuleContent;
-import mircoders.storage.DatabaseContent;
-import mircoders.storage.DatabaseContentToMedia;
-import mircoders.storage.DatabaseContent;
-
-public abstract class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler {
- protected ModuleContent contentModule;
- protected DatabaseContentToMedia contentToMedia = DatabaseContentToMedia.getInstance();
-
- public MirBasicArticlePostingHandler() {
- super();
-
- contentModule= new ModuleContent(DatabaseContent.getInstance());
- }
-
- public void processRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
- if (aSession.getAttribute("initialRequest")==null) {
- initialRequest(aRequest, aSession, aResponse);
- aSession.setAttribute("initialRequest", "no");
- }
- else {
- subsequentRequest(aRequest, aSession, aResponse);
- }
- };
-
- protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
- super.initializeResponseData(aRequest, aSession, aResponse);
-
- Iterator i = DatabaseContent.getInstance().getFields().iterator();
- while (i.hasNext()) {
- String field = (String) i.next();
- aResponse.setResponseValue(field, aRequest.getParameter(field));
- }
-
- };
-
- public void initialRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure{
- super.initialRequest(aRequest, aSession, aResponse);
-
- String articleId = aRequest.getParameter("to_media");
- if (articleId == null)
- throw new SessionExc("MirBasicArticlePostingHandler.initialRequest: article id not set!");
- aSession.setAttribute("to_media", articleId);
-
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate"));
- }
-
- public void subsequentRequest(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
- try {
- initializeResponseData(aRequest, aSession, aResponse);
-
- List validationErrors = validate(aRequest, aSession);
-
- if (validationErrors != null && validationErrors.size()>0) {
- returnValidationErrors(aRequest, aSession, aResponse, validationErrors);
- }
- else {
- EntityContent content = (EntityContent) contentModule.createNew ();
- Iterator i = DatabaseContent.getInstance().getFields().iterator();
-// content.setValues(contentFields);
-
- finishContent(aRequest, aSession, content);
-
- String id = content.insert();
- if(id==null){
- afterDuplicateContentPosting(aRequest, aSession, aResponse, content);
- logger.info("Dupe content rejected");
- aSession.terminate();
- }
- else {
- i = aRequest.getUploadedFiles().iterator();
- while (i.hasNext()) {
- UploadedFile file = (UploadedFile) i.next();
- processMediaFile(aRequest, aSession, content, file);
- }
-
- afterContentPosting(aRequest, aSession, aResponse, content);
- MirGlobal.abuse().checkArticle(content, aRequest, null);
- MirGlobal.localizer().openPostings().afterContentPosting(content);
- logger.info("Content posted");
- aSession.terminate();
- }
- }
- }
- catch (Throwable t) {
- ExceptionFunctions.traceCauseException(t).printStackTrace();
-
- throw new SessionFailure("MirBasicArticlePostingHandler.subsequentRequest: " + t.getMessage(), t);
- }
- }
-
- public void initializeContentPosting(Request aRequest, Session aSession, Response aResponse) throws SessionFailure, SessionExc {
- String articleId = aRequest.getParameter("to_media");
- if (articleId==null)
- articleId = aRequest.getParameter("aid");
-
- if (articleId==null)
- throw new SessionExc("initializeContentPosting: article id not set!");
-
- aSession.setAttribute("to_media", articleId);
- processContentPosting(aRequest, aSession, aResponse);
- };
-
- public void returnValidationErrors(Request aRequest, Session aSession, Response aResponse, List aValidationErrors) throws SessionFailure, SessionExc {
- aResponse.setResponseValue("errors", aValidationErrors);
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate"));
- };
-
- public void processContentPosting(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
- if (MirGlobal.abuse().getOpenPostingPassword()) {
- String password = generateOnetimePassword();
- aSession.setAttribute("password", password);
- aResponse.setResponseValue("password", password);
- aResponse.setResponseValue("passwd", password);
- }
- else {
- aResponse.setResponseValue("password", null);
- }
-
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.EditTemplate"));
- };
-
- public void processMediaFile(Request aRequest, Session aSession, EntityContent aContent, UploadedFile aFile) throws SessionExc, SessionFailure {
- try {
- Entity mediaItem = MediaUploadProcessor.processMediaUpload(aFile, new HashMap());
- finishMedia(aRequest, aSession, aFile, mediaItem);
- mediaItem.update();
- contentToMedia.addMedia(aContent.getId(), mediaItem.getId());
- }
- catch (Throwable t) {
- throw new SessionFailure(t);
- }
- }
-
- public void finishMedia(Request aRequest, Session aSession, UploadedFile aFile, Entity aMedia) throws SessionExc, SessionFailure {
- }
-
- public void finishContent(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
- if (aSession.getAttribute("to_media") == null)
- throw new SessionExc("missing to_media");
-
- aContent.setValueForProperty("is_published", "1");
- aContent.setValueForProperty("to_content_status", "1");
- aContent.setValueForProperty("is_html","0");
- aContent.setValueForProperty("to_media", (String) aSession.getAttribute("to_media"));
- };
-
- public void addMedia(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
- }
-
- public void afterContentPosting(Request aRequest, Session aSession, Response aResponse, EntityContent aContent) {
- DatabaseContent.getInstance().setUnproduced("id=" + aContent.getValue("to_media"));
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.DoneTemplate"));
- };
-
- public void afterDuplicateContentPosting(Request aRequest, Session aSession, Response aResponse, EntityContent aContent) {
- aResponse.setResponseGenerator(configuration.getString("Localizer.OpenSession.content.DupeTemplate"));
- };
-
- public class ValidationError {
- private String field;
- private String message;
- private List parameters;
-
- public ValidationError(String aField, String aMessage) {
- this (aField, aMessage, new String[] {});
- }
-
- public ValidationError(String aField, String aMessage, Object aParameter) {
- this (aField, aMessage, new Object[] {aParameter});
- }
-
- public ValidationError(String aField, String aMessage, Object[] aParameters) {
- field = aField;
- message = aMessage;
- parameters = Arrays.asList(aParameters);
- }
-
- public String getMessage() {
- return message;
- }
-
- public String getField() {
- return field;
- }
-
- public List getParameters() {
- return parameters;
- }
- }
-
-
-
-}
-*/
\ No newline at end of file