1 28 29 package com.opencms.workplace; 30 31 import org.opencms.db.CmsImportFolder; 32 import org.opencms.file.CmsFile; 33 import org.opencms.file.CmsFolder; 34 import org.opencms.file.CmsObject; 35 import org.opencms.file.CmsPropertyDefinition; 36 import org.opencms.file.CmsResource; 37 import org.opencms.file.types.CmsResourceTypeFolder; 38 import org.opencms.file.types.CmsResourceTypeImage; 39 import org.opencms.main.CmsException; 40 import org.opencms.main.OpenCms; 41 import org.opencms.workplace.CmsWorkplace; 42 43 import com.opencms.core.I_CmsSession; 44 import com.opencms.legacy.CmsLegacyException; 45 import com.opencms.legacy.CmsXmlTemplateLoader; 46 47 import java.util.Enumeration ; 48 import java.util.Hashtable ; 49 50 60 61 public class CmsAdminPicGalleries extends CmsAdminGallery { 62 63 67 public String getGalleryPath() { 68 return CmsWorkplaceDefault.C_VFS_GALLERY_PICS; 69 } 70 71 80 public String getGalleryIconPath(CmsObject cms) throws CmsException { 81 CmsXmlWpConfigFile config = this.getConfigFile(cms); 82 return config.getWpPicturePath() + "ic_file_picgallery.gif"; 83 } 84 85 96 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 97 Hashtable parameters, String templateSelector) throws CmsException { 98 99 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 100 CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, 101 templateFile, elementName, parameters, templateSelector); 102 103 String lasturl = getLastUrl(cms, parameters); 105 106 getInitial(session, parameters) ; 108 109 String foldername = getGalleryPath(cms, session, parameters); 111 CmsFolder thefolder = cms.readFolder(foldername); 112 113 int maxFileSize = OpenCms.getWorkplaceManager().getFileMaxUploadSize(); 115 if ((maxFileSize <= 0) || cms.userInGroup(cms.getRequestContext().currentUser().getName(), OpenCms.getDefaultUsers().getGroupAdministrators())) { 117 maxFileSize = -1; 118 xmlTemplateDocument.setData("limitation", ""); 119 } 120 else { 121 xmlTemplateDocument.setData("maxfilesize", "" + maxFileSize); 122 try { 123 String limitation = xmlTemplateDocument.getProcessedDataValue("filesize_limited"); 124 xmlTemplateDocument.setData("limitation", limitation); 125 } catch (CmsException e) { 126 xmlTemplateDocument.setData("limitation", ""); 127 } 128 } 129 130 if(foldername.equals(CmsWorkplaceDefault.C_VFS_GALLERY_PICS) && templateFile.endsWith("administration_head_picgalleries2")) { 132 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/picgallery/administration_head_picgalleries1", elementName, parameters, templateSelector); 134 } 135 136 try { 138 String parent = CmsResource.getParentFolder(cms.getSitePath(thefolder)); 139 if(foldername.startsWith(CmsWorkplaceDefault.C_VFS_GALLERY_PICS) && (parent.equals(CmsWorkplaceDefault.C_VFS_GALLERY_PICS)) && templateFile.endsWith("administration_head_picgalleries1")) { 140 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/htmlgallery/administration_head_picgalleries2", elementName, parameters, templateSelector); 142 } 143 } 144 catch(Exception e) {} 145 146 String action = (String )parameters.get("action"); 148 String unzip = (String ) parameters.get("unzip"); 149 String newname = (String )parameters.get(CmsWorkplaceDefault.C_PARA_NAME); 150 String title = (String )parameters.get("TITLE"); String step = (String )parameters.get("step"); 152 String imagedescription = (String )parameters.get("DESCRIPTION"); 153 154 if(foldername == null) { 155 foldername = ""; 156 } 157 if("new".equals(action)) { 158 String galleryname = (String )parameters.get("NAME"); 159 String group = (String )parameters.get("GROUP"); 160 if(galleryname != null && group != null && galleryname != "" && group != "") { 161 try { 164 165 167 String superfolder = getConfigFile(cms).getPicGalleryPath(); 169 CmsResource folder = cms.createResource(superfolder + galleryname, CmsResourceTypeFolder.RESOURCE_TYPE_ID); 170 if(title != null) { 171 cms.writeProperty(cms.getSitePath(folder), CmsPropertyDefinition.PROPERTY_TITLE, title); 172 } 173 208 cms.unlockResource(cms.getSitePath(folder)); 209 } 210 catch(CmsException ex) { 211 xmlTemplateDocument.setData("ERRORDETAILS", CmsException.getStackTraceAsString(ex)); 212 templateSelector = "error"; 213 } 214 } 215 else { 216 templateSelector = "datamissing"; 217 } 218 } 219 else { 220 221 if("upload".equals(action)) { 222 223 String filename = null; 225 byte[] filecontent = new byte[0]; 226 227 Enumeration files = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getFileNames(); 229 while(files.hasMoreElements()) { 230 filename = (String )files.nextElement(); 231 } 232 if(filename != null) { 233 session.putValue(CmsWorkplaceDefault.C_PARA_RESOURCE, filename); 234 } 235 filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 236 237 if(filename != null) { 239 filecontent = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getFile(filename); 240 } 241 if(filecontent != null) { 242 session.putValue(CmsWorkplaceDefault.C_PARA_FILECONTENT, filecontent); 243 } 244 filecontent = (byte[])session.getValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 245 if("0".equals(step)) { 246 templateSelector = ""; 247 } 248 else { 249 if("1".equals(step)) { 250 251 if(filename != null) { 253 254 if(filecontent.length == 0) { 256 templateSelector = "error"; 257 xmlTemplateDocument.setData("details", filename); 258 } 259 260 else if ((maxFileSize > 0) && (filecontent.length > (maxFileSize * 1024))) { 262 templateSelector = "errorfilesize"; 263 xmlTemplateDocument.setData("details", filename+": "+(filecontent.length/1024)+" kb, max. "+maxFileSize+" kb."); 264 } 265 266 else { 267 if(unzip != null) { 268 CmsImportFolder zip = new CmsImportFolder( 270 filecontent, foldername, cms, true); 271 if( zip.isValidZipFile() ) { 272 273 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 275 session.removeValue(CmsWorkplaceDefault.C_PARA_FILECONTENT); 276 session.removeValue(CmsWorkplaceDefault.C_PARA_NEWTYPE); 277 session.removeValue("unzip"); 278 try { 280 if((lasturl != null) && (lasturl != "")) { 281 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 282 } 283 else { 284 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect( 285 getConfigFile(cms).getWorkplaceActionPath() + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 286 } 287 } catch(Exception ex) { 288 throw new CmsLegacyException( 289 "Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() 290 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), ex); 291 } 292 return null; 293 } 294 } xmlTemplateDocument.setData("MIME", filename); 296 xmlTemplateDocument.setData("SIZE", "Not yet available"); 297 xmlTemplateDocument.setData("FILESIZE", 298 new Integer (filecontent.length).toString() + " Bytes"); 299 xmlTemplateDocument.setData("FILENAME", filename); 300 xmlTemplateDocument.setData("IMAGEDESCRIPTION",imagedescription); 301 templateSelector = "step1"; 302 } 303 } 304 } 305 else { 306 if("2".equals(step)) { 307 308 if(newname != null) { 310 filename = newname; 311 } 312 try { 313 CmsFile file = (CmsFile)cms.createResource(foldername + filename, CmsResourceTypeImage.getStaticTypeId(), filecontent, null); 314 if(title != null) { 315 String filepath = cms.getSitePath(file); 316 cms.writeProperty(filepath, CmsPropertyDefinition.PROPERTY_TITLE, title); 317 } 318 if(imagedescription != null) { 319 String filepath = cms.getSitePath(file); 320 cms.writeProperty(filepath, CmsPropertyDefinition.PROPERTY_DESCRIPTION, imagedescription); 321 } 322 } 323 catch(CmsException ex) { 324 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(ex)); 325 templateSelector = "error"; 326 xmlTemplateDocument.setData("link_value", foldername); 327 xmlTemplateDocument.setData("lasturl", lasturl); 328 return startProcessing(cms, xmlTemplateDocument, elementName, 329 parameters, templateSelector); 330 } 331 try { 332 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 333 } 334 catch(Exception ex) { 335 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceActionPath() + 336 lasturl, ex); 337 } 338 return null; 339 } 340 } 341 } 342 } 343 } 344 345 xmlTemplateDocument.setData("link_value", foldername); 346 xmlTemplateDocument.setData("lasturl", lasturl); 347 xmlTemplateDocument.setData("galleryRootFolder", CmsWorkplaceDefault.C_VFS_GALLERY_PICS); 348 349 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, 351 templateSelector); 352 } 353 } 354
| Popular Tags
|