1 28 29 package com.opencms.workplace; 30 31 import org.opencms.db.CmsImportFolder; 32 import org.opencms.file.CmsFolder; 33 import org.opencms.file.CmsObject; 34 import org.opencms.file.CmsPropertyDefinition; 35 import org.opencms.file.CmsResource; 36 import org.opencms.file.types.CmsResourceTypeFolder; 37 import org.opencms.file.types.CmsResourceTypeImage; 38 import org.opencms.main.CmsException; 39 import org.opencms.main.OpenCms; 40 import org.opencms.workplace.CmsWorkplace; 41 42 import com.opencms.core.I_CmsSession; 43 import com.opencms.legacy.CmsLegacyException; 44 import com.opencms.legacy.CmsXmlTemplateLoader; 45 46 import java.util.ArrayList ; 47 import java.util.Collections ; 48 import java.util.Enumeration ; 49 import java.util.Hashtable ; 50 import java.util.List ; 51 import java.util.Map ; 52 import java.util.Vector ; 53 54 64 65 public class CmsAdminDownGalleries extends CmsAdminGallery { 66 67 68 private Vector m_names = null; 69 70 71 private Vector m_values = null; 72 73 protected static final String C_PARAM_CANCEL = "cancel"; 74 75 83 public String getGalleryPath() { 84 return CmsWorkplaceDefault.C_VFS_GALLERY_DOWNLOAD; 85 } 86 87 96 public String getGalleryIconPath(CmsObject cms) throws CmsException { 97 CmsXmlWpConfigFile config = this.getConfigFile(cms); 98 return config.getWpPicturePath() + "ic_file_download.gif"; 99 } 100 101 112 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 113 Hashtable parameters, String templateSelector) throws CmsException { 114 115 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 116 CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, 117 templateFile, elementName, parameters, templateSelector); 118 119 String lasturl = getLastUrl(cms, parameters); 121 122 getInitial(session, parameters) ; 124 125 String foldername = getGalleryPath(cms, session, parameters); 127 CmsFolder thefolder = cms.readFolder(foldername); 128 129 if(foldername.equals(CmsWorkplaceDefault.C_VFS_GALLERY_DOWNLOAD) && templateFile.endsWith("administration_head_downgalleries2")) { 131 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/downloadgallery/administration_head_downgalleries1", elementName, parameters, templateSelector); 133 } 134 135 try { 137 String parent = CmsResource.getParentFolder(cms.getSitePath(thefolder)); 138 if(foldername.startsWith(CmsWorkplaceDefault.C_VFS_GALLERY_DOWNLOAD) && (parent.equals(CmsWorkplaceDefault.C_VFS_GALLERY_PICS)) && templateFile.endsWith("administration_head_downgalleries1")) { 139 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/htmlgallery/administration_head_downgalleries2", elementName, parameters, templateSelector); 141 } 142 } 143 catch(Exception e) {} 144 145 String action = (String )parameters.get("action"); 147 String unzip = (String ) parameters.get("unzip"); 148 String nofolder = (String ) parameters.get("NOFOLDER"); 149 String newtype = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NEWTYPE); 151 if(newtype != null) { 152 session.putValue(CmsWorkplaceDefault.C_PARA_NEWTYPE, newtype); 153 } else { 154 newtype = (String )session.getValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 155 } 156 String newname = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NAME); 157 String title = (String )parameters.get("TITLE"); String step = (String )parameters.get("step"); 159 160 String filename = null; 161 if(foldername == null) { 162 foldername = ""; 163 } 164 if("new".equals(action)) { 165 String galleryname = (String )parameters.get("NAME"); 166 try { 170 171 173 String superfolder = getConfigFile(cms).getDownGalleryPath(); 175 CmsResource folder = cms.createResource(superfolder + galleryname, CmsResourceTypeFolder.RESOURCE_TYPE_ID); 176 cms.writeProperty(cms.getSitePath(folder), CmsPropertyDefinition.PROPERTY_TITLE, title); 177 212 cms.unlockResource(cms.getSitePath(folder)); 213 } 214 catch(CmsException ex) { 215 xmlTemplateDocument.setData("ERRORDETAILS", CmsException.getStackTraceAsString(ex)); 216 templateSelector = "error"; 217 } 218 } 219 else { 220 if("upload".equals(action)) { 221 222 byte[] filecontent = new byte[0]; 224 225 Enumeration files = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getFileNames(); 227 while(files.hasMoreElements()) { 228 filename = (String )files.nextElement(); 229 } 230 if(filename != null) { 231 session.putValue(CmsWorkplaceDefault.C_PARA_RESOURCE, filename); 232 } 233 filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 234 235 if(filename != null) { 237 filecontent = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getFile(filename); 238 } 239 if(filecontent != null) { 240 session.putValue(CmsWorkplaceDefault.C_PARA_FILECONTENT, filecontent); 241 } 242 filecontent = (byte[])session.getValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 243 if("0".equals(step)) { 244 templateSelector = ""; 245 } 246 else { 247 if("1".equals(step)) { 248 249 if(filename != null) { 251 252 if(filecontent.length == 0) { 254 templateSelector = "error"; 255 xmlTemplateDocument.setData("details", filename); 256 } 257 else { 258 if(unzip != null) { 259 boolean noSubFolder = (nofolder != null ? true : false); 261 CmsImportFolder zip = new CmsImportFolder( 262 filecontent, foldername, cms, noSubFolder); 263 if( zip.isValidZipFile() ) { 264 265 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 267 session.removeValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 268 session.removeValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 269 try { 271 if((lasturl != null) && (lasturl != "")) { 273 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 274 } 275 else { 276 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect( 277 getConfigFile(cms).getWorkplaceActionPath() 278 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 279 } 280 } catch(Exception ex) { 281 throw new CmsLegacyException( 282 "Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() 283 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), ex); 284 } 285 return null; 286 } 287 } templateSelector = "step1"; 289 } 290 } 291 } 292 else { 293 if("2".equals(step)) { 294 295 int type = OpenCms.getResourceManager().getResourceType(newtype).getTypeId(); 297 if(newtype.equals(CmsResourceTypeImage.getStaticTypeName())) { 298 299 templateSelector = "image"; 301 xmlTemplateDocument.setData("MIME", filename); 302 xmlTemplateDocument.setData("SIZE", "Not yet available"); 303 xmlTemplateDocument.setData("FILESIZE", new Integer (filecontent.length).toString() + " Bytes"); 304 } 305 else { 306 307 310 try{ 311 cms.createResource(foldername + filename, type, filecontent, Collections.EMPTY_LIST); 312 }catch(CmsException e){ 313 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 315 session.removeValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 316 session.removeValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 317 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(e)); 318 return startProcessing(cms, xmlTemplateDocument, "", parameters, "error2"); 319 320 } 321 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 323 session.removeValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 324 session.removeValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 325 326 try { 328 329 if((lasturl != null) && (lasturl != "")) { 331 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 332 } 333 else { 334 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect(getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 335 } 336 } 337 catch(Exception ex) { 338 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), ex); 339 } 340 return null; 341 } 342 } 343 else { 344 if("3".equals(step)) { 345 346 348 if(newname != null) { 350 filename = newname; 351 } 352 353 355 int type = OpenCms.getResourceManager().getResourceType(newtype).getTypeId(); 357 358 List properties = null; 359 if (title != null) { 360 properties = new ArrayList (); 361 properties.add(new org.opencms.file.CmsProperty(CmsPropertyDefinition.PROPERTY_TITLE, title, null)); 362 } else { 363 properties = Collections.EMPTY_LIST; 364 } 365 366 cms.createResource(foldername + filename, type, filecontent, properties); 367 368 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 370 session.removeValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 371 session.removeValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 372 session.removeValue("lasturl"); 373 374 try { 376 if((lasturl != null) && (lasturl != "")) { 377 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 378 } 379 else { 380 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect(getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 381 } 382 } 383 catch(Exception ex) { 384 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), ex); 385 } 386 return null; 387 } 388 } 389 } 390 } 391 } 392 } 393 394 xmlTemplateDocument.setData("link_value", foldername); 395 xmlTemplateDocument.setData("lasturl", lasturl); 396 xmlTemplateDocument.setData("galleryRootFolder", CmsWorkplaceDefault.C_VFS_GALLERY_DOWNLOAD); 397 398 if(filename != null) { 399 xmlTemplateDocument.setData("FILENAME", filename); 400 } 401 402 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 404 } 405 406 419 public int getResources(CmsObject cms, CmsXmlLanguageFile lang, Vector names, Vector values, Vector descriptions, Hashtable parameters) throws CmsException { 420 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 421 String filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 422 String suffix = filename.substring(filename.lastIndexOf('.') + 1); 423 suffix = suffix.toLowerCase(); 425 Map extensions = OpenCms.getResourceManager().getExtensionMapping(); 427 String resType = new String (); 428 if(extensions != null) { 429 resType = (String )extensions.get(suffix); 430 } 431 if(resType == null) { 432 resType = ""; 433 } 434 int ret = 0; 435 436 if(m_names == null || m_values == null) { 438 m_names = new Vector (); 439 m_values = new Vector (); 440 CmsXmlWpConfigFile configFile = new CmsXmlWpConfigFile(cms); 441 configFile.getWorkplaceIniData(m_names, m_values, "RESOURCETYPES", "RESOURCE"); 442 } 443 444 if(names == null) { 447 names = new Vector (); 448 } 449 if(values == null) { 450 values = new Vector (); 451 } 452 if(descriptions == null) { 453 descriptions = new Vector (); 454 } 455 456 int numViews = m_names.size(); 460 for(int i = 0;i < numViews;i++) { 461 String loopValue = (String )m_values.elementAt(i); 462 String loopName = (String )m_names.elementAt(i); 463 values.addElement(loopValue); 464 names.addElement("file_" + loopName); 465 String descr; 466 if(lang != null) { 467 descr = lang.getLanguageValue("fileicon." + loopName); 468 } 469 else { 470 descr = loopName; 471 } 472 descriptions.addElement(descr); 473 if(resType.equals(loopName)) { 474 475 ret = i; 477 } 478 } 479 return ret; 480 } 481 } 482
| Popular Tags
|