1 2 23 package com.geinuke.module; 24 25 import java.io.StringWriter ; 26 import java.util.Enumeration ; 27 import java.util.Locale ; 28 29 import javax.servlet.http.HttpServletRequest ; 30 31 import org.apache.velocity.Template; 32 import org.apache.velocity.app.Velocity; 33 import org.apache.velocity.context.Context; 34 35 import com.geinuke.common.NukeModuleI; 36 import com.geinuke.servlet.GeiServlet; 37 import com.geinuke.util.NukeResource; 38 import com.geinuke.vo.ModuleDBVO; 39 import com.geinuke.vo.NukeModuleVO; 40 import com.magic.util.conf.MagicConfiguratorIfc; 41 import com.magic.util.props.MultiProps; 42 43 public class ModuleWriter { 44 45 public static MultiProps loadResource(String moduleName,String locale)throws Exception { 46 MultiProps res=null; 47 String ePath=""; 48 String ext=""; 49 if(locale!=null && !locale.equals("")){ 50 ePath="/i18n"; 51 ext="_"+locale; 52 } 53 MagicConfiguratorIfc mc=(MagicConfiguratorIfc)Class.forName("com.magic.util.conf.PropsFileConfigurator").newInstance(); 54 String fn=null; 55 fn=GeiServlet.getNukePath()+"/WEB-INF/templates/modules/"+moduleName+ePath+"/resources"+ext+".txt"; 56 if(! NukeResource.existsFile(fn)){ 58 fn=GeiServlet.getNukePath()+"/WEB-INF/templates/modules/"+moduleName+"/resources.txt";; 59 } 61 mc.setFileName(fn); 62 res=mc.getConfiguration(); 63 64 return res; 65 } 66 67 68 69 74 public static NukeModuleI fill(Context ctx,ModuleDBVO module,String templateName){ 75 Template t=null; 76 HttpServletRequest req=(HttpServletRequest )ctx.get("req"); 77 78 MultiProps res=null; 79 NukeModuleVO modulePL=null; 80 modulePL=new NukeModuleVO(); 81 Locale lo=(Locale )ctx.get("LOCALE"); 82 if(! module.isDbStored()){ 83 try{ 84 GeiServlet.fixStyle(req,ctx); 85 res=loadResource(module.getName(),lo.getLanguage()); 86 String key=null; 87 String value=null; 88 Enumeration keys=res.keys(); 89 while(keys.hasMoreElements()){ 90 key=(String )keys.nextElement(); 91 value=(String )res.get(key); 92 if(key.equals("TITLE")) 93 modulePL.setTitle(value); 94 ctx.put(key,value); 95 } 96 }catch(Exception e){ 97 } 100 templateName="modules/"+module.getName()+"/"+templateName; 101 StringWriter sw = new StringWriter (1024 * 4); 102 if(modulePL.getTitle()==null) 103 modulePL.setTitle(module.getTitle()); 104 modulePL.setSkin(module.getSkin()); 105 ctx.put("module",modulePL); 106 try { 107 t = Velocity.getTemplate(templateName); 108 t.merge(ctx, sw); 109 } catch (Exception e) { 110 111 e.printStackTrace(); 112 } 113 modulePL.setContent( sw.toString()); 114 }else{ 115 116 templateName="html/dbModule.vm"; 117 ctx.put("module",module); 118 StringWriter sw = new StringWriter (1024 * 4); 119 120 try { 121 GeiServlet.fixStyle(req,ctx); 122 t = Velocity.getTemplate(templateName); 123 t.merge(ctx, sw); 124 } catch (Exception e) { 125 126 e.printStackTrace(); 127 } 128 129 130 modulePL.setContent( sw.toString()); 131 modulePL.setSkin(module.getSkin()); 132 modulePL.setTitle(module.getTitle()); 133 } 134 135 137 modulePL.setName(module.getName()); 138 139 modulePL.setPos(module.getPos()); 140 modulePL.setWidth(module.getWidth()); 141 modulePL.setWeight(module.getWeight()); 142 modulePL.setDbStored(module.isDbStored()); 143 144 return modulePL; 145 } 146 } 147 | Popular Tags |