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 class ProducerTopics extends ProducerList {
- public String where;
-
- public void setAdditional(String key, TemplateModel value) {
- additional.put(key,value);
- }
+ public String where;
+ String currentMediaId;
+ EntityList upMediaEntityList;
+ EntityList imageEntityList;
+ EntityList currentMediaList;
+ Entity mediaType;
+ EntityMedia uploadedMedia;
+ Class mediaHandlerClass=null;
+ MirMedia mediaHandler=null;
+ String mediaHandlerName=null;
+ Database mediaStorage=null;
+ String tinyIcon;
+ String iconAlt;
+
+ public void setAdditional(String key, TemplateModel value) {
+ additional.put(key,value);
+ }
public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync, String id)
throws StorageObjectException, ModuleException {
handle(htmlout,user,force,sync);
}
- public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
- throws StorageObjectException, ModuleException {
+ public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
+ throws StorageObjectException, ModuleException {
- orderBy="date desc, webdb_create desc";
- listTemplate = MirConfig.getProp("Producer.TopicList.Template");
+ orderBy="date desc, webdb_create desc";
+ listTemplate = MirConfig.getProp("Producer.TopicList.Template");
EntityList topicsEntityList;
if(where==null){
} else {
topicsEntityList = topicsModule.getByWhereClause(where,"title", -1);
}
- SimpleList topicsList = HTMLTemplateProcessor.makeSimpleList(topicsEntityList);
+ SimpleList topicsList = HTMLTemplateProcessor.makeSimpleList(topicsEntityList);
- for(int i=0; i < topicsEntityList.size(); i++){
+ for(int i=0; i < topicsEntityList.size(); i++){
- EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i);
- EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic);
+ EntityTopics currentTopic = (EntityTopics)topicsEntityList.elementAt(i);
+ EntityList contentEntityList = DatabaseContentToTopics.getInstance().getContent(currentTopic);
String whereClauseSpecial=null;
if (contentEntityList!=null || force==true) {
// get the startarticle
EntityList entityList = contentModule.getContent(whereClauseSpecial,"date desc, webdb_create desc",0,1);
- SimpleList specialList = HTMLTemplateProcessor.makeSimpleList(entityList);
String currentMediaId = null;
SimpleHash imageHash = new SimpleHash();
EntityContent currentContent;
- if(entityList != null){
- for (int k=0; k < entityList.size();k++) {
- currentContent = (EntityContent)entityList.elementAt(k);
- currentMediaId = currentContent.getValue("to_media");
- if (currentMediaId!=null && !currentMediaId.equals("")) {
- imageHash.put(currentMediaId, HTMLTemplateProcessor.makeSimpleHash(imageModule.getById(currentMediaId)));
- }
+ if(entityList != null && entityList.size()==1){
+ currentContent = (EntityContent)entityList.elementAt(0);
+ try {
+ SimpleHash specialHash = HTMLTemplateProcessor.makeSimpleHash(currentContent);
+
+ 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();
+ for (int n=0; n < currentMediaList.size();n++) {
+ upMedia = currentMediaList.elementAt(n);
+ upMediaSimpleHash = HTMLTemplateProcessor.makeSimpleHash(upMedia);
+ mediaType = ((EntityMedia)upMedia).getMediaType();
+ //must be a non-existant to_media_type entry..
+ if (mediaType != null) {
+ 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();
+ Method m = mediaStorageClass.getMethod("getInstance", null);
+ mediaStorage = (Database)m.invoke(null, null);
+ //we most likely need further info
+ upMedia = mediaStorage.selectById(upMedia.getId());
+ upMediaSimpleHash.put("url", mediaHandler.getListView(upMedia, mediaType));
+ if (upMedia.getValue("is_published").equals("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
+ specialHash.put("to_media_audio", mediaListAudio);
+ specialHash.put("to_media_images", mediaListImages);
+ specialHash.put("to_media_video", mediaListVideo);
+ specialHash.put("to_media_other", mediaListOther);
+ } //end if currentMediaList != null
+ //convert to html
+ if ( ((SimpleScalar)specialHash.get("is_html")).getAsString().equals("0") ) {
+ SimpleScalar temp = (SimpleScalar)specialHash.get("description");
+ specialHash.put("description",StringUtil.createHTML(temp.getAsString()));
+ }
+ setAdditional("special",specialHash);
+ } catch (Exception e) {
+ theLog.printError("ProducerTopics: problem with start special: "+currentContent.getId()+" "+e.toString());
+ logHTML(htmlout,"ProducerTopics: problem with start special: "+currentContent.getId()+" "+e.toString());
}
- setAdditional("specialimage",imageHash);
}
- setAdditional("special",specialList);
//set the list of topics
setAdditional("topicslist",topicsList);
handleIt(htmlout,user,force);
}
}
- }
-
- public static void main(String argv[]){
- try {
- new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false);
- } catch(Exception e) {
- System.err.println(e.toString());
- }
- }
-}
\ No newline at end of file
+ }
+
+ public static void main(String argv[]){
+ try {
+ new ProducerOpenPosting().handle(new PrintWriter(System.out), null,false, false);
+ } catch(Exception e) {
+ System.err.println(e.toString());
+ }
+ }
+}