1 package com.dotmarketing.portlets.banners.factories; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 import java.util.Set ; 6 import java.util.TreeMap ; 7 import com.dotmarketing.cache.BannerCache; 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpSession ; 10 11 import com.dotmarketing.db.DbConnectionFactory; 12 import com.dotmarketing.db.DotHibernate; 13 import com.dotmarketing.listeners.BannersListener; 14 import com.dotmarketing.portlets.banners.model.Banner; 15 import com.dotmarketing.portlets.categories.factories.CategoryFactory; 16 import com.dotmarketing.portlets.categories.model.Category; 17 import com.dotmarketing.portlets.entities.factories.EntityFactory; 18 import com.dotmarketing.portlets.entities.model.Entity; 19 import com.dotmarketing.util.Config; 20 import com.dotmarketing.util.Logger; 21 22 23 27 public class BannerFactory { 28 29 public static java.util.List getActiveBanners() { 30 DotHibernate dh = new DotHibernate(Banner.class); 31 dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where active = ? and start_date <= ? and end_date >= ?"); 32 dh.setParam(true); 33 java.util.Date d = new java.util.Date (); 34 dh.setParam(d); 35 dh.setParam(d); 36 return ( java.util.List ) dh.list(); 37 } 38 39 42 public static void saveBanner(Banner b) { 43 44 Logger.debug(TreeMap .class, "class name in saveBanner=" + b.getClass()); 45 DotHibernate.saveOrUpdate(b); 46 } 47 48 public static Banner getBanner(String id) { 49 long x = 0; 50 try { 51 x=Long.parseLong(id); 52 } 53 catch(Exception e){} 54 DotHibernate dh = new DotHibernate(Banner.class); 55 dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where banner.inode=?"); 56 dh.setParam(x); 57 return (Banner) dh.load(); 58 59 } 60 61 public static java.util.List getBannersByOrderAndKeywords(String keywords, String orderby) { 62 DotHibernate dh = new DotHibernate(Banner.class); 63 dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where title like '%" + keywords + "%' order by " + orderby); 64 return (java.util.List ) dh.list(); 65 } 66 67 public static java.util.List getBannersByOrder(String orderby) { 68 DotHibernate dh = new DotHibernate(Banner.class); 69 dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where active = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " order by " + orderby); 70 return (java.util.List ) dh.list(); 71 } 72 73 public static List getBanners(String path, String placement) { 74 DotHibernate dh = new DotHibernate(Banner.class); 75 76 String query = "from banner in class com.dotmarketing.portlets.banners.model.Banner where path = ? and placement like '%" + placement + "%' and active = " + DbConnectionFactory.getDBTrue(); 77 dh.setQuery(query); 78 dh.setParam(path); 79 return (java.util.List ) dh.list(); 80 } 81 82 public static List getBannersWithOrder(String path, String placement) 83 { 84 ArrayList banners = new ArrayList (); 85 Entity entity = EntityFactory.getEntity("Banner"); 86 List categories = EntityFactory.getEntityCategories(entity); 87 Category category = (Category) categories.get(0); 88 List <Category> childrenCategories = CategoryFactory.getChildrenCategories(category,"sort_order"); 89 for(Category childCategory : childrenCategories) 90 { 91 String categoryName = childCategory.getKey(); 92 banners.addAll(getBanners(path,categoryName)); 93 } 94 return banners; 95 } 96 97 public static List getBannerList(String path, String placement) { 98 99 List banners = new ArrayList (); 100 try { 101 102 while (banners.size()==0 && path!=null && path.length()>0) { 103 104 banners = BannerCache.getBannersFromCache(path, placement); 105 106 107 if (banners.size()>0) { 108 return banners; 109 } 110 111 if (path.endsWith(Config.getStringProperty("VELOCITY_PAGE_EXTENSION"))) { 112 path = path.substring(0,path.lastIndexOf("/")+1); 113 } 114 else { 115 int idx1 = path.lastIndexOf("/"); 116 path = path.substring(0,path.length()-1); 117 idx1 = path.lastIndexOf("/"); 118 if (idx1 != -1) { 119 path = path.substring(0,idx1+1); 120 } 121 else { 122 path = ""; 123 } 124 } 125 } 126 } 127 catch (Exception e) { 128 Logger.error(BannerFactory.class, e.toString(), e); 129 e.printStackTrace(System.out); 130 } 131 return banners; 132 } 133 134 private static void addBannerToSession (HttpServletRequest req, Banner banner) { 135 HttpSession session = req.getSession(); 136 Logger.debug(BannerFactory.class, "addBannerToSession: session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY) != null: " + (session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY) != null)); 137 Set banners = (Set ) session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY); 138 139 Logger.debug(BannerFactory.class, "addBannerToSession: session.getAttribute(banners.contains(banner): " +banners.contains(banner)); 140 if (!banners.contains(banner)) { 141 banners.add(banner); 142 } 143 } 144 145 public static void updateBannerViews(HttpServletRequest req, Banner banner) { 146 Logger.debug(BannerFactory.class, "updateBannerViews: banner: " + banner.getInode()); 147 Logger.debug(BannerFactory.class, "updateBannerViews: before banner.getNmbrViews(): " + banner.getNmbrViews()); 148 addBannerToSession (req, banner); 149 banner.setNmbrViews(banner.getNmbrViews()+1); 150 Logger.debug(BannerFactory.class, "updateBannerViews: after banner.getNmbrViews(): " + banner.getNmbrViews()); 151 } 152 153 public static void updateBannerClicks(HttpServletRequest req, Banner banner) { 154 addBannerToSession (req, banner); 155 banner.setNmbrClicks(banner.getNmbrClicks()+1); 156 } 157 } 158 | Popular Tags |