There now exists DatabaseAudio, DatabaseVideo, etc.. see dbscripts/create...
--
\connect - postgres
--
--- TOC Entry ID 2 (OID 28714)
+-- TOC Entry ID 2 (OID 19796)
--
-- Name: media_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "media_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 3 (OID 28733)
+-- TOC Entry ID 3 (OID 19815)
--
-- Name: media_folder_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "media_folder_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 5 (OID 28771)
+-- TOC Entry ID 4 (OID 19834)
--
-- Name: feature_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "feature_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 6 (OID 28790)
+-- TOC Entry ID 5 (OID 19853)
--
-- Name: topic_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "topic_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 7 (OID 28809)
+-- TOC Entry ID 6 (OID 19872)
--
-- Name: webdb_users_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "webdb_users_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 8 (OID 28828)
+-- TOC Entry ID 7 (OID 19891)
--
-- Name: comment_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "comment_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 9 (OID 28847)
+-- TOC Entry ID 8 (OID 19910)
--
-- Name: breaking_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "breaking_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 10 (OID 28866)
+-- TOC Entry ID 9 (OID 19929)
--
-- Name: messages_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "messages_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 10 (OID 28866)
+-- TOC Entry ID 10 (OID 19948)
--
-- Name: media_type_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "media_type_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 12 (OID 28885)
+-- TOC Entry ID 12 (OID 19967)
--
-- Name: media_folder Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 13 (OID 28918)
+-- TOC Entry ID 13 (OID 20000)
--
-- Name: media_type Type: TABLE Owner: postgres
--
CREATE TABLE "media_type" (
- "id" integer DEFAULT nextval('media_type_id_seq'::text) NOT NULL,
+ "id" integer DEFAULT nextval('media_type_id_seq'::text) NOT NULL,
"name" character varying(80) NOT NULL,
"mime_type" character varying(40) NOT NULL,
"classname" character varying(80) NOT NULL,
);
--
--- TOC Entry ID 14 (OID 28932)
+-- TOC Entry ID 14 (OID 20016)
--
-- Name: img_format Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 15 (OID 28946)
+-- TOC Entry ID 15 (OID 20030)
--
-- Name: img_layout Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 16 (OID 28957)
+-- TOC Entry ID 16 (OID 20041)
--
-- Name: img_type Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 17 (OID 28968)
+-- TOC Entry ID 17 (OID 20052)
--
-- Name: img_color Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 18 (OID 28979)
+-- TOC Entry ID 18 (OID 20063)
--
-- Name: language Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 19 (OID 28994)
+-- TOC Entry ID 19 (OID 20078)
--
-- Name: rights Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 21 (OID 29043)
+-- TOC Entry ID 20 (OID 20108)
--
-- Name: feature Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 22 (OID 29078)
+-- TOC Entry ID 21 (OID 20143)
--
-- Name: webdb_users Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 23 (OID 29096)
+-- TOC Entry ID 22 (OID 20161)
--
-- Name: content_x_topic Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 24 (OID 29107)
+-- TOC Entry ID 23 (OID 20172)
--
-- Name: article_type Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 25 (OID 29118)
+-- TOC Entry ID 24 (OID 20183)
--
-- Name: topic Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 26 (OID 29154)
+-- TOC Entry ID 25 (OID 20219)
--
-- Name: comment Type: TABLE Owner: postgres
--
"to_language" integer DEFAULT '0' NOT NULL,
"to_media" integer NOT NULL,
"to_comment_status" smallint,
- "checksum" integer,
+ "checksum" integer,
Constraint "comment_pkey" Primary Key ("id")
);
-CREATE INDEX comment_checksum_index ON comment (checksum);
-
--
--- TOC Entry ID 27 (OID 29196)
+-- TOC Entry ID 26 (OID 20266)
--
-- Name: media Type: TABLE Owner: postgres
--
"subtitle" character varying(30),
"edittitle" character varying(30),
"date" character(8) NOT NULL,
--- "place" character varying(80),
"creator" character varying(80),
"creator_main_url" character varying(255),
"creator_email" character varying(80),
);
--
--- TOC Entry ID 28 (OID 29257)
---
--- Name: images Type: TABLE Owner: postgres
---
-
---
--- TOC Entry ID 32 (OID 29446)
+-- TOC Entry ID 27 (OID 20326)
--
-- Name: uploaded_media Type: TABLE Owner: postgres
--
CREATE TABLE "uploaded_media" (
"icon_is_produced" boolean DEFAULT '0' NOT NULL,
"icon_path" character varying(255),
- "size" integer
-) INHERITS ("media");
+ "size" integer
+)
+INHERITS ("media");
+
+--
+-- TOC Entry ID 28 (OID 20392)
+--
+-- Name: images Type: TABLE Owner: postgres
+--
CREATE TABLE "images" (
"image_data" oid,
INHERITS ("uploaded_media");
--
--- TOC Entry ID 29 (OID 29338)
+-- TOC Entry ID 29 (OID 20474)
--
-- Name: content Type: TABLE Owner: postgres
--
"link_url" character varying(255),
"is_html" boolean DEFAULT '0' NOT NULL,
"is_stored" boolean DEFAULT '0' NOT NULL,
--- "is_mail_sent" boolean DEFAULT '1' NOT NULL,
--- "is_digest_sent" boolean DEFAULT '1' NOT NULL,
"to_article_type" smallint DEFAULT '0' NOT NULL,
"to_content" integer,
"checksum" integer
)
INHERITS ("media");
-CREATE INDEX content_checksum_index ON content (checksum);
-
--
--- TOC Entry ID 30 (OID 29418)
+-- TOC Entry ID 30 (OID 20549)
--
-- Name: breaking Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 31 (OID 29431)
+-- TOC Entry ID 31 (OID 20562)
--
-- Name: messages Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 33 (OID 30026)
+-- TOC Entry ID 32 (OID 20577)
--
-- Name: comment_status Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 34 (OID 30064)
+-- TOC Entry ID 33 (OID 20588)
--
-- Name: content_x_media Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 11 (OID 32812)
+-- TOC Entry ID 11 (OID 20599)
--
-- Name: links_imcs_id_seq Type: SEQUENCE Owner: postgres
--
CREATE SEQUENCE "links_imcs_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
--
--- TOC Entry ID 35 (OID 32831)
+-- TOC Entry ID 34 (OID 20618)
--
-- Name: links_imcs Type: TABLE Owner: postgres
--
);
--
--- TOC Entry ID 40 (OID 29078)
+-- TOC Entry ID 35 (OID 37215)
+--
+-- Name: audio Type: TABLE Owner: postgres
+--
+
+CREATE TABLE "audio" (
+ "audio_data" oid,
+ "kbits" smallint
+)
+INHERITS ("uploaded_media");
+
+--
+-- TOC Entry ID 36 (OID 37284)
+--
+-- Name: video Type: TABLE Owner: postgres
+--
+
+CREATE TABLE "video" (
+ "video_data" oid
+)
+INHERITS ("uploaded_media");
+
+--
+-- TOC Entry ID 37 (OID 45396)
+--
+-- Name: other_media Type: TABLE Owner: postgres
+--
+
+CREATE TABLE "other_media" (
+
+)
+INHERITS ("uploaded_media");
+
+--
+-- TOC Entry ID 40 (OID 20143)
--
-- Name: "idx_webdb_user_log_pas_is_admin" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_webdb_user_log_pas_is_admin" on "webdb_users" using btree ( "login" "varchar_ops", "password" "varchar_ops", "is_admin" "bool_ops" );
--
--- TOC Entry ID 44 (OID 29078)
+-- TOC Entry ID 41 (OID 20143)
--
-- Name: "idx_webdb_user_log_pas" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_webdb_user_log_pas" on "webdb_users" using btree ( "login" "varchar_ops", "password" "varchar_ops" );
--
--- TOC Entry ID 43 (OID 29096)
+-- TOC Entry ID 42 (OID 20161)
--
-- Name: "idx_content" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_content" on "content_x_topic" using btree ( "content_id" "int4_ops", "topic_id" "int4_ops" );
--
--- TOC Entry ID 45 (OID 29096)
+-- TOC Entry ID 43 (OID 20161)
--
-- Name: "idx_topic" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_topic" on "content_x_topic" using btree ( "topic_id" "int4_ops", "content_id" "int4_ops" );
--
--- TOC Entry ID 46 (OID 29118)
+-- TOC Entry ID 44 (OID 20183)
--
-- Name: "idx_topic_title" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_topic_title" on "topic" using btree ( "title" "varchar_ops" );
--
--- TOC Entry ID 51 (OID 29118)
+-- TOC Entry ID 45 (OID 20183)
--
-- Name: "idx_topic_id" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_topic_id" on "topic" using btree ( "id" "int4_ops" );
--
--- TOC Entry ID 36 (OID 29154)
+-- TOC Entry ID 38 (OID 20219)
+--
+-- Name: "comment_checksum_index" Type: INDEX Owner: postgres
+--
+
+CREATE INDEX "comment_checksum_index" on "comment" using btree ( "checksum" "int4_ops" );
+
+--
+-- TOC Entry ID 46 (OID 20219)
--
-- Name: "idx_comment_to_media" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_comment_to_media" on "comment" using btree ( "to_media" "int4_ops" );
--
--- TOC Entry ID 47 (OID 29257)
+
+--
+-- TOC Entry ID 59 (OID 20326)
+--
+-- Name: "idx_uploaded_media_id" Type: INDEX Owner: postgres
+--
+
+CREATE UNIQUE INDEX "idx_uploaded_media_id" on "uploaded_media" using btree ( "id" "int4_ops" );
+
+--
+-- TOC Entry ID 60 (OID 20326)
+--
+-- Name: "idx_uploaded_media_is_published" Type: INDEX Owner: postgres
+--
+
+CREATE UNIQUE INDEX "idx_uploaded_media_is_published" on "uploaded_media" using btree ( "id" "int4_ops", "is_published" "bool_ops" );
+
+--
+-- TOC Entry ID 47 (OID 20392)
--
-- Name: "idx_images_is_published__icon_i" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_images_is_published__icon_i" on "images" using btree ( "is_published" "bool_ops", "icon_is_produced" "bool_ops" );
--
--- TOC Entry ID 49 (OID 29257)
+-- TOC Entry ID 48 (OID 20392)
--
-- Name: "idx_images_id" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_images_id" on "images" using btree ( "id" "int4_ops" );
--
--- TOC Entry ID 37 (OID 29338)
+-- TOC Entry ID 39 (OID 20474)
+--
+-- Name: "content_checksum_index" Type: INDEX Owner: postgres
+--
+
+CREATE INDEX "content_checksum_index" on "content" using btree ( "checksum" "int4_ops" );
+
+--
+-- TOC Entry ID 49 (OID 20474)
--
-- Name: "idx_content_to_article_type" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_to_article_type" on "content" using btree ( "to_article_type" "int2_ops" );
--
--- TOC Entry ID 38 (OID 29338)
+-- TOC Entry ID 50 (OID 20474)
--
-- Name: "idx_content_is_produced" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_is_produced" on "content" using btree ( "is_produced" "bool_ops" );
--
--- TOC Entry ID 39 (OID 29338)
+-- TOC Entry ID 51 (OID 20474)
--
-- Name: "idx_content_is_published__to_ar" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_is_published__to_ar" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops" );
--
--- TOC Entry ID 41 (OID 29338)
+-- TOC Entry ID 52 (OID 20474)
--
-- Name: "idx_content_is_stored" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_is_stored" on "content" using btree ( "is_stored" "bool_ops" );
--
--- TOC Entry ID 42 (OID 29338)
+-- TOC Entry ID 53 (OID 20474)
--
-- Name: "idx_content_is_published__id" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_is_published__id" on "content" using btree ( "is_published" "bool_ops", "id" "int4_ops" );
--
--- TOC Entry ID 48 (OID 29338)
+-- TOC Entry ID 54 (OID 20474)
--
-- Name: "idx_content_is_pub__to_art__to_" Type: INDEX Owner: postgres
--
CREATE INDEX "idx_content_is_pub__to_art__to_" on "content" using btree ( "is_published" "bool_ops", "to_article_type" "int2_ops", "id" "int4_ops" );
--
--- TOC Entry ID 50 (OID 29338)
+-- TOC Entry ID 55 (OID 20474)
--
-- Name: "idx_content_id" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_content_id" on "content" using btree ( "id" "int4_ops" );
--
--- TOC Entry ID 52 (OID 30064)
+-- TOC Entry ID 56 (OID 20588)
--
-- Name: "idx_content_media" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_content_media" on "content_x_media" using btree ( "content_id" "int4_ops", "media_id" "int4_ops" );
--
--- TOC Entry ID 53 (OID 30064)
+-- TOC Entry ID 57 (OID 20588)
--
-- Name: "idx_media_content" Type: INDEX Owner: postgres
--
CREATE UNIQUE INDEX "idx_media_content" on "content_x_media" using btree ( "media_id" "int4_ops", "content_id" "int4_ops" );
+--
+-- TOC Entry ID 62 (OID 37215)
+--
+-- Name: "idx_audio_is_published_produced" Type: INDEX Owner: postgres
+--
+
+CREATE INDEX "idx_audio_is_published_produced" on "audio" using btree ( "is_published" "bool_ops", "is_produced" "bool_ops" );
+
+--
+-- TOC Entry ID 64 (OID 37215)
+--
+-- Name: "idx_audio_id" Type: INDEX Owner: postgres
+--
+
+CREATE UNIQUE INDEX "idx_audio_id" on "audio" using btree ( "id" "int4_ops" );
+
+--
+-- TOC Entry ID 65 (OID 37215)
+--
+-- Name: "idx_video_id" Type: INDEX Owner: postgres
+--
+
+CREATE UNIQUE INDEX "idx_video_id" on "audio" using btree ( "id" "int4_ops" );
+
+--
+-- TOC Entry ID 63 (OID 37284)
+--
+-- Name: "idx_video_is_published_produced" Type: INDEX Owner: postgres
+--
+
+CREATE INDEX "idx_video_is_published_produced" on "video" using btree ( "is_published" "bool_ops", "is_produced" "bool_ops" );
-- Selected TOC Entries:
--
--
--- Data for TOC Entry ID 2 (OID 88609)
+-- Data for TOC Entry ID 2 (OID 20000)
--
-- Name: media_type Type: TABLE DATA Owner: postgres
--
-- Disable triggers
UPDATE "pg_class" SET "reltriggers" = 0 WHERE "relname" = 'media_type';
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (2,'unknown','application/octet-stream','Generic','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (3,'jpg','image/gif','ImagesGif','Images',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (4,'mp3','audio/mp3','Mp3','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (5,'jpg','image/jpeg','ImagesJpeg','Images',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (6,'pdf','application/pdf','Generic','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (7,'mpg','video/mpeg','Video','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (8,'mov','video/quicktime','Video','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (9,'avi','video/x-msvideo','Video','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (10,'ra','audio/vnd.rn-realaudio','RealAudio','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (11,'rm','video/vnd.rn-realvideo','RealVideo','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (12,'ra','audio/x-pn-realaudio','RealAudio','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (13,'mp3','audio/x-mp3','Mp3','UploadedMedia',NULL);
-INSERT INTO "media_type" ("id","name","mime_type","classname","tablename","dcname") VALUES (14,'mp3','audio/x-mpeg','Mp3','UploadedMedia',NULL);
-
-
+INSERT INTO "media_type" VALUES (3,'jpg','image/gif','ImagesGif','Images',NULL);
+INSERT INTO "media_type" VALUES (5,'jpg','image/jpeg','ImagesJpeg','Images',NULL);
+INSERT INTO "media_type" VALUES (4,'mp3','audio/mp3','Mp3','Audio',NULL);
+INSERT INTO "media_type" VALUES (13,'mp3','audio/x-mp3','Mp3','Audio',NULL);
+INSERT INTO "media_type" VALUES (14,'mp3','audio/x-mpeg','Mp3','Audio',NULL);
+INSERT INTO "media_type" VALUES (10,'ra','audio/vnd.rn-realaudio','RealAudio','Audio',NULL);
+INSERT INTO "media_type" VALUES (12,'ra','audio/x-pn-realaudio','RealAudio','Audio',NULL);
+INSERT INTO "media_type" VALUES (11,'rm','video/vnd.rn-realvideo','RealVideo','Audio',NULL);
+INSERT INTO "media_type" VALUES (8,'mov','video/quicktime','Video','Video',NULL);
+INSERT INTO "media_type" VALUES (7,'mpg','video/mpeg','Video','Video',NULL);
+INSERT INTO "media_type" VALUES (9,'avi','video/x-msvideo','Video','Video',NULL);
+INSERT INTO "media_type" VALUES (2,'unknown','application/octet-stream','Generic','Other',NULL);
+INSERT INTO "media_type" VALUES (6,'pdf','application/pdf','Generic','Other',NULL);
-- Enable triggers
-
UPDATE pg_class SET reltriggers = (SELECT count(*) FROM pg_trigger where pg_class.oid = tgrelid) WHERE relname = 'media_type';
--
--- TOC Entry ID 1 (OID 88557)
+-- TOC Entry ID 1 (OID 19948)
--
-- Name: media_type_id_seq Type: SEQUENCE SET Owner:
--
--- /dev/null
+package mircoders.entity;
+
+import java.lang.*;
+import java.io.*;
+import java.util.*;
+import java.sql.*;
+
+/*
+ * kind of hack for postgres non-standard LargeObjects that Poolman
+ * doesn't know about. see all the casting, LargeObj stuff in getIcon, getAudio
+ * at some point when postgres has normal BLOB support, this should go.
+ */
+import org.postgresql.Connection;
+import org.postgresql.largeobject.LargeObject;
+import org.postgresql.largeobject.LargeObjectManager;
+
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+
+/**
+ * This class handles storage of audio data and meta data
+ *
+ * @author mh
+ * @version 11.11.2000
+ */
+
+
+public class EntityAudio extends EntityUploadedMedia
+{
+ public EntityAudio()
+ {
+ super();
+ }
+
+ public EntityAudio(StorageObject theStorage) {
+ this();
+ setStorage(theStorage);
+ }
+
+ //
+ // methods
+
+
+
+ public byte[] getAudio() throws StorageObjectException
+ {
+ theLog.printDebugInfo("--getaudio started");
+ java.sql.Connection con=null;Statement stmt=null;
+ byte[] img_data=null;
+
+ try {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ LargeObjectManager lom;
+ java.sql.Connection jCon;
+ stmt = con.createStatement();
+ ResultSet rs = theStorageObject.executeSql(stmt,
+ "select audio_data from audio where id="+getId());
+ jCon = ((com.codestudio.sql.PoolManConnectionHandle)con)
+ .getNativeConnection();
+ lom = ((org.postgresql.Connection)jCon).getLargeObjectAPI();
+ if(rs!=null) {
+ if (rs.next()) {
+ LargeObject lob = lom.open(rs.getInt(1));
+ img_data = lob.read(lob.size());
+ lob.close();
+ //img_data = rs.getBytes(1);
+ }
+ rs.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printError("EntityAudio -- getAudio failed"+e.toString());
+ throwStorageObjectException(e, "EntityAudio -- getAudio failed: ");
+ }
+ finally {
+ try {
+ con.setAutoCommit(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printError(
+ "EntityAudio -- getAudio reseting transaction mode failed"
+ +e.toString());
+ }
+ theStorageObject.freeConnection(con,stmt);
+ }
+
+ return img_data;
+ }
+
+ public void setAudio(byte[] audioData, String audioType)
+ throws StorageObjectException {
+
+ if (audioData!=null) {
+ java.sql.Connection con=null;PreparedStatement pstmt=null;
+ try {
+
+ theLog.printDebugInfo("settaudio :: making internal representation of audio");
+ theLog.printDebugInfo("settaudio :: made internal representation of audio");
+ theLog.printDebugInfo("settaudio :: getAudio");
+
+ if ( audioData!=null) {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ theLog.printDebugInfo("settaudio :: trying to insert audio");
+
+ // setting values
+ pstmt.setBytes(1, audioData);
+ String sql="update content set is_produced='0' where to_media="+getId();
+ pstmt = con.prepareStatement(sql);
+ pstmt.executeUpdate();
+ }
+ }
+ catch (Exception e) {throwStorageObjectException(e, "settaudio :: setAudio gescheitert: ");}
+ finally {
+ try { if (con!=null) con.setAutoCommit(true); } catch (Exception e) {;}
+ theStorageObject.freeConnection(con,pstmt); }
+ }
+ }
+
+ public void update() throws StorageObjectException {
+ super.update();
+ try {
+ theStorageObject.executeUpdate("update content set is_produced='0' where to_media="+getId());
+ } catch (SQLException e) {
+ throwStorageObjectException(e, "EntityAudio :: update :: failed!! ");
+ }
+ }
+
+ public void setValues(HashMap theStringValues)
+ {
+ if (theStringValues != null) {
+ if (!theStringValues.containsKey("is_published"))
+ theStringValues.put("is_published","0");
+ }
+ super.setValues(theStringValues);
+ }
+
+}
throw new TemplateModelException(ex.toString());
}
}
- if (key.equals("to_media_content")) {
+ if (key.equals("to_media_images")) {
try {
- /** @todo why this loggin to System.err and not
- * theLog.printDebugInfo() ? / rk */
- System.err.println("ASKED FOR MEDIA");
- SimpleList t = getUploadedMediaForContent();
- //SimpleHash o = t.next();
-
- if (t == null) {
- System.err.println("NULL -- LIST "+this.getId());
- } else {
- SimpleHash o = (SimpleHash)t.next();
- System.err.println("SCALAR: "+o.get("url"));
- }
-
- t.rewind();
- //return getUploadedMediaForContent();
- return t;
+ return getImagesForContent();
}
catch (Exception ex) {
- System.err.println("ASKED EXCE");
- theLog.printWarning("-- getUploadedMediaForContent: could not fetch data " + ex.toString());
+ theLog.printWarning("-- getImagesForContent: could not fetch data " + ex.toString());
throw new TemplateModelException(ex.toString());
}
}
- else if (key.equals("to_media_icon")) {
+ if (key.equals("to_media_audio")) {
try {
- return getUploadedMediaForNewswire();
+ return getAudioForContent();
}
catch (Exception ex) {
- theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString());
+ theLog.printWarning("-- getAudioForContent: could not fetch data " + ex.toString());
+ throw new TemplateModelException(ex.toString());
+ }
+ }
+ if (key.equals("to_media_video")) {
+ try {
+ return getVideoForContent();
+ }
+ catch (Exception ex) {
+ theLog.printWarning("-- getVideoForContent: could not fetch data " + ex.toString());
throw new TemplateModelException(ex.toString());
}
}
- else if (key.equals("to_media_list")) {
+ if (key.equals("to_media_other")) {
try {
- return getUploadedMediaForList();
+ return getOtherMediaForContent();
}
catch (Exception ex) {
- theLog.printWarning("-- getUploadedMediaForList: could not fetch data " + ex.toString());
+ theLog.printWarning("-- getOtherMediaForContent: could not fetch data " + ex.toString());
+ throw new TemplateModelException(ex.toString());
+ }
+ }
+ else if (key.equals("to_media_icon")) {
+ try {
+ return getUploadedMediaForNewswire();
+ }
+ catch (Exception ex) {
+ theLog.printWarning("-- getUploadedMediaForNewswire: could not fetch data " + ex.toString());
throw new TemplateModelException(ex.toString());
}
}
return ((DatabaseContent)theStorageObject).getComments(this);
}
+ // @todo this needs to optimized. expensive SQL
private SimpleHash getUploadedMediaForNewswire()
throws StorageObjectException, TemplateModelException
{
// return to_media_icons
String tinyIcon = null, iconAlt = null;
MirMedia mediaHandler = null;
- Database mediaStorage;
- EntityMedia uploadedMedia;
+ EntityUploadedMedia uploadedMedia;
Entity mediaType;
SimpleHash returnHash = new SimpleHash();
if (upMediaEntityList!=null && upMediaEntityList.getCount()>=1) {
for (int n=0; n < upMediaEntityList.size();n++) {
- uploadedMedia = (EntityMedia)upMediaEntityList.elementAt(n);
+ uploadedMedia = (EntityUploadedMedia)upMediaEntityList.elementAt(n);
mediaType = uploadedMedia.getMediaType();
try {
- // ############### TODO: merge these and the getURL call into one
- // getURL helper call that just takes the Entity as a parameter
- // along with media_type
mediaHandler = MediaHelper.getHandler( mediaType );
- mediaStorage = MediaHelper.getStorage( mediaType,
- "mircoders.storage.Database");
} catch (MirMediaException ex) {
throw new TemplateModelException(ex.toString());
}
tinyIcon = MirConfig.getProp("Producer.Icon.TinyImage");
iconAlt = "Image";
}
-
// uploadedMedia Entity list is empty.
// we only have text
} else {
tinyIcon = MirConfig.getProp("Producer.Icon.TinyText");
iconAlt = "Text";
}
-
returnHash.put("tiny_icon", mirconf_imageRoot+"/"+tinyIcon);
returnHash.put("icon_alt", iconAlt);
return returnHash;
}
- private SimpleHash getUploadedMediaForList()
+ //######## @todo all of the following getBlahForContent should have
+ // and optimized version where LIMIT=1 sql for list view.
+ private SimpleList getImagesForContent()
throws StorageObjectException, TemplateModelException
{
- SimpleHash returnHash = new SimpleHash();
- //media to content
- EntityList currentMediaList = DatabaseContentToMedia.getInstance().getUploadedMedia(this);
- if (currentMediaList!=null && currentMediaList.getCount()>=1) {
- SimpleList mediaListAudio = new SimpleList();
- SimpleList mediaListImages = new SimpleList();
- SimpleList mediaListVideo = new SimpleList();
- SimpleList mediaListOther = new SimpleList();
- Entity upMedia;
- Entity mediaType;
- SimpleHash upMediaSimpleHash;
- MirMedia mediaHandler=null;
- Database mediaStorage=null;
-
- for (int n=0; n < currentMediaList.size();n++) {
- upMedia = currentMediaList.elementAt(n);
- //upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
- mediaType = ((EntityMedia)upMedia).getMediaType();
-
- try {
- // ############### TODO: merge these and the getURL call into one
- // getURL helper call that just takes the Entity as a parameter
- // along with media_type
- mediaHandler = MediaHelper.getHandler( mediaType );
- mediaStorage = MediaHelper.getStorage( mediaType,
- "mircoders.storage.Database");
- } catch (MirMediaException ex) {
- throw new TemplateModelException(ex.toString());
- }
+ return HTMLTemplateProcessor.makeSimpleList(
+ DatabaseContentToMedia.getInstance().getImages(this) );
+ }
- // ################ TODO: see getUploadedMediaForContent
- //we most likely need further info
- upMedia = mediaStorage.selectById(upMedia.getId());
-
- // putting media in the apropriate list container
- if (upMedia.getValue("is_published").equals("1")) {
- if (mediaHandler.isImage()) {
- //mediaListImages.add(upMediaSimpleHash);
- mediaListImages.add(upMedia);
- } else if (mediaHandler.isAudio()) {
- //mediaListAudio.add(upMediaSimpleHash);
- mediaListAudio.add(upMedia);
- } else if (mediaHandler.isVideo()) {
- //mediaListVideo.add(upMediaSimpleHash);
- mediaListVideo.add(upMedia);
- } else {
- //mediaListOther.add(upMediaSimpleHash);
- mediaListOther.add(upMedia);
- }
- } //end if is_published
- } //end for
- returnHash.put("media_audio", mediaListAudio);
- returnHash.put("media_images", mediaListImages);
- returnHash.put("media_video", mediaListVideo);
- returnHash.put("media_other", mediaListOther);
- } //end if currentMediaList != null
- return returnHash;
- }
+ private SimpleList getAudioForContent()
+ throws StorageObjectException, TemplateModelException
+ {
+ return HTMLTemplateProcessor.makeSimpleList(
+ DatabaseContentToMedia.getInstance().getAudio(this) );
+ }
- private SimpleList getUploadedMediaForContent()
+ private SimpleList getVideoForContent()
throws StorageObjectException, TemplateModelException
{
- /** @todo all logic related to uploaded media should be moved
- * to EntityUploadedMedia, selection should just take place
- * on published media! .. will fix it later / rk
- *
- * ok i moved it... let's see what happens...
- *
- * */
+ return HTMLTemplateProcessor.makeSimpleList(
+ DatabaseContentToMedia.getInstance().getVideo(this) );
+ }
+ private SimpleList getOtherMediaForContent()
+ throws StorageObjectException, TemplateModelException
+ {
return HTMLTemplateProcessor.makeSimpleList(
- DatabaseContentToMedia.getInstance().getUploadedMedia(this) );
+ DatabaseContentToMedia.getInstance().getOther(this) );
}
}
*/
-public class EntityImages extends Entity
+public class EntityImages extends EntityUploadedMedia
{
public EntityImages()
{
--- /dev/null
+package mircoders.entity;
+
+import java.lang.*;
+import java.io.*;
+import java.util.*;
+import java.sql.*;
+
+/*
+ * kind of hack for postgres non-standard LargeObjects that Poolman
+ * doesn't know about. see all the casting, LargeObj stuff in getIcon, getOther
+ * at some point when postgres has normal BLOB support, this should go.
+ */
+import org.postgresql.Connection;
+import org.postgresql.largeobject.LargeObject;
+import org.postgresql.largeobject.LargeObjectManager;
+
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+
+/**
+ * This class handles storage of other data and meta data
+ *
+ * @author mh
+ * @version 11.11.2000
+ */
+
+
+public class EntityOther extends EntityUploadedMedia
+{
+ public EntityOther()
+ {
+ super();
+ }
+
+ public EntityOther(StorageObject theStorage) {
+ this();
+ setStorage(theStorage);
+ }
+
+ //
+ // methods
+
+
+
+ public byte[] getOther() throws StorageObjectException
+ {
+ theLog.printDebugInfo("--getother started");
+ java.sql.Connection con=null;Statement stmt=null;
+ byte[] img_data=null;
+
+ try {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ LargeObjectManager lom;
+ java.sql.Connection jCon;
+ stmt = con.createStatement();
+ ResultSet rs = theStorageObject.executeSql(stmt,
+ "select other_data from other where id="+getId());
+ jCon = ((com.codestudio.sql.PoolManConnectionHandle)con)
+ .getNativeConnection();
+ lom = ((org.postgresql.Connection)jCon).getLargeObjectAPI();
+ if(rs!=null) {
+ if (rs.next()) {
+ LargeObject lob = lom.open(rs.getInt(1));
+ img_data = lob.read(lob.size());
+ lob.close();
+ //img_data = rs.getBytes(1);
+ }
+ rs.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printError("EntityOther -- getOther failed"+e.toString());
+ throwStorageObjectException(e, "EntityOther -- getOther failed: ");
+ }
+ finally {
+ try {
+ con.setAutoCommit(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printError(
+ "EntityOther -- getOther reseting transaction mode failed"
+ +e.toString());
+ }
+ theStorageObject.freeConnection(con,stmt);
+ }
+
+ return img_data;
+ }
+
+ public void setOther(byte[] otherData, String otherType)
+ throws StorageObjectException {
+
+ if (otherData!=null) {
+ java.sql.Connection con=null;PreparedStatement pstmt=null;
+ try {
+
+ theLog.printDebugInfo("settother :: making internal representation of other");
+ theLog.printDebugInfo("settother :: made internal representation of other");
+ theLog.printDebugInfo("settother :: getOther");
+
+ if ( otherData!=null) {
+ con = theStorageObject.getPooledCon();
+ con.setAutoCommit(false);
+ theLog.printDebugInfo("settother :: trying to insert other");
+
+ // setting values
+ pstmt.setBytes(1, otherData);
+ String sql="update content set is_produced='0' where to_media="+getId();
+ pstmt = con.prepareStatement(sql);
+ pstmt.executeUpdate();
+ }
+ }
+ catch (Exception e) {throwStorageObjectException(e, "settother :: setOther gescheitert: ");}
+ finally {
+ try { if (con!=null) con.setAutoCommit(true); } catch (Exception e) {;}
+ theStorageObject.freeConnection(con,pstmt); }
+ }
+ }
+
+ public void update() throws StorageObjectException {
+ super.update();
+ try {
+ theStorageObject.executeUpdate("update content set is_produced='0' where to_media="+getId());
+ } catch (SQLException e) {
+ throwStorageObjectException(e, "EntityOther :: update :: failed!! ");
+ }
+ }
+
+ public void setValues(HashMap theStringValues)
+ {
+ if (theStringValues != null) {
+ if (!theStringValues.containsKey("is_published"))
+ theStringValues.put("is_published","0");
+ }
+ super.setValues(theStringValues);
+ }
+
+}
public Entity getMediaType() throws StorageObjectException {
Entity ent = null;
try {
- ent = ((DatabaseUploadedMedia)theStorageObject).getMediaType(this);
+ ent = DatabaseUploadedMedia.getInstance().getMediaType(this);
} catch (StorageObjectException e) {
throwStorageObjectException(e, "get MediaType failed -- ");
}
{
String returnValue=null;
+ if (key == null )
+ theLog.printError("GOD DAMN!-> null");
+
+
if (key!=null) {
if (key.equals("url"))
returnValue=getUrl();
+ else if (key.equals("list"))
+ returnValue=getListView();
else
returnValue=super.getValue(key);
}
private String getUrl()
{
MirMedia mediaHandler=null;
- Database mediaStorage=null;
Entity mediaType=null;
try {
mediaType = getMediaType();
mediaHandler = MediaHelper.getHandler( mediaType );
- mediaStorage = MediaHelper.getStorage( mediaType, "mircoders.storage.Database");
return mediaHandler.getURL(this, mediaType);
} catch (Exception ex) {
- theLog.printWarning("-- getUrl: could not fetch data " + ex.toString());
+ theLog.printWarning("-- getUrl: could not fetch data "
+ + this.getClass().toString()+" "+ ex.toString());
+ }
+ return null;
+ }
+
+ private String getListView()
+ {
+ MirMedia mediaHandler=null;
+ Entity mediaType=null;
+
+ try {
+ mediaType = getMediaType();
+ mediaHandler = MediaHelper.getHandler( mediaType );
+ return mediaHandler.getListView(this, mediaType);
+ } catch (Exception ex) {
+ theLog.printWarning("-- getUrl: could not fetch data "
+ + this.getClass().toString()+" "+ ex.toString());
}
return null;
}
*/
-public class EntityVideo extends Entity
+public class EntityVideo extends EntityUploadedMedia
{
public EntityVideo()
--- /dev/null
+package mircoders.storage;
+
+import java.lang.*;
+import java.sql.*;
+import java.io.*;
+import java.util.*;
+
+import freemarker.template.*;
+
+import mir.storage.*;
+import mir.entity.*;
+import mir.misc.*;
+
+/**
+ * <b>Diese Klasse implementiert die Datenbankverbindung zur MetaObjekt-Tabelle
+ *
+ *
+ */
+
+public class DatabaseAudio extends Database implements StorageObject{
+
+ private static DatabaseAudio instance;
+ private static SimpleList publisherPopupData;
+
+ public static DatabaseAudio getInstance() throws StorageObjectException
+ {
+ if (instance == null) {
+ instance = new DatabaseAudio();
+ instance.myselfDatabase = instance;
+ }
+ return instance;
+ }
+
+ private DatabaseAudio() throws StorageObjectException
+ {
+ super();
+ this.hasTimestamp = true;
+ this.theTable="audio";
+ this.theCoreTable="media";
+ try {
+ this.theEntityClass = Class.forName("mircoders.entity.EntityAudio");
+ }
+ catch (Exception e) { throw new StorageObjectException(e.toString()); }
+ }
+
+ public SimpleList getPopupData() throws StorageObjectException {
+ return getPopupData("title",true);
+ }
+
+ public void update(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+
+ super.update(theEntity);
+ }
+
+
+ public String insert(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+ return super.insert(theEntity);
+ }
+
+ // initialisierungen aus den statischen Tabellen
+
+}
}
/**
+ * get all the audio belonging to a content entity
+ *
+ */
+ public EntityList getAudio(EntityContent content)
+ throws StorageObjectException {
+ EntityList returnList=null;
+ if (content != null) {
+ // get all to_topic from media_x_topic
+ String id = content.getId();
+ //this is not supported by mysql
+ String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
+
+ try {
+ returnList = DatabaseAudio.getInstance().selectByWhereClause(subselect,-1);
+ } catch (Exception e) {
+ theLog.printDebugInfo("-- get audio failed " + e.toString());
+ throw new StorageObjectException("-- get audio failed " + e.toString());
+ }
+ }
+ return returnList;
+ }
+
+ /**
+ * get all the video belonging to a content entity
+ *
+ */
+ public EntityList getVideo(EntityContent content)
+ throws StorageObjectException {
+ EntityList returnList=null;
+ if (content != null) {
+ // get all to_topic from media_x_topic
+ String id = content.getId();
+ //this is not supported by mysql
+ String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
+
+ try {
+ returnList = DatabaseVideo.getInstance().selectByWhereClause(subselect,-1);
+ } catch (Exception e) {
+ theLog.printDebugInfo("-- get video failed " + e.toString());
+ throw new StorageObjectException("-- get video failed " + e.toString());
+ }
+ }
+ return returnList;
+ }
+
+ /**
* get all the images belonging to a content entity
*
*/
/**
- * get all the uploaded Media belonging to a content entity
+ * get all the uploaded/other Media belonging to a content entity
+ *
+ */
+ public EntityList getOther(EntityContent content)
+ throws StorageObjectException
+ {
+ /** @todo this should only fetch published media / rk */
+
+ EntityList returnList=null;
+ if (content != null) {
+ // get all to_topic from media_x_topic
+ String id = content.getId();
+ //this is not supported by mysql
+ String subselect = "id in (select media_id from " + theTable +
+ " where content_id=" + id+")";
+
+ try {
+ returnList = DatabaseOther.getInstance().selectByWhereClause(subselect,
+ "id");
+ } catch (Exception e) {
+ e.printStackTrace();
+ theLog.printDebugInfo("-- get Other failed " + e.toString());
+ throw new StorageObjectException("-- get Other failed "
+ + e.toString());
+ }
+ }
+ return returnList;
+ }
+
+ /**
+ * get all the uploaded/other Media belonging to a content entity
*
*/
public EntityList getUploadedMedia(EntityContent content)
// get all to_topic from media_x_topic
String id = content.getId();
//this is not supported by mysql
- String subselect = "id in (select media_id from " + theTable + " where content_id=" + id+")";
+ String subselect = "id in (select media_id from " + theTable +
+ " where content_id=" + id+")";
try {
- returnList = DatabaseMedia.getInstance().selectByWhereClause(subselect,"id");
+ returnList = DatabaseUploadedMedia.getInstance().selectByWhereClause(subselect,
+ "id");
} catch (Exception e) {
e.printStackTrace();
theLog.printDebugInfo("-- get uploadedMedia failed " + e.toString());
- throw new StorageObjectException("-- get uploadedMedia failed " + e.toString());
+ throw new StorageObjectException("-- get uploadedMedia failed "
+ + e.toString());
}
}
return returnList;
super();
//this.cache = new DatabaseCache(100);
this.hasTimestamp = false;
- this.theTable="media*";
- relationMediaType = new EntityRelation("to_media_type", "id", DatabaseMediaType.getInstance(), EntityRelation.TO_ONE);
+ this.theTable="media";
+ relationMediaType = new EntityRelation("to_media_type", "id",
+ DatabaseMediaType.getInstance(), EntityRelation.TO_ONE);
try {
this.theEntityClass = Class.forName("mircoders.entity.EntityMedia");
}
type = relationMediaType.getOne(ent);
}
catch (StorageObjectException e) {
- theLog.printError("DatabaseUploadedMedia :: failed to get media_type");
- throw new StorageObjectException("DatabaseUploadedMedia :"+e.toString());
+ theLog.printError("DatabaseMedia :: failed to get media_type");
+ throw new StorageObjectException("DatabaseMedia :"+e.toString());
}
return type;
}
--- /dev/null
+package mircoders.storage;
+
+import java.lang.*;
+import java.sql.*;
+import java.io.*;
+import java.util.*;
+
+import freemarker.template.*;
+
+import mir.storage.*;
+import mir.entity.*;
+import mir.misc.*;
+
+/**
+ * <b>Diese Klasse implementiert die Datenbankverbindung zur MetaObjekt-Tabelle
+ *
+ *
+ */
+
+public class DatabaseOther extends Database implements StorageObject{
+
+ private static DatabaseOther instance;
+ private static SimpleList publisherPopupData;
+
+ public static DatabaseOther getInstance() throws StorageObjectException
+ {
+ if (instance == null) {
+ instance = new DatabaseOther();
+ instance.myselfDatabase = instance;
+ }
+ return instance;
+ }
+
+ private DatabaseOther() throws StorageObjectException
+ {
+ super();
+ this.hasTimestamp = true;
+ this.theTable="other_media";
+ this.theCoreTable="media";
+ try {
+ this.theEntityClass = Class.forName("mircoders.entity.EntityOther");
+ }
+ catch (Exception e) { throw new StorageObjectException(e.toString()); }
+ }
+
+ public SimpleList getPopupData() throws StorageObjectException {
+ return getPopupData("title",true);
+ }
+
+ public void update(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+
+ super.update(theEntity);
+ }
+
+
+ public String insert(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+ return super.insert(theEntity);
+ }
+
+ // initialisierungen aus den statischen Tabellen
+
+}
/**
- * returns the comments that belong to the article (via entityrelation)
+ * returns the media_type that belongs to the media item (via entityrelation)
* where db-flag is_published is true
*/
public Entity getMediaType(Entity ent) throws StorageObjectException {
--- /dev/null
+package mircoders.storage;
+
+import java.lang.*;
+import java.sql.*;
+import java.io.*;
+import java.util.*;
+
+import freemarker.template.*;
+
+import mir.storage.*;
+import mir.entity.*;
+import mir.misc.*;
+
+/**
+ * <b>Diese Klasse implementiert die Datenbankverbindung zur MetaObjekt-Tabelle
+ *
+ *
+ */
+
+public class DatabaseVideo extends Database implements StorageObject{
+
+ private static DatabaseVideo instance;
+ private static SimpleList publisherPopupData;
+
+ public static DatabaseVideo getInstance() throws StorageObjectException
+ {
+ if (instance == null) {
+ instance = new DatabaseVideo();
+ instance.myselfDatabase = instance;
+ }
+ return instance;
+ }
+
+ private DatabaseVideo() throws StorageObjectException
+ {
+ super();
+ this.hasTimestamp = true;
+ this.theTable="video";
+ this.theCoreTable="media";
+ try {
+ this.theEntityClass = Class.forName("mircoders.entity.EntityVideo");
+ }
+ catch (Exception e) { throw new StorageObjectException(e.toString()); }
+ }
+
+ public SimpleList getPopupData() throws StorageObjectException {
+ return getPopupData("title",true);
+ }
+
+ public void update(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+
+ super.update(theEntity);
+ }
+
+
+ public String insert(Entity theEntity) throws StorageObjectException
+ {
+ String date = theEntity.getValue("date");
+ if (date==null){
+ date = StringUtil.date2webdbDate(new GregorianCalendar());
+ theEntity.setValueForProperty("date",date);
+ }
+ return super.insert(theEntity);
+ }
+
+}
+++ /dev/null
-package mircoders.storage;
-
-import java.lang.*;
-import java.sql.*;
-import java.io.*;
-import java.util.*;
-
-import freemarker.template.*;
-
-import mir.storage.*;
-import mir.entity.*;
-import mir.misc.*;
-
-/**
- * <b>Diese Klasse implementiert die Datenbankverbindung zur MetaObjekt-Tabelle
- *
- *
- */
-
-public class DatabaseVideos extends Database implements StorageObject{
-
- private static DatabaseVideos instance;
- private static SimpleList publisherPopupData;
-
- public static DatabaseVideos getInstance() throws StorageObjectException
- {
- if (instance == null) {
- instance = new DatabaseVideos();
- instance.myselfDatabase = instance;
- }
- return instance;
- }
-
- private DatabaseVideos() throws StorageObjectException
- {
- super();
- this.hasTimestamp = true;
- this.theTable="videos";
- this.theCoreTable="media";
- try {
- this.theEntityClass = Class.forName("mircoders.entity.EntityVideo");
- }
- catch (Exception e) { throw new StorageObjectException(e.toString()); }
- }
-
- public SimpleList getPopupData() throws StorageObjectException {
- return getPopupData("title",true);
- }
-
- public void update(Entity theEntity) throws StorageObjectException
- {
- String date = theEntity.getValue("date");
- if (date==null){
- date = StringUtil.date2webdbDate(new GregorianCalendar());
- theEntity.setValueForProperty("date",date);
- }
-
- super.update(theEntity);
- }
-
-
- public String insert(Entity theEntity) throws StorageObjectException
- {
- theEntity.setValueForProperty("to_media_type","3");
- String date = theEntity.getValue("date");
- if (date==null){
- date = StringUtil.date2webdbDate(new GregorianCalendar());
- theEntity.setValueForProperty("date",date);
- }
- return super.insert(theEntity);
- }
-
-}
<h4><i>${creator}, ${webdb_create_formatted}</i></h4>
<p><b>${description}</b>
<!-- media -->
- <list to_media_content as media>
- <p>
- <!-- <if media && media["is_published"]=="1"> -->
+ ${to_media_audio[0]["url"]}
+ <foreach media in to_media_audio>
+ <p> AU
+ ${media["url"]}
+ </p>
+ </foreach>
+ <list to_media_video as media>
+ <p> V
+ <if media && media["is_published"]=="1">
+ ${media["url"]}
+ </if>
+ </p>
+ </list>
+ <list to_media_other as media>
+ <p> O
+ <if media && media["is_published"]=="1">
+ ${media["url"]}
+ </if>
+ </p>
+ </list>
+ <list to_media_images as media>
+ <p> I
+ <if media && media["is_published"]=="1">
${media["url"]}
- <!--</if>-->
+ </if>
</p>
</list>
<!-- media -->
<h4><i>${i.creator}, ${i.webdb_create_formatted}</i></h4>
<p>
<if i.to_media_audio && i.to_media_audio[0]["is_published"]=="1">
- ${i.to_media_audio[0]["url"]}
+ ${i.to_media_audio[0]["list"]}
</if>
<if i.to_media_video && i.to_media_video[0]["is_published"]=="1">
- ${i.to_media_video[0]["url"]}
+ ${i.to_media_video[0]["list"]}
</if>
<if i.to_media_other && i.to_media_other[0]["is_published"]=="1">
- ${i.to_media_other[0]["url"]}
+ ${i.to_media_other[0]["list"]}
</if>
<p>
<if i.to_media_images && i.to_media_images[0]["is_published"]=="1">
- ${i.to_media_images[0]["url"]}
+ ${i.to_media_images[0]["list"]}
</if>
${i.description}</p>
<p align="right">[<a href="${config.docroot}${i.publish_path}${i.id}.shtml">read</a>]</p>
<h4><i>${s.creator}, ${s.webdb_create_formatted}</i></h4>
<p>
<if s.to_media_audio && s.to_media_audio[0]["is_published"]=="1">
- ${s.to_media_audio[0]["url"]}
+ ${s.to_media_audio[0]["list"]}
</if>
<if s.to_media_video && s.to_media_video[0]["is_published"]=="1">
- ${s.to_media_video[0]["url"]}
+ ${s.to_media_video[0]["list"]}
</if>
<if s.to_media_other && s.to_media_other[0]["is_published"]=="1">
- ${s.to_media_other[0]["url"]}
+ ${s.to_media_other[0]["list"]}
</if>
<p>
<if s.to_media_images && s.to_media_images[0]["is_published"]=="1">
- ${s.to_media_images[0]["url"]}
+ ${s.to_media_images[0]["list"]}
</if>
${s.description} </p>
<p align="right">[<a href="${config.docroot}${s.publish_path}${s.id}.shtml">read</a>]</p>
<h4><i>${i.creator}, ${i.webdb_create_formatted}</i></h4>
<p>
<if i.to_media_audio && i.to_media_audio[0]["is_published"]=="1">
- ${i.to_media_audio[0]["url"]}
+ ${i.to_media_audio[0]["list"]}
</if>
<if i.to_media_video && i.to_media_video[0]["is_published"]=="1">
- ${i.to_media_video[0]["url"]}
+ ${i.to_media_video[0]["list"]}
</if>
<if i.to_media_other && i.to_media_other[0]["is_published"]=="1">
- ${i.to_media_other[0]["url"]}
+ ${i.to_media_other[0]["list"]}
</if>
<p>
<if i.to_media_images && i.to_media_images[0]["is_published"]=="1">
- ${i.to_media_images[0]["url"]}
+ ${i.to_media_images[0]["list"]}
</if>
${i.description} </p>
<p align="right">[<a href="${config.docroot}${i.publish_path}${i.id}.shtml">read</a>]</p>
<!-- newswire -->
<p>
<list newswire as n>
- <img alt=${n.icon_alt} border="0" height="10"
-src="${n.tiny_icon}" width="12">
+ <img alt=${n.to_media_icon["icon_alt"]} border="0" height="10"
+src="${n.to_media_icon["tiny_icon"]}" width="12">
<a href="${config.docroot}${n.publish_path}${n.id}.shtml"><b>${n.title}</b></a><br>
<font size="-2"><b></b>${n.webdb_create_formatted}</font><br>
<br>
<h4><i>${special.creator}, ${special.webdb_create_formatted}</i></h4>
<p>
<if special.to_media_audio && special.to_media_audio[0]["is_published"]=="1">
- ${special.to_media_audio[0]["url"]}
+ ${special.to_media_audio[0]["list"]}
</if>
<if special.to_media_video && special.to_media_video[0]["is_published"]=="1">
- ${special.to_media_video[0]["url"]}
+ ${special.to_media_video[0]["list"]}
</if>
<if special.to_media_other && special.to_media_other[0]["is_published"]=="1">
- ${special.to_media_other[0]["url"]}
+ ${special.to_media_other[0]["list"]}
</if>
<p>
<if special.to_media_images && special.to_media_images[0]["is_published"]=="1">
- ${special.to_media_images[0]["url"]}
+ ${special.to_media_images[0]["list"]}
</if>
${special.description} </p>
<p align="right">[<a href="${config.docroot}${special.publish_path}${special.id}.shtml">read</a>]</p>
<h4><i>${i.creator}, ${i.webdb_create_formatted}</i></h4>
<p>
<if i.to_media_audio && i.to_media_audio[0]["is_published"]=="1">
- ${i.to_media_audio[0]["url"]}
+ ${i.to_media_audio[0]["list"]}
</if>
<if i.to_media_video && i.to_media_video[0]["is_published"]=="1">
- ${i.to_media_video[0]["url"]}
+ ${i.to_media_video[0]["list"]}
</if>
<if i.to_media_other && i.to_media_other[0]["is_published"]=="1">
- ${i.to_media_other[0]["url"]}
+ ${i.to_media_other[0]["list"]}
</if>
<p>
<if i.to_media_images && i.to_media_images[0]["is_published"]=="1">
- ${i.to_media_images[0]["url"]}
+ ${i.to_media_images[0]["list"]}
</if>
${i.description}</p>
<p align="right">[<a href="${config.docroot}${i.publish_path}${i.id}.shtml">read</a>]</p>