1 24 25 package com.opencms.defaults; 26 27 import org.opencms.db.CmsDbUtil; 28 import org.opencms.file.CmsObject; 29 import org.opencms.file.CmsRequestContext; 30 import org.opencms.main.CmsException; 31 import org.opencms.main.OpenCms; 32 33 import com.opencms.core.I_CmsSession; 34 import com.opencms.defaults.master.CmsMasterContent; 35 import com.opencms.defaults.master.CmsMasterMedia; 36 import com.opencms.legacy.CmsXmlTemplateLoader; 37 import com.opencms.template.A_CmsXmlContent; 38 import com.opencms.template.CmsXmlTemplateFile; 39 import com.opencms.workplace.CmsXmlLanguageFile; 40 41 import java.util.Enumeration ; 42 import java.util.Hashtable ; 43 import java.util.StringTokenizer ; 44 import java.util.Vector ; 45 46 52 public abstract class A_CmsChannelBackoffice extends A_CmsBackoffice { 53 54 65 public Integer getSelectedChannels(CmsObject cms, CmsXmlLanguageFile lang, Vector values, Vector names, Hashtable parameters) 66 throws CmsException { 67 int retValue = -1; 68 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 69 CmsMasterContent cd = (CmsMasterContent)session.getValue(getContentDefinitionClass().getName()); 70 Vector channels = cd.getSelectedChannels(); 71 int size = channels.size(); 72 for (int i=0; i < size; i++) { 73 values.add(channels.elementAt(i)); 74 names.add(channels.elementAt(i)); 75 } 76 return new Integer (retValue); 77 } 78 79 90 public Integer getAvailableChannels(CmsObject cms, CmsXmlLanguageFile lang, Vector values, Vector names, Hashtable parameters) 91 throws CmsException { 92 int retValue = -1; 93 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 94 CmsMasterContent cd = (CmsMasterContent)session.getValue(getContentDefinitionClass().getName()); 95 Vector channels = cd.getAvailableChannels(cms); 96 int size = channels.size(); 97 for (int i=0; i < size; i++) { 98 values.add(channels.elementAt(i)); 99 names.add(channels.elementAt(i)); 100 } 101 return new Integer (retValue); 102 } 103 104 115 public Integer getMediaPosition(CmsObject cms, CmsXmlLanguageFile lang, Vector values, Vector names, Hashtable parameters) 116 throws CmsException { 117 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 119 String media_position = null; 122 int media_positionInt=0; 123 String selectBoxContent=""; 125 boolean flag=false; 127 try { 128 selectBoxContent=selectBoxContent(cms); 130 } catch (Exception e) { 131 e.printStackTrace(System.err); 132 } 133 StringTokenizer t = new StringTokenizer (selectBoxContent, ";"); 134 while (t.hasMoreElements()) { 135 String s=t.nextToken(); 136 if (s!=null && !s.equals("")) { 137 int z=s.indexOf(":"); 138 values.add(s.substring(0, z)); 139 String name=s.substring(z+1); 140 names.add(name); 141 if (name.equals("0")) { 143 flag=true; 144 } 145 } 146 } 147 try { 149 media_position=(String )session.getValue("media_position"); 150 media_positionInt=Integer.parseInt(media_position); 151 if (!flag) { 152 media_positionInt=Integer.parseInt(media_position)-1; 153 } 154 } catch (Exception e) { 155 media_positionInt=0; 156 } 157 return new Integer (media_positionInt); 158 } 159 160 173 public Object getContentMedia(CmsObject cms, String tagcontent, A_CmsXmlContent doc, Object userObject) throws CmsException { 174 String content=""; 176 String row=""; 177 CmsXmlTemplateFile templateFile = (CmsXmlTemplateFile) doc; 179 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 180 CmsMasterContent masterCD = (CmsMasterContent)session.getValue(getContentDefinitionClass().getName()); 181 Hashtable parameters = (Hashtable )userObject; 183 String media_action = (String ) parameters.get("media_action"); 185 media_action=(media_action!=null?media_action.trim():""); 186 String media_name = (String ) parameters.get("media_name"); 188 media_name=(media_name!=null?media_name.trim():""); 189 String media_title = (String ) parameters.get("media_alt_text"); 191 media_title=(media_title!=null?media_title.trim():""); 192 media_title = org.opencms.i18n.CmsEncoder.unescape(media_title, 193 cms.getRequestContext().getEncoding()); 194 String pos = (String ) parameters.get("pos"); 196 pos=(pos!=null?pos.trim():""); 197 if (pos.equals("")) { 198 pos = (String ) parameters.get("posEdit"); 200 pos=(pos!=null?pos.trim():""); 201 } 202 int posInt=CmsDbUtil.UNKNOWN_ID; 203 if (!pos.equals("")) { 204 try { 205 posInt=Integer.parseInt(pos); 206 } catch (Exception e) { 207 posInt=CmsDbUtil.UNKNOWN_ID; 208 } 209 } 210 String media_position = (String ) parameters.get("media_position"); 212 media_position=(media_position!=null?media_position.trim():""); 213 int media_positionInt=0; 214 if (!media_position.equals("")) { 215 try { 216 media_positionInt=Integer.parseInt(media_position); 217 } catch (Exception e) { 218 media_positionInt=0; 219 } 220 } 221 int media_type=0; 223 String media_mimetype=""; 225 CmsMasterMedia mediaCD=null; 227 CmsMasterMedia selectedmediaCD=null; 229 Vector dbmedia = masterCD.getMedia(); 231 Vector media = null; 233 try { 235 media=(Vector )session.getValue("media"); 236 } catch (Exception e) { 237 e.printStackTrace(System.err); 238 } 239 if (dbmedia!=null) { 241 if (media==null) { 243 media=new Vector (); 245 for (int i=0; i<dbmedia.size(); i++) { 247 CmsMasterMedia cd = (CmsMasterMedia)dbmedia.elementAt(i); 248 if (cd.getType()>=0) { 250 media.add(cd); 251 } 252 } 253 } 254 for (int i=0; i<media.size(); i++) { 255 if (posInt==i) { 256 selectedmediaCD=(CmsMasterMedia)media.elementAt(i); 257 } 258 } 259 } 260 if (media_action.equals("delPicture")) { 262 if (selectedmediaCD!=null) { 263 masterCD.deleteMedia(selectedmediaCD); 264 media.removeElementAt(posInt); 266 } 267 } else if (media_action.equals("addPicture") && !media_name.equals("unknown")) { 268 CmsRequestContext reqCont = cms.getRequestContext(); 270 Enumeration en = CmsXmlTemplateLoader.getRequest(reqCont).getFileNames(); 271 String filename = ""; 272 byte[] mediafile = null; 273 while (en.hasMoreElements()) { 275 filename = (String ) en.nextElement(); 276 if (!filename.equals("unknown")) { 277 mediafile = CmsXmlTemplateLoader.getRequest(reqCont).getFile(filename); 278 media_mimetype = OpenCms.getResourceManager().getMimeType(filename, null); 280 if (!media_mimetype.startsWith("image")) { 282 media_type=1; 283 } 284 } 285 } 286 if (mediafile!=null) { 287 mediaCD=new CmsMasterMedia(media_positionInt, 0, 0, mediafile.length, media_mimetype, media_type, media_title, media_name, "default", mediafile); 289 if (mediaCD!=null) { 290 masterCD.addMedia(mediaCD); 292 media.addElement(mediaCD); 294 media_position=""; 296 } 297 } else { 298 selectedmediaCD.setName(media_name); 300 selectedmediaCD.setTitle(media_title); 301 selectedmediaCD.setPosition(media_positionInt); 302 media_position=""; 304 masterCD.updateMedia(selectedmediaCD); 306 media.insertElementAt(selectedmediaCD, posInt); 308 media.removeElementAt(posInt+1); 310 } 311 } 312 if (media_action.equals("clear")) { 314 media_position=""; 316 } 317 if (media_action.equals("prevPicture") && (selectedmediaCD != null)) { 319 templateFile.setData("sid", "" + masterCD.getSubId()); 321 templateFile.setData("cid", "" + selectedmediaCD.getMasterId()); 322 templateFile.setData("mid", "" + selectedmediaCD.getId()); 323 templateFile.setData("file", "" + selectedmediaCD.getName()); 324 325 templateFile.setData("preview", templateFile.getProcessedDataValue("media_preview", this)); 326 } else { 327 templateFile.setData("preview", ""); 329 } 330 if (media_action.equals("editPicture") && (selectedmediaCD!=null)) { 332 media_position=""+selectedmediaCD.getPosition(); 334 session.putValue("media_position", media_position); 336 templateFile.setData("media_name", selectedmediaCD.getName()); 338 templateFile.setData("posEdit", pos); 339 String title=selectedmediaCD.getTitle(); 340 title=org.opencms.i18n.CmsEncoder.unescape(title, 341 cms.getRequestContext().getEncoding()); 342 templateFile.setData("media_alt_text", title); 343 templateFile.setData("media_file", templateFile.getProcessedDataValue("media_edit", this)); 344 } else { 345 session.putValue("media_position", media_position); 347 templateFile.setData("media_file", templateFile.getProcessedDataValue("media_upload", this)); 349 } 350 if (media!=null) { 352 String selectBoxContent=""; 354 try { 355 selectBoxContent=selectBoxContent(cms); 357 } catch (Exception e) { 358 } 359 for (int i=0; i<media.size(); i++) { 360 mediaCD= (CmsMasterMedia)media.elementAt(i); 361 templateFile.setData("pos", ""+i); 362 templateFile.setData("media_row_name", mediaCD.getName()); 363 templateFile.setData("media_title", mediaCD.getTitle()); 364 String mediapos=""+mediaCD.getPosition(); 366 StringTokenizer t = new StringTokenizer (selectBoxContent, ";"); 367 while (t.hasMoreElements()) { 368 String s=t.nextToken(); 369 if (s!=null && !s.equals("")) { 370 int z=s.indexOf(":"); 371 String value=s.substring(0, z); 372 String name=s.substring(z+1); 373 if (mediapos.equals(name)) { 374 mediapos=value; 375 } 376 } 377 } 378 templateFile.setData("media_position", ""+mediapos); 379 templateFile.setData("media_size", ""+mediaCD.getSize()); 380 templateFile.setData("media_type", ""+mediaCD.getType()); 381 row += templateFile.getProcessedDataValue("media_row", this); 383 mediapos=""; 385 } 386 templateFile.setData("media_line", row); 387 } 388 content=templateFile.getProcessedDataValue("media_content", this); 390 if (media!=null) { 392 session.putValue("media", media); 393 } 394 if (selectedmediaCD!=null) { 396 session.putValue("selectedmediaCD", selectedmediaCD); 397 } 398 return content; 400 } 401 402 409 protected String selectBoxContent(CmsObject cms) { 410 return ""; 411 } 412 }
| Popular Tags
|