*** empty log message ***
authorrk <rk>
Fri, 28 Nov 2003 21:21:33 +0000 (21:21 +0000)
committerrk <rk>
Fri, 28 Nov 2003 21:21:33 +0000 (21:21 +0000)
etc/producer/article.template
source/mircoders/entity/EntityImages.java
source/mircoders/localizer/basic/MirBasicDataModelLocalizer.java
source/mircoders/servlet/ServletModuleUploadedMedia.java

index e311537..acd0677 100755 (executable)
         <p><i><font size="-1">${article.creator}, ${article.creationdate.formatted["dd.MM.yyyy HH:mm"]}</font></i></p>
         <br>
         <p>${article.description_parsed}</p>
+         
+        <if article.mediacount!=0>
           <!-- media -->
           <list article.to_media_audio as media>
           <p>
           <br><i>${image["title"]}</i>
           </p>
           </list>
-
+               </if>
+               
           <br>
           <p><font size="-1">${article.content_data_parsed}</font></p>
           <br>
index 2417e20..1569a1c 100755 (executable)
@@ -54,7 +54,7 @@ import org.postgresql.largeobject.LargeObjectManager;
  * Diese Klasse enth?lt die Daten eines MetaObjekts
  *
  * @author RK, mh, mir-coders
- * @version $Id: EntityImages.java,v 1.21.2.1 2003/10/23 14:55:28 rk Exp $
+ * @version $Id: EntityImages.java,v 1.21.2.2 2003/11/28 21:21:33 rk Exp $
  */
 
 
@@ -177,7 +177,7 @@ public class EntityImages extends EntityUploadedMedia
         update();
       }
       catch (Exception e) {
-        throwStorageObjectFailure(e, "settimage :: setImage gescheitert: ");
+        throwStorageObjectFailure(e, "settimage :: setImage failed: ");
       }
       finally {
         try {
index 8538265..08e7486 100755 (executable)
@@ -99,7 +99,10 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
       anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField(" and is_published='1'"));
       anEntityAdapterDefinition.addCalculatedField("fullcommentcount", new ContentCommentCountField(""));
 
-      anEntityAdapterDefinition.addCalculatedField("to_uploaded_media", new ContentToMediaField( "uploadedMedia" ));
+      
+      anEntityAdapterDefinition.addCalculatedField("mediacount", new ContentMediaCountField("uploadedMedia", true));
+      anEntityAdapterDefinition.addCalculatedField("fullmediacount", new ContentMediaCountField("uploadedMedia", false));
+    
       anEntityAdapterDefinition.addCalculatedField("to_media_images",  new ContentToMediaField( "image" ));
       anEntityAdapterDefinition.addCalculatedField("to_media_audio", new ContentToMediaField( "audio" ));
       anEntityAdapterDefinition.addCalculatedField("to_media_video", new ContentToMediaField( "video" ));
@@ -461,18 +464,19 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
       topicOrder = aTopicOrder;
     }
 
-        // TODO rewrite as relational select 
-   // take care of topic-condition
     public Object getValue(EntityAdapter anEntityAdapter) {
       try {
-        String condition = "exists (select * from content_x_topic where content_id="+anEntityAdapter.get("id")+" and topic_id=id)";
+        
+        Vector extraTable = new Vector();
+        extraTable.add("content_x_topic cxt");
+        String condition = "cxt.content_id"+anEntityAdapter.get("id")+
+          " and cxt.topic_id=t.id";
+        
         if (topicCondition!=null && topicCondition.length()>0)
           condition = "(" + topicCondition + ") and " + condition;
 
-        return anEntityAdapter.getRelation(
-                    condition,
-                    topicOrder,
-                    "topic" );
+        return anEntityAdapter.getComplexRelation("t", extraTable,
+                    condition, topicOrder, "topic" );                    
       }
       catch (Throwable t) {
         throw new RuntimeException(t.getMessage());
@@ -633,15 +637,16 @@ public class MirBasicDataModelLocalizer implements MirDataModelLocalizer {
     }
 
     public Object getValue(EntityAdapter anEntityAdapter) {
-      try {
-        // TODO rewrite as relational select / very expensive
-        String subQuery = "select * from "+table+" where id = media_id";
+      try {        
+        Vector extraTable = new Vector();
+        extraTable.add(table+" m");
+        String selectSql = "cxm.media_id=m.id";
         if (published)
-          subQuery = subQuery + " and is_published='t'";
+          selectSql+= " and m.is_published='t'";
 
         return Integer.toString(
             DatabaseContentToMedia.getInstance().getSize(
-                  "exists ("+subQuery+")"));
+              "cxm", extraTable, selectSql));
       }
       catch (Throwable t) {
         throw new RuntimeException(t.getMessage());
index 6005ef6..1f0d3a8 100755 (executable)
@@ -554,7 +554,7 @@ public abstract class ServletModuleUploadedMedia extends ServletModule {
         throw new ServletModuleFailure(t);
       }
     }
-    else logger.error("editObjects: id not specified.");
+    else logger.error("showcomments: id not specified.");
   }
 
 }
\ No newline at end of file