1 package com.dotmarketing.services; 2 3 import com.dotmarketing.beans.Identifier; 4 import com.dotmarketing.factories.IdentifierFactory; 5 import com.dotmarketing.factories.InodeFactory; 6 import com.dotmarketing.portlets.banners.model.Banner; 7 import com.dotmarketing.portlets.files.model.File; 8 import com.dotmarketing.portlets.folders.model.Folder; 9 import com.dotmarketing.portlets.htmlpages.model.HTMLPage; 10 import com.dotmarketing.util.Config; 11 import com.dotmarketing.util.Logger; 12 import com.dotmarketing.util.UtilMethods; 13 14 17 public class BannerServices { 18 19 public static void writeBannerToFile(Banner banner) { 20 Identifier parentHTMLPageId = (Identifier) InodeFactory.getParentOfClass(banner,Identifier.class); 21 HTMLPage parentHTMLPage = (HTMLPage) IdentifierFactory.getWorkingChildOfClass(parentHTMLPageId,HTMLPage.class); 23 Folder parentFolder = (Folder) InodeFactory.getParentOfClass(banner,Folder.class); 24 writeBannerToFile(banner, parentFolder, parentHTMLPage); 25 } 26 27 public static void writeBannerToFile(Banner banner, Folder parentFolder, HTMLPage parentHTMLPage) { 28 29 StringBuffer sb = new StringBuffer (); 31 32 sb.append("##Set Banner properties\n"); 34 sb.append("#set( $BannerInode =\"" + banner.getInode() + "\" )\n"); 35 sb.append("#set( $BannerTitle =\"" + UtilMethods.espaceForVelocity(banner.getTitle()) + "\" )\n"); 36 sb.append("#set( $BannerCaption =\"" + UtilMethods.espaceForVelocity(banner.getCaption()) + "\" )\n"); 37 sb.append("#set( $BannerCaption = \"#fixBreaks($BannerCaption)\")\n"); 38 sb.append("#set( $BannerNewWindow =\"" + banner.isNewWindow() + "\" )\n"); 39 sb.append("#set( $BannerLink =\"" + UtilMethods.espaceForVelocity(banner.getLink()) + "\" )\n"); 40 sb.append("#set( $BannerStartDate =\"" + UtilMethods.dateToHTMLDate(banner.getStartDate()) + "\" )\n"); 41 sb.append("#set( $BannerEndDate =\"" + UtilMethods.dateToHTMLDate(banner.getEndDate()) + "\" )\n"); 42 sb.append("#set( $Active =\"" + banner.isActive() + "\" )\n"); 43 sb.append("#set( $BannerBody =\"" + UtilMethods.espaceForVelocity(banner.getBody()) + "\" )\n"); 44 sb.append("#set( $BannerBody = \"#fixBreaks($BannerBody)\")\n"); 45 46 if (parentFolder.getInode()>0) { 48 sb.append("#set( $BannerFolderInode =\"" + parentFolder.getInode() + "\" )\n"); 49 sb.append("#set( $BannerFolder =\"" + UtilMethods.espaceForVelocity(parentFolder.getPath()) + "\" )\n"); 50 } 51 52 if (parentHTMLPage.getInode()>0) { 53 sb.append("#set( $BannerPageInode =\"" + parentHTMLPage.getInode() + "\" )\n"); 54 parentFolder = (Folder) InodeFactory.getParentOfClass(parentHTMLPage,Folder.class); 55 if (parentFolder.getInode()>0) { 56 sb.append("#set( $BannerPage =\"" + UtilMethods.espaceForVelocity(parentFolder.getPath() + parentHTMLPage.getPageUrl()) + "\" )\n"); 57 } 58 } 59 60 String categories = ""; 61 String [] bannerCategories = banner.getCategories(); 63 if (bannerCategories!=null) { 64 for (int i=0;i<bannerCategories.length;i++) { 65 categories += bannerCategories[i]; 66 if (i!=(bannerCategories.length-1)) { 67 categories += ","; 68 } 69 } 70 } 71 sb.append("#set( $BannerPlacement =\"[" + categories + "]\" )\n"); 73 74 File image = (File) InodeFactory.getInode(banner.getImage(),File.class); 75 76 sb.append("\n\n##Set Image Banner properties\n"); 77 sb.append("#set( $BannerImageInode =\"" + image.getInode() + "\" )\n"); 78 sb.append("#set( $BannerImageWidth =\"" + image.getWidth() + "\" )\n"); 79 sb.append("#set( $BannerImageHeight =\"" + image.getHeight() + "\" )\n"); 80 sb.append("#set( $BannerImageExtension =\"" + UtilMethods.espaceForVelocity(image.getExtension()) + "\" )\n"); 81 sb.append("#set( $BannerImageURI =\"" + UtilMethods.espaceForVelocity(image.getURI()) + "\" )\n"); 82 sb.append("#set( $BannerImageTitle =\"" + UtilMethods.espaceForVelocity(image.getTitle()) + "\" )\n"); 83 84 try { 85 int bytedata; 86 87 String velocityRootPath = Config.getStringProperty("VELOCITY_ROOT"); 88 if (velocityRootPath.startsWith("/WEB-INF")) { 89 velocityRootPath = Config.CONTEXT.getRealPath(velocityRootPath); 90 } 91 velocityRootPath += java.io.File.separator; 92 93 String folderPath = "banners" + java.io.File.separator; 94 95 java.io.File folderDir = new java.io.File (velocityRootPath + folderPath); 96 folderDir.mkdir(); 97 java.io.BufferedOutputStream tmpOut = new java.io.BufferedOutputStream (new java.io.FileOutputStream (new java.io.File ( 98 velocityRootPath + folderPath + banner.getInode() + "." + Config.getStringProperty("VELOCITY_BANNER_EXTENSION")))); 99 100 java.io.StringReader strReader = new java.io.StringReader (sb.toString()); 101 102 while ((bytedata = strReader.read()) != -1) { 104 tmpOut.write(bytedata); 105 } 106 107 tmpOut.close(); 108 strReader.close(); 109 110 } catch (Exception e) { 111 Logger.error(BannerServices.class, e.toString(), e); 112 } 113 114 } 115 } 116 | Popular Tags |