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>&nbsp;</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>&nbsp;");                }                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("&nbsp;<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>&nbsp;");                }                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 + -
显示快捷键?