in order to do that.
final static String DEFAULT_KEY = "(default)";
final static String NODE_SEPARATOR = ".";
- private static List splitString(String aString, String aSeparator) {
+ public static List splitString(String aString, String aSeparator) {
List result= new Vector();
int previousPosition = 0;
int position;
import java.util.*;
import javax.servlet.http.*;
+import mircoders.entity.*;
+
public interface MirOpenPostingLocalizer {
- public void afterContentPosting();
- public void afterCommentPosting();
+ public void afterContentPosting(EntityContent aContent);
+ public void afterCommentPosting(EntityComment aComment);
public String chooseOpenPostingLanguage(HttpServletRequest req);
}
import mir.misc.*;
import mircoders.global.*;
import mircoders.localizer.*;
+import mircoders.entity.*;
public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
MirGlobal.producerEngine().addJob("synchronization", "run");
}
+ public void afterContentPosting(EntityContent aContent) {
+ afterContentPosting();
+ }
+
public void afterCommentPosting() {
MirGlobal.producerEngine().addJob("content", "new");
MirGlobal.producerEngine().addJob("synchronization", "run");
}
+ public void afterCommentPosting(EntityComment aComment) {
+ afterCommentPosting();
+ }
+
public String chooseOpenPostingLanguage(HttpServletRequest req) {
Locale locale = req.getLocale();
private String postingFormTemplate, postingFormDoneTemplate,
postingFormDupeTemplate;
private ModuleContent contentModule;
+ private ModuleComment commentModule;
private ModuleImages imageModule;
private ModuleTopics themenModule;
private String directOp ="yes";
}
else {
DatabaseContent.getInstance().setUnproduced("id="+aid);
- MirGlobal.localizer().openPostings().afterCommentPosting();
-
+
+ EntityComment comment = (EntityComment) DatabaseComment.getInstance().selectById(id);
+
+ MirGlobal.localizer().openPostings().afterCommentPosting(comment);
+
}
// redirecting to url
contentEnt.setValueForProperty("is_published","1");
contentEnt.update();
+ MirGlobal.localizer().openPostings().afterContentPosting(contentEnt);
+
//dereference mp. -mh
mp=null;
- MirGlobal.localizer().openPostings().afterContentPosting();
}
catch (IOException e) { throw new ServletModuleException("IOException: "+ e.toString());}
catch (StorageObjectException e) { throw new ServletModuleException("StorageObjectException" + e.toString());}
package mirlocal.indymedia.nl;
+import java.util.*;
+import mir.util.*;
+import mir.entity.*;
+import mir.storage.*;
import mircoders.localizer.*;
import mircoders.global.*;
import mircoders.localizer.basic.*;
+import mircoders.entity.*;
+import mircoders.storage.*;
public class IndyNLOpenPostingLocalizer extends MirBasicOpenPostingLocalizer {
+
+// private static String[] CONTENT_FIELDS_TO_CHECK = { "content_data", "description", "title", "creator" };
- public void afterContentPosting() {
+
+ public void afterContentPosting(EntityContent aContent) {
+ if (checkEntity(aContent)) {
+ try {
+ aContent.setValueForProperty("to_article_type", "8");
+ aContent.update();
+ }
+ catch (Throwable t) {
+ }
+ }
+
MirGlobal.producerEngine().addJob("media", "new");
MirGlobal.producerEngine().addJob("content", "new");
MirGlobal.producerEngine().addJob("startpage", "(default)");
MirGlobal.producerEngine().addJob("synchronization", "run");
}
- public void afterCommentPosting() {
- super.afterCommentPosting();
+ public void afterCommentPosting(EntityComment aComment) {
+ if (checkEntity(aComment)) {
+ try {
+ aComment.setValueForProperty("is_published", "0");
+ aComment.update();
+ }
+ catch (Throwable t) {
+ }
+ }
+ super.afterCommentPosting(aComment);
+ }
+
+ private boolean checkEntity(Entity anEntity) {
+ String forbiddenWordsSpecification = MirGlobal.getConfigPropertyWithDefault("IndymediaNL.forbiddenExpressions", "");
+ List forbiddenWords = ParameterExpander.splitString(forbiddenWordsSpecification, ":");
+ Iterator i, j;
+ boolean found = false;
+ String field;
+
+
+ try {
+ j = anEntity.getFields().iterator();
+ while (!found && j.hasNext()) {
+ field = anEntity.getValue((String) j.next());
+
+ if (field!=null) {
+ field=field.toLowerCase();
+ i = forbiddenWords.iterator();
+ while (!found && i.hasNext()) {
+ String forbiddenWord = (String) i.next();
+
+ try {
+ if (field.indexOf(forbiddenWord.toLowerCase())>=0) {
+ found = true;
+ }
+ }
+ catch (Throwable t) {
+ logger.printError("Error while matching " + field + " to " + forbiddenWord + ": " + t.toString());
+ }
+ }
+ }
+ }
+ }
+ catch (Throwable t) {
+ }
+
+ return found;
}
}