cmstemplateimpl.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 331 行
JAVA
331 行
package cn.js.fan.module.cms.template;import java.util.*;import javax.servlet.http.*;import cn.js.fan.module.cms.*;import cn.js.fan.module.cms.site.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import com.cloudwebsoft.framework.template.*;import cn.js.fan.module.nav.LinkDb;import com.cloudwebsoft.framework.util.*;public class CMSTemplateImpl extends VarPart { public CMSTemplateImpl() { } public String renderScrollImg(HttpServletRequest request, List params) { int w = StrUtil.toInt((String)props.get("w"), 121); String h = (String)props.get("h"); if (h==null) h = "116"; String speed = (String)props.get("speed"); if (speed==null) speed = "30"; boolean isTitle = StrUtil.getNullStr((String)props.get("title")).equals("y"); SiteScrollImgDb ssid = new SiteScrollImgDb(); Vector v = ssid.listOfSite(Leaf.ROOTCODE); StringBuffer str = new StringBuffer(); str.append("<DIV id=scrollImgDiv style='OVERFLOW: hidden; WIDTH: 100%;'>"); str.append("<TABLE cellSpacing=0 cellPadding=0 align=left border=0 cellspace='0'>"); str.append("<TBODY>"); str.append("<TR>"); str.append("<TD id=scrollImgTd1 vAlign=top>"); str.append("<table width='" + (v.size()*w+100) + "' height='" + h + "' border='0' cellpadding='0' cellspacing='0'>"); str.append("<tr>"); Iterator ir = v.iterator(); while (ir.hasNext()) { ssid = (SiteScrollImgDb)ir.next(); str.append("<td width='" + w + "'>"); str.append("<div align='center'><a target=_blank href='" + StrUtil.getNullStr(ssid.getString("link")) + "'><img border=0 width='" + w + "' height='" + h + "' alt='" + ssid.getString("title") + "' src='" + ssid.getString("url") + "' style='margin-bottom:3px'></a>"); if (isTitle) { str.append("<BR>" + format(StrUtil.getNullStr(ssid.getString("title")), props)); } str.append("</div>"); str.append("</td>"); } str.append("</tr></table></TD><TD id=scrollImgTd2 vAlign=top> </TD></TR></TBODY></TABLE></DIV>"); str.append("<SCRIPT>\n"); str.append("var speed3=" + speed + ";\n"); str.append("scrollImgTd2.innerHTML=scrollImgTd1.innerHTML;\n"); str.append("function Marquee(){\n"); str.append("if(scrollImgTd2.offsetWidth-scrollImgDiv.scrollLeft<=0)\n"); str.append("scrollImgDiv.scrollLeft-=scrollImgTd1.offsetWidth;\n"); str.append("else{\n"); str.append("scrollImgDiv.scrollLeft++;\n"); str.append("}\n"); str.append("}\n"); str.append("var MyMar=setInterval(Marquee,speed3);\n"); str.append("scrollImgDiv.onmouseover=function() {clearInterval(MyMar)}\n"); str.append("scrollImgDiv.onmouseout=function() {MyMar=setInterval(Marquee,speed3)}\n"); str.append("</SCRIPT>"); return str.toString(); } public String renderFlashImage(HttpServletRequest request, List params) { String strId = (String) props.get("id"); int id = StrUtil.toInt(strId, -1); if (id == -1) return "The id of AdFlashImage is invalid(id=" + strId + ")."; SiteFlashImageDb sfid = new SiteFlashImageDb(); sfid = (SiteFlashImageDb) sfid.getQObjectDb(new Integer(id)); if (sfid == null) { return "Ad Flash Image is null where id=" + id; } StringBuffer sb = new StringBuffer(); sb.append("<script>"); for (int i = 1; i <= 5; i++) { sb.append("imgUrl" + i + "=\"" + StrUtil.getNullStr(sfid.getString("url" + i)) + "\";\n"); sb.append("imgtext" + i + "=\"" + StrUtil.getNullStr(sfid.getString("title" + i)) + "\";\n"); sb.append("imgLink" + i + "=\"" + StrUtil.getNullStr(sfid.getString("link" + i)) + "\";\n"); } String w = (String) props.get("w"); if (w == null) w = "260"; String h = (String) props.get("h"); if (h == null) h = "215"; sb.append("var focus_width=" + w + "\n"); sb.append("var focus_height=" + h + "\n"); sb.append("var text_height=18\n"); sb.append("var swf_height = focus_height+text_height\n"); sb.append( "var pics=imgUrl1+\"|\"+imgUrl2+\"|\"+imgUrl3+\"|\"+imgUrl4+\"|\"+imgUrl5\n"); sb.append("var links=imgLink1+\"|\"+imgLink2+\"|\"+imgLink3+\"|\"+imgLink4+\"|\"+imgLink5\n"); sb.append("var texts=imgtext1+\"|\"+imgtext2+\"|\"+imgtext3+\"|\"+imgtext4+\"|\"+imgtext5\n"); sb.append("document.write('<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width='+ focus_width +' height='+ swf_height +'>');\n"); sb.append("document.write('<param name=\"allowScriptAccess\" value=\"sameDomain\"><param name=\"movie\" value=\"" + Global.getRootPath() + "/images/home/focus.swf\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#dfdfdf\">');\n"); sb.append("document.write('<param name=\"menu\" value=\"false\"><param name=wmode value=\"opaque\">');\n"); sb.append("document.write(\"<param name='FlashVars' value='pics=\"+pics+\"&links=\"+links+\"&texts=\"+texts+\"&borderwidth=\"+focus_width+\"&borderheight=\"+focus_height+\"&textheight=\"+text_height+\"'>\");\n"); sb.append("document.write(\"<embed src='" + Global.getRootPath() + "/images/home/focus.swf' wmode='opaque' FlashVars='pics=\"+pics+\"&links=\"+links+\"&texts=\"+texts+\"&borderwidth=\"+focus_width+\"&borderheight=\"+focus_height+\"&textheight=\"+text_height+\"' menu='false' bgcolor='#dfdfdf' quality='high' width='\"+ focus_width +\"' height='\"+ focus_height +\"' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />\");\n"); sb.append("document.write('</object>');\n"); sb.append("</script>"); return sb.toString(); } public String renderAd(HttpServletRequest request, List params) { String strId = (String) props.get("id"); int id = StrUtil.toInt(strId, -1); if (id == -1) return "The id of Ad is invalid.(id=" + strId + ")"; SiteAdDb sad = new SiteAdDb(); sad = (SiteAdDb) sad.getQObjectDb(new Integer(id)); if (sad == null) { return "Ad is null where id=" + id; } return sad.getString("content"); } public String parseDirCodeFromProps(HttpServletRequest request) { String dirCode = (String) props.get("dir"); if (dirCode==null) { dirCode = ParamUtil.get(request, "dirCode"); } return dirCode; } public String renderListDoc(HttpServletRequest request, List params) { String dirCode = parseDirCodeFromProps(request); Leaf lf = new Leaf(); lf = lf.getLeaf(dirCode); if (lf == null) return ""; cn.js.fan.module.cms.Config cfg = new cn.js.fan.module.cms. Config(); boolean isHtml = cfg.getBooleanProperty("cms.html_doc"); String more = StrUtil.getNullStr((String)props.get("more")); if (more.equalsIgnoreCase("true") || more.equalsIgnoreCase("yes") || more.equalsIgnoreCase("y")) { if (isHtml) { String sql = SQLBuilder.getDirDocListSql(dirCode); Document doc = new Document(); int total = doc.getDocCount(sql); int pageSize = cfg.getIntProperty("cms.listPageSize"); ListDocPagniator paginator = new ListDocPagniator(request, total, pageSize); int pageNo = paginator.pageNum2No(1); return lf.getListHtmlNameByPageNo(pageNo); } else { return "doc_list_view.jsp?dirCode=" + StrUtil.UrlEncode(dirCode); } } Document doc = new Document(); int count = StrUtil.toInt((String) props.get("row"), 10); boolean isDateShow = false; String dateFormat = ""; String dt = (String) props.get("date"); if (dt != null) { isDateShow = dt.equals("true") || dt.equals("yes") || dt.equals("y"); dateFormat = (String) props.get("dateFormat"); if (dateFormat == null) { dateFormat = "yy-MM-dd"; } } String url = ""; String rootPath = Global.getRootPath(); if (request != null) rootPath = request.getContextPath(); String target = StrUtil.getNullStr((String)props.get("target")); if (!target.equals("")) target = "target=\"" + target + "\""; Iterator ir = doc.list(SQLBuilder.getDirDocListSql(dirCode), count).iterator(); StringBuffer str = new StringBuffer(); str.append("<ul>"); while (ir.hasNext()) { doc = (Document) ir.next(); if (doc.getType() == Document.TYPE_LINK) { url = doc.getSource(); } else { if (!isHtml) url = "doc_view.jsp?id=" + doc.getId(); else url = doc.getDocHtmlName(1); } if (DateUtil.compare(new java.util.Date(), doc.getExpireDate()) == 2) { str.append("<li>"); if (isDateShow) { str.append("<span style='float:right'>" + DateUtil.format(doc.getModifiedDate(), dateFormat) + "</span> "); } str.append("<a href='" + url + "' " + target + " >"); if (doc.isBold()) str.append("<B>"); if (!doc.getColor().equals("")) { str.append("<font color='" + doc.getColor() + "'>"); } str.append(format(doc.getTitle(), props)); if (!doc.getColor().equals("")) str.append("</font>"); if (doc.isBold()) str.append("</B>"); str.append("</a>"); if (doc.getIsNew() == 1) { str.append(" <img border=0 src='" + rootPath + "/images/i_new.gif'>"); } str.append("</li>"); } else { str.append("<li>"); if (isDateShow) { str.append("<span style='float:right'>" + DateUtil.format(doc.getModifiedDate(), dateFormat) + "</span> "); } str.append("<a href='" + url + "'>" + format(doc.getTitle(), props)); str.append("</a>"); str.append("</li>"); } } str.append("</ul>"); return str.toString(); } public String renderLink(HttpServletRequest request, List params) { LinkDb ld = new LinkDb(); String kind = StrUtil.getNullStr((String) props.get("kind")); if (kind.equals("")) kind = LinkDb.KIND_DEFAULT; String listsql = ld.getListSql(kind, LinkDb.USER_SYSTEM); Iterator irlink = ld.list(listsql).iterator(); StringBuffer buf = new StringBuffer(); buf.append("<ul>"); while (irlink.hasNext()) { ld = (LinkDb) irlink.next(); buf.append("<li><a title=\"" + ld.getTitle() + "\" target=\"_blank\" href=\"" + ld.getUrl() + "\">"); if (!ld.getImage().equals("")) { buf.append("<img src='" + ld.getImageUrl(request) + "' border=0>"); } else { buf.append(ld.getTitle()); } buf.append("</a></li>"); } buf.append("</ul>"); return buf.toString(); } public String includeFile(HttpServletRequest request, List params) { String page = StrUtil.getNullStr((String) props.get("page")); if (page.endsWith("htm") || page.endsWith("html")) { try { if (!page.startsWith("http://")) { page = Global.getRealPath() + page; } TemplateLoader tl = new TemplateLoader(request, page); return tl.toString(); } catch (Exception e) { LogUtil.getLog(getClass()).error(StrUtil.trace(e)); } } else { if (!page.startsWith("http://")) { page = Global.getFullRootPath() + "/" + page; } String charset = StrUtil.getNullStr((String) props.get("charset")); if (charset.equals("")) charset = "utf-8"; return NetUtil.gather(request, charset, page); } return ""; } public String toString(HttpServletRequest request, List params) { if (field.equalsIgnoreCase("flashImage")) { return renderFlashImage(request, params); } else if (field.equalsIgnoreCase("ad")) { return renderAd(request, params); } else if (field.equalsIgnoreCase("scrollImg")) { return renderScrollImg(request, params); } else if (field.equalsIgnoreCase("listDoc")) { return renderListDoc(request, params); } else if (field.equalsIgnoreCase("link")) { return renderLink(request, params); } else if (field.equalsIgnoreCase("include")) { return includeFile(request, params); } else return "Field " + field + " is not defined."; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?