import mircoders.media.MediaHelper;
import mircoders.module.ModuleContent;
import mircoders.module.ModuleLanguage;
+import mircoders.module.ModuleCommentStatus;
import mircoders.storage.*;
import multex.Failure;
anEntityAdapterDefinition.addCalculatedField("language", new ToOneRelationField("to_language", "language", "id"));
anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField(" and is_published='1'"));
anEntityAdapterDefinition.addCalculatedField("fullcommentcount", new ContentCommentCountField(""));
-
+ anEntityAdapterDefinition.addCalculatedField("commentstatuscount", new CommentStatusCountField());
anEntityAdapterDefinition.addCalculatedField("mediacount", new ContentMediaCountField("uploaded_media", true));
anEntityAdapterDefinition.addCalculatedField("fullmediacount", new ContentMediaCountField("uploaded_media", false));
}
}
}
+
+ protected static class CommentStatusCountField implements EntityAdapterDefinition.CalculatedField {
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ return new CommentStatusCountField2(anEntityAdapter);
+ }
+ }
+
+ private static class CommentStatusCountField2 {
+ private final EntityAdapter comment;
+ private final ModuleCommentStatus mcs = new ModuleCommentStatus();
+
+ CommentStatusCountField2(EntityAdapter anEntityAdapter) {
+ comment = anEntityAdapter;
+ }
+
+ public String get(String aCommentStatus) {
+ try {
+ return Integer.toString(
+ DatabaseComment.getInstance().getSize(
+ "to_media=" + comment.get("id") + " and is_published='1' and to_comment_status = " +
+ mcs.commentStatusIdForName(aCommentStatus)));
+ }
+ catch (Exception e) {
+ return "0";
+ }
+ }
+ }
}