public class MediaHandlerGeneric implements MirMedia
{
+ private String imageHost = MirConfig.getProp("Producer.Image.Host");
private static String imageRoot = MirConfig.getProp("Producer.ImageRoot");
private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log");
public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) {
//we can't cause of stallman -mh
//if(FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData)) {
if(FileUtil.write(dir+"/"+mediaFname, uploadedData)) {
+ //were done with the data, dereference.
+ uploadedData=null;
+
try {
ent.setValueForProperty("is_produced", "1");
ent.setValueForProperty("icon_is_produced", "1");
ent.getValue("publish_path"), title, imageRoot, getBigIcon());
}
+ public String getListView(Entity ent, Entity mediaTypeEnt)
+ {
+ //String title = ent.getValue("title")+
+ // " - "+mediaTypeEnt.getValue("name")+" "+
+ // ent.getValue("size")+" Bytes";
+ return StringUtil.createIMGLinks(imageHost+
+ getBigIcon(), null, null, null);
+ }
+
public boolean isVideo()
{
return false;
theLog.printDebugInfo("invocation target illegal: "+e.toString());
return false;
}
+ //deref. -mh
+ uploadData=null;
+
return true;
}
ent.getValue("img_width"));
}
+ public String getListView(Entity ent, Entity mediaTypeEnt)
+ {
+ //String title = ent.getValue("title");
+ return StringUtil.createIMGLinks( MirConfig.getProp("Producer.ProductionHost")+
+ ent.getValue("icon_path"), null, ent.getValue("icon_height"),
+ ent.getValue("icon_width"));
+ }
+
public String getStoragePath()
{
return MirConfig.getProp("Producer.Image.Path");
public abstract byte[] get (Entity ent, Entity mediaTypeEnt);
public abstract byte[] getIcon (Entity ent);
public abstract String getURL (Entity ent, Entity mediaTypeEnt);
- public String getStoragePath ();
- public String getIconStoragePath ();
- public String getPublishHost ();
- public String getBigIcon ();
- public String getTinyIcon ();
- public String getIconAlt ();
- public boolean isVideo ();
- public boolean isAudio ();
- public boolean isImage ();
+ public abstract String getListView (Entity ent, Entity mediaTypeEnt);
+ public abstract String getStoragePath ();
+ public abstract String getIconStoragePath ();
+ public abstract String getPublishHost ();
+ public abstract String getBigIcon ();
+ public abstract String getTinyIcon ();
+ public abstract String getIconAlt ();
+ public abstract boolean isVideo ();
+ public abstract boolean isAudio ();
+ public abstract boolean isImage ();
}
import java.io.*;
import java.lang.*;
+import java.lang.reflect.*;
import java.util.*;
import java.sql.*;
import freemarker.template.*;
import mir.misc.*;
+import mir.media.*;
import mir.storage.*;
import mir.module.*;
import mir.entity.*;
public String orderBy;
public String fileDesc;
protected HashMap additional = new HashMap();
+ Entity mediaType;
+ Entity upMedia;
+ SimpleHash upMediaSimpleHash;
+ Class mediaHandlerClass;
+ Class mediaStorageClass;
+ String mediaStorageName;
+ String mediaHandlerName=null;
+ MirMedia mediaHandler=null;
+ Database mediaStorage=null;
+
+
public void handle(PrintWriter htmlout, EntityUsers user, boolean sync, boolean force)
throws StorageObjectException, ModuleException {
for (int k=0; k < list.size();k++) {
currentContent = (EntityContent)list.elementAt(k);
//images to content
- EntityList currentMedia = DatabaseContentToMedia.getInstance().getImages(currentContent);
- if (currentMedia!=null && currentMedia.getCount()>=1) {
- SimpleList mediaList = HTMLTemplateProcessor.makeSimpleList(currentMedia);
+ EntityList currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(currentContent);
+ if (currentMediaList!=null && currentMediaList.getCount()>=1) {
+ SimpleList mediaListAudio = new SimpleList();
+ SimpleList mediaListImages = new SimpleList();
+ SimpleList mediaListVideo = new SimpleList();
+ SimpleList mediaListOther = new SimpleList();
+ //SimpleHash allMediaSimpleHash = new SimpleHash();
+ for (int n=0; n < currentMediaList.size();n++) {
+ upMedia = currentMediaList.elementAt(n);
+ upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
+ mediaType = ((EntityUploadedMedia)upMedia).getMediaType();
+ //must be a non-existant to_media_type entry..
+ if (mediaType != null) {
+ try {
+ mediaHandlerName = mediaType.getValue("classname");
+ mediaStorageName = mediaType.getValue("tablename");
+ mediaStorageClass = Class.forName("mircoders.storage.Database"+mediaStorageName);
+ mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
+ mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
+ if(!mediaStorageName.equals(new String("UploadedMedia"))) {
+ Method m = mediaStorageClass.getMethod("getInstance", null);
+ mediaStorage = (Database)m.invoke(null, null);
+ //we most likely need further info
+ upMedia = mediaStorage.selectById(upMedia.getId());
+ }
+ } catch (Exception e) {
+ theLog.printError("ProducerList: problem in reflection: "+mediaHandlerName);
+ } //end catch
+ upMediaSimpleHash.put("url", mediaHandler.getListView(upMedia, mediaType));
+ if (upMedia.getValue("is_published") == "1") {
+ if (mediaHandler.isImage()) {
+ mediaListImages.add(upMediaSimpleHash);
+ } else if (mediaHandler.isAudio()) {
+ mediaListAudio.add(upMediaSimpleHash);
+ } else if (mediaHandler.isVideo()) {
+ mediaListVideo.add(upMediaSimpleHash);
+ } else {
+ mediaListOther.add(upMediaSimpleHash);
+ }
+ } //end if is_published
+ } //end if media_type != null
+ } //end for
try{
SimpleList contentList = (SimpleList)mergeData.get("contentlist");
SimpleHash contentHash = (SimpleHash)contentList.get(k);
- contentHash.put("to_media", mediaList);
+ contentHash.put("to_media_audio", mediaListAudio);
+ contentHash.put("to_media_images", mediaListImages);
+ contentHash.put("to_media_video", mediaListVideo);
+ contentHash.put("to_media_other", mediaListOther);
} catch (Exception e){}
+ } //end if currentMediaList != null
- }
//content to html
if(currentContent.getValue("is_html").equals("0")){
String temp = (String)currentContent.getValue("description");
package mircoders.servlet;
import java.io.*;
+import java.lang.*;
import java.sql.*;
import java.util.*;
import java.net.*;
Class mediaHandlerClass = Class.forName("mir.media.MediaHandler"+mediaHandlerName);
MirMedia mediaHandler = (MirMedia)mediaHandlerClass.newInstance();
mediaHandler.set(mpReq.getMedia(), mediaEnt,mediaTypesList.elementAt(0));
- theLog.printError("about to run ProduceMedia"+mediaId);
+
+ //were done with mpReq at this point, dereference it. as it contains
+ //mucho mem. -mh 01.10.2001
+ mpReq=null;
+
if(mediaId!=null){
new ProducerMedia().handle(null, null, false, false, mediaId);
}
} catch (Exception e) {
theLog.printError("setting uploaded_media failed: "+e.toString());
- }
+ } //end try-catch
try{
} else {
theLog.printDebugInfo("Wrong file uploaded!: " + fileName);
throw new ServletModuleException("ModuleException: One or more files of unrecognized types");
- }
+ } // end if-else mediaTypesList.size() > 0
- }
+ } //end for Iterator...
+
+ //dereference mp. -mh
+ mp=null;
// producing openpostinglist
new ProducerOpenPosting().handle(null,null,false,false);
catch (ModuleException e) { throw new ServletModuleException("ModuleException"+e.toString());}
deliver(req, res, mergeData, postingFormDoneTemplate);
+ //System.gc();
}
}
<h3>${i.title}</h3>
<h4><i>${i.creator}, ${i.webdb_create_formatted}</i></h4>
<p>
- <if i.to_media && i.to_media[0]["is_published"]=="1">
- <img src="${i.to_media[0]["icon_path"]}" width="${i.to_media[0]["icon_width"]}" height="${i.to_media[0]["icon_height"]}" alt="" align="left" vspace="8" hspace="8">
- </if>
+ <if i.to_media_audio && i.to_media_audio[0]["is_published"]=="1">
+ ${i.to_media_audio[0]["url"]}
+ </if>
+ <if i.to_media_video && i.to_media_video[0]["is_published"]=="1">
+ ${i.to_media_video[0]["url"]}
+ </if>
+ <if i.to_media_other && i.to_media_other[0]["is_published"]=="1">
+ ${i.to_media_other[0]["url"]}
+ </if>
+ <p>
+ <if i.to_media_images && i.to_media_images[0]["is_published"]=="1">
+ ${i.to_media_images[0]["url"]}
+ </if>
${i.description}</p>
<p align="right">[<a href="${config.docroot}${i.publish_path}${i.id}.shtml">read</a>]</p>
</td>