1 28 29 package com.opencms.workplace; 30 31 import org.opencms.file.CmsFolder; 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsPropertyDefinition; 34 import org.opencms.file.CmsResource; 35 import org.opencms.file.types.CmsResourceTypeFolder; 36 import org.opencms.file.types.CmsResourceTypePointer; 37 import org.opencms.main.CmsException; 38 import org.opencms.workplace.CmsWorkplace; 39 40 import com.opencms.core.I_CmsSession; 41 import com.opencms.legacy.CmsLegacyException; 42 import com.opencms.legacy.CmsXmlTemplateLoader; 43 44 import java.util.ArrayList ; 45 import java.util.Collections ; 46 import java.util.Hashtable ; 47 import java.util.List ; 48 49 59 60 public class CmsAdminExtLinkGalleries extends CmsAdminGallery { 61 62 66 public String getGalleryPath() { 67 return CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS; 68 } 69 70 79 public String getGalleryIconPath(CmsObject cms) throws CmsException { 80 CmsXmlWpConfigFile config = this.getConfigFile(cms); 81 return config.getWpPicturePath() + "ic_file_extlinkgallery.gif"; 82 } 83 84 95 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 96 Hashtable parameters, String templateSelector) throws CmsException { 97 98 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 99 CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, 100 templateFile, elementName, parameters, templateSelector); 101 102 String lasturl = getLastUrl(cms, parameters); 104 105 String initial = getInitial(session, parameters) ; 107 108 String foldername = getGalleryPath(cms, session, parameters); 110 CmsFolder thefolder = cms.readFolder(foldername); 111 112 if(foldername.equals(CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS) && templateFile.endsWith("administration_head_extlinkgalleries2")) { 114 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/externallinksgallery/administration_head_extlinkgalleries1", elementName, parameters, templateSelector); 116 } 117 118 try { 120 String parent = CmsResource.getParentFolder(cms.getSitePath(thefolder)); 121 if(foldername.startsWith(CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS) && (parent.equals(CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS)) && templateFile.endsWith("administration_head_extlinkgalleries1")) { 122 xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, CmsWorkplace.VFS_PATH_WORKPLACE + "administration/htmlgallery/administration_head_extlinkgalleries2", elementName, parameters, templateSelector); 124 } 125 } 126 catch(Exception e) {} 127 128 String action = (String )parameters.get("action"); 130 String title = (String )parameters.get("TITLE"); String step = (String )parameters.get("step"); 132 133 134 if(foldername == null) { 135 foldername = ""; 136 } 137 if("new".equals(action)) { 138 String galleryname = (String )parameters.get("NAME"); 139 String group = (String )parameters.get("GROUP"); 140 if(galleryname != null && group != null && galleryname != "" && group != "") { 141 try { 144 145 CmsResource folder = cms.createResource(CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS + galleryname, CmsResourceTypeFolder.RESOURCE_TYPE_ID); 147 if(title != null) { 148 cms.writeProperty(cms.getSitePath(folder), CmsPropertyDefinition.PROPERTY_TITLE, title); 149 } 150 185 cms.unlockResource(cms.getSitePath(folder)); 186 } 187 catch(CmsException ex) { 188 xmlTemplateDocument.setData("ERRORDETAILS", CmsException.getStackTraceAsString(ex)); 189 templateSelector = "error"; 190 } 191 } else { 192 templateSelector = "datamissing"; 193 } 194 } else { 195 if("newlink".equals(action)) { 196 boolean checkurl = true; 197 String error = ""; 198 if(initial != null) { 199 session.removeValue("extlink.filename"); 201 session.removeValue("extlink.linkurl"); 202 session.removeValue("lasturl"); 203 } 204 205 String filename = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getParameter(CmsWorkplaceDefault.C_PARA_RESOURCE); 207 if(filename != null) { 208 session.putValue("extlink.filename", filename); 209 } else { 210 filename = (String )session.getValue("extlink.filename")!=null?(String )session.getValue("extlink.filename"):""; 212 } 213 String link = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getParameter(CmsWorkplaceDefault.C_PARA_LINK); 214 if(link != null) { 215 session.putValue("extlink.linkurl", link); 216 } else { 217 link = (String )session.getValue("extlink.linkurl")!=null?(String )session.getValue("extlink.linkurl"):""; 219 } 220 221 xmlTemplateDocument.setData("LINKNAME", filename); 223 xmlTemplateDocument.setData("LINKVALUE", link); 224 225 if(step != null) { 227 if(step.equals("1") || step.equals("2")) { 229 foldername = (String )session.getValue(CmsWorkplaceDefault.C_PARA_FOLDER); 233 if(foldername == null) { 234 foldername = cms.getSitePath(cms.readFolder("/")); 235 } 236 CmsXmlLanguageFile lang = xmlTemplateDocument.getLanguageFile(); 237 String firstTitlePart = lang.getLanguageValue("explorer.linkto") + " " + link; 238 239 List properties = null; 240 if (firstTitlePart != null) { 241 properties = new ArrayList (); 242 properties.add(new org.opencms.file.CmsProperty(CmsPropertyDefinition.PROPERTY_TITLE, firstTitlePart, null)); 243 } else { 244 properties = Collections.EMPTY_LIST; 245 } 246 247 try{ 248 if(step.equals("1")){ 249 } 253 if(checkurl){ 254 cms.createResource(foldername+filename, CmsResourceTypePointer.getStaticTypeId(), link.getBytes(), properties); 255 } 256 } catch (CmsException e){ 257 error = e.getMessage(); 258 } 259 } 260 261 if(checkurl && ("".equals(error.trim()))){ 262 session.removeValue("extlink.filename"); 264 session.removeValue("extlink.linkurl"); 265 try { 267 if(lasturl != null) { 268 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 269 } else { 270 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect(getConfigFile(cms).getWorkplaceAdministrationPath() 271 + "/externallinkgallery/"); 272 } 273 } catch(Exception e) { 274 throw new CmsLegacyException("Redirect fails :" + getConfigFile(cms).getWorkplaceAdministrationPath() 275 + "/externallinkgallery/", e); 276 } 277 return null; 278 } 279 } else { 280 session.removeValue("extlink.filename"); 281 session.removeValue("extlink.linkurl"); 282 } 283 284 if(lasturl == null) { 285 lasturl = CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()); 286 } 287 xmlTemplateDocument.setData("lasturl", lasturl); 288 if(!checkurl){ 290 xmlTemplateDocument.setData("folder", foldername); 291 session.putValue("extlink.linkurl", link); 292 session.putValue("extlink.filename", filename); 293 templateSelector = "errorcheckurl"; 294 } 295 if(!"".equals(error.trim())){ 297 xmlTemplateDocument.setData("errordetails", error); 298 session.putValue("extlink.linkurl", link); 299 session.putValue("extlink.filename", filename); 300 templateSelector = "error"; 301 } 302 } 303 } 304 305 xmlTemplateDocument.setData("link_value", foldername); 306 xmlTemplateDocument.setData("lasturl", lasturl); 307 xmlTemplateDocument.setData("galleryRootFolder", CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS); 308 309 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, 311 templateSelector); 312 } 313 } 314
| Popular Tags
|