package com.kingschan.blog.common.skin.template; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import com.kingschan.blog.common.enums.BLOG_MODEL; import com.kingschan.blog.common.enums.Variable; import com.kingschan.blog.po.WebSite; import com.kingschan.blog.services.impl.CommonServiceImpl; import com.kingschan.blog.util.BlogUtil; import com.kingschan.blog.util.RegexUtil; /** * 皮肤模板变量 * @author kings.chan *<pre> * ${blogprefix} : 前端博客URl前缀 * ${webroot} : http://部署的域名 * ${host} : 部署的域名 * ${admin_blogprefix} : 后台博客前缀 *</pre> */ @Component public class SkinTemplateVariable { @Qualifier("CommonServiceImpl") @Autowired private CommonServiceImpl commonServ; /** * 设置模板变量 * @param req * @param site */ public void setVariable(HttpServletRequest req,WebSite site,BLOG_MODEL model ){ //blogprefix BLOG_PREFIX /*Properties prop = System.getProperties(); String os = prop.getProperty("os.name");*/ switch (model) { case FONT_MODEL: /*if (os.toLowerCase().indexOf("win")!=-1) { //windows|http://${website.websiteName!}.${host!}${projectName} req.getSession().setAttribute(Variable.FT_BLOG_PREFIX.getKey(), String.format("http://%s.%s", site.getWebsiteName(),host) ); }else{ //windows|${webroot}/${website.websiteName!} }*/ //设置博客URL前缀 ${blogprefix} req.getSession().setAttribute(Variable.FT_BLOG_PREFIX.getKey(), getBlogprefix(req,site)); //设置模板根路径 req.getSession().setAttribute(Variable.FT_BLOG_TPATH.getKey(), String.format("/skin/%s/font/", site.getWebsiteSkin()) ); req.getSession().setAttribute("locationUri",req.getRequestURI()); BlogUtil bu = new BlogUtil(req); String device=null==bu.getUserAgent().getOperatingSystem()?"":String.valueOf(bu.getUserAgent().getOperatingSystem().getDeviceType().getName()); //设置访问设备 req.setAttribute("device",device); break; case ADMIN_MODEL: req.getSession().setAttribute(Variable.FT_ADMIN_BLOG_PREFIX.getKey(), String.format("http://%s", commonServ.getHost()) ); break; } } /** * 返回前台博客前缀URL * @param req * @param site * @return ${blogprefix} */ public String getBlogprefix(HttpServletRequest req,WebSite site){ //开发模式下的 localhost/博客名方式 String url=req.getRequestURL().toString(); if (url.matches("^http(s)?://localhost/.*")) { return RegexUtil.findStrByRegx(url, "^http(s)?://localhost/\\w+"); } return String.format("http://%s.%s", site.getWebsiteName(),commonServ.getHost()); } }