⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 documentmgr.java

📁 云网论坛CWBBS 源码,内容丰富,学习,参考,教学的好资料,具体见内说明,
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }
        return re;
    }

    public void clearDustbin(HttpServletRequest request) throws ErrMsgException {
        Document doc = new Document();
        doc.clearDustbin();
    }

    public boolean increaseHit(HttpServletRequest request, int id,
                               IPrivilege privilege) throws
            ErrMsgException {
        Document doc = getDocument(id);
        boolean re = doc.increaseHit();
        return re;
    }

    public boolean UpdateIsHome(HttpServletRequest request, int id,
                                IPrivilege privilege) throws
            ErrMsgException {
        Document doc = getDocument(id);
        String v = ParamUtil.get(request, "value");
        boolean re = doc.UpdateIsHome(v.equals("y") ? true : false);
        return re;
    }

    public boolean vote(HttpServletRequest request, int id) throws
            ErrMsgException {
        int votesel = ParamUtil.getInt(request, "votesel");

        Document doc = getDocument(id);
        boolean re = doc.vote(id, votesel);
        return re;
    }

    public boolean OperatePage(ServletContext application,
                               HttpServletRequest request, IPrivilege privilege) throws
            ErrMsgException {
        CMSMultiFileUploadBean mfu = doUpload(application, request);
        String op = StrUtil.getNullStr(mfu.getFieldValue("op"));
        String dir_code = StrUtil.getNullStr(mfu.getFieldValue("dir_code"));

        boolean isValid = false;

        LeafPriv lp = new LeafPriv();
        lp.setDirCode(dir_code);
        if (op.equals("add")) {
            if (lp.canUserAppend(privilege.getUser(request)))
                isValid = true;
        }
        if (op.equals("edit")) {
            if (lp.canUserModify(privilege.getUser(request)))
                isValid = true;
        }

        if (!isValid)
            throw new ErrMsgException(Privilege.MSG_INVALID);

        String strdoc_id = StrUtil.getNullStr(mfu.getFieldValue("id"));
        int doc_id = Integer.parseInt(strdoc_id);
        Document doc = new Document();
        doc = doc.getDocument(doc_id);

        // logger.info("filepath=" + mfu.getFieldValue("filepath"));

        if (op.equals("add")) {
            String content = StrUtil.getNullStr(mfu.getFieldValue(
                    "htmlcode"));
            boolean re = doc.AddContentPage(application, mfu, content);
            if (re) {
                // 重新生成所有页面的静态页面
                Config cfg = new Config();
                boolean isCreateHtml = cfg.getBooleanProperty("cms.html_auto");
                if (isCreateHtml) {
                    createAllPageHtml(request, doc);
                }
            }
            return re;
        }

        if (op.equals("edit")) {
            // return doc.EditContentPage(content, pageNum);
            boolean re = doc.EditContentPage(application, mfu);
            if (re) {
                String strpageNum = StrUtil.getNullStr(mfu.getFieldValue(
                        "pageNum"));
                int pageNum = Integer.parseInt(strpageNum);
                // 生成静态页面
                Config cfg = new Config();
                boolean isCreateHtml = cfg.getBooleanProperty("cms.html_auto");
                if (isCreateHtml) {
                    createHtml(request, doc, pageNum);
                }
            }
            return re;
        }

        return false;
    }

    public boolean uploadDocument(ServletContext application,
                                  HttpServletRequest request) throws
            ErrMsgException {
        java.util.Date currentTime = new java.util.Date();
        long inserttime = currentTime.getTime();
        String filenm = String.valueOf(inserttime);
        // String[] extnames = {"jpg", "gif", "xls", "rar", "doc", "rm", "avi",
        //                    "bmp", "swf"};
        FileUpload TheBean = new FileUpload();
        // TheBean.setValidExtname(extnames); // 设置可上传的文件类型
        TheBean.setMaxFileSize(Global.FileSize); // 最大35000K
        int ret = 0;
        try {
            ret = TheBean.doUpload(application, request);
            if (ret == -3) {
                String str = SkinUtil.LoadString(request, "res.cms.Document",
                                                 "err_upload_size");
                str = StrUtil.format(str, new Object[] {"" + Global.FileSize});
                throw new ErrMsgException(str);
            }
            if (ret == -4) {
                throw new ErrMsgException(TheBean.getErrMessage(request));
            }
        } catch (Exception e) {
            logger.error("uploadDocument:" + e.getMessage());
        }
        if (ret == 1) {
            Document doc = new Document();
            boolean re = false;
            try {
                re = doc.uploadDocument(TheBean);
            } catch (ResKeyException e) {
                throw new ErrMsgException(e.getMessage(request));
            }
            return re;
        } else
            return false;
    }

    /**
     * 生成所有的页面
     * @param request HttpServletRequest
     * @param doc Document
     */
    public void createAllPageHtml(HttpServletRequest request, Document doc) {
        for (int i = 0; i < doc.getPageCount(); i++) {
            createHtml(request, doc, i + 1);
        }
    }

    /**
     * 生成单个页面
     * @param request HttpServletRequest
     * @param doc Document
     * @param pageNum int
     */
    public void createHtml(HttpServletRequest request, Document doc,
                           int pageNum) {
        int pageTemplateId = doc.getPageTemplateId();
        String filePath = "";
        TemplateDb td = new TemplateDb();

        if (pageTemplateId == -1) {
            String dirCode = doc.getDirCode();
            Vector v = td.getTemplatesOfLeaf(dirCode);
            if (v.size() > 0) {
                filePath = ((TemplateDb) v.elementAt(0)).getString("path");
            }
        } else {
            td = (TemplateDb) td.getQObjectDb(new Integer(pageTemplateId));
            if (td != null)
                filePath = td.getString("path");
            else
                filePath = "";
        }

        if (filePath.equals("")) {
            Leaf lf = new Leaf();
            lf = lf.getLeaf(doc.getDirCode());
            String parentcode = lf.getParentCode();
            Leaf plf = new Leaf();
            td = new TemplateDb();

            while (!parentcode.equals("-1")) {
                plf = plf.getLeaf(parentcode);
                if (plf == null)
                    break;
                Vector v = td.getTemplatesOfLeaf(parentcode);
                if (v.size() > 0) {
                    filePath = ((TemplateDb) v.elementAt(0)).getString("path");
                    if (!filePath.equals(""))
                        break;
                }

                parentcode = plf.getParentCode();
            }
            if (filePath.equals(""))
                filePath = "doc/template/doc_show_default.htm";
        }

        filePath = Global.getRealPath() + filePath;
        try {
            // 加入ID标识
            request.setAttribute("id", "" + doc.getID());
            request.setAttribute("isCreateHtml", "true"); // 用于静态化时生成页码的判断
            request.setAttribute("CPages", "" + pageNum);
            TemplateLoader tl = new TemplateLoader(request, filePath);
            FileUtil fu = new FileUtil();
            File f = new File(Global.getRealPath() + doc.getDocHtmlPath());
            if (!f.isDirectory()) {
                f.mkdirs();
            }
            fu.WriteFile(Global.getRealPath() +
                         doc.getDocHtmlName(pageNum),
                         tl.toString(), "UTF-8");
        } catch (IOException e) {
            LogUtil.getLog(getClass()).error("createHtml:" + e.getMessage());
        }
    }

    public void createHtmlOfDirecroty(HttpServletRequest request) throws
            ErrMsgException {
        String dirCode = ParamUtil.get(request, "dir_code");
        String bDate = ParamUtil.get(request, "beginDate");
        String eDate = ParamUtil.get(request, "endDate");
        Date beginDate = DateUtil.parse(bDate, "yyyy-MM-dd");
        Date endDate = DateUtil.parse(eDate, "yyyy-MM-dd");
        if (beginDate == null || endDate == null) {
            // throw new ErrMsgException("请填写开始和结束日期!");
        }
        boolean isIncludeChildren = ParamUtil.getBoolean(request,
                "isIncludeChildren", false);

        String sql;
        if (beginDate==null && endDate==null)
            sql = "select id from document where class1=? and examine=2";
        else if (beginDate==null) {
            sql = "select id from document where class1=? and modifiedDate<=? and examine=2";
        }
        else if (endDate==null) {
            sql = "select id from document where class1=? and modifiedDate>=? and examine=2";
        }
        else
            sql = "select id from document where class1=? and modifiedDate>=? and modifiedDate<=? and examine=2";

        createHtmlOfDirectory(request, dirCode, sql, isIncludeChildren, beginDate, endDate);
    }

    public void createHtmlOfDirectory(HttpServletRequest request,
                                      String dirCode, String sql,
                                      boolean isIncludeChildren, Date beginDate, Date endDate) {
        Object[] params = null;
        if (beginDate==null && endDate==null)
            params = new Object[] {dirCode};
        else if (beginDate == null) {
            params = new Object[] {dirCode,
                     DateUtil.toLongString(endDate)};
        }
        else if (endDate==null) {
            params = new Object[] {dirCode,
                     DateUtil.toLongString(beginDate)};
        }
        else
            params = new Object[] {dirCode,
                          DateUtil.toLongString(beginDate),
                          DateUtil.toLongString(endDate)};
        Document doc = new Document();
        Vector v = doc.list(sql, params);
        Iterator ir = v.iterator();
        while (ir.hasNext()) {
            doc = (Document) ir.next();
            // System.out.println(getClass() + " dirCode=" + dirCode + " title=" +
            //                   doc.getTitle());

            createAllPageHtml(request, doc);
        }

        if (isIncludeChildren) {
            Leaf lf = new Leaf();
            lf = lf.getLeaf(dirCode);
            Vector vchild = lf.getChildren();
            Iterator irchild = vchild.iterator();
            while (irchild.hasNext()) {
                Leaf childlf = (Leaf) irchild.next();
                createHtmlOfDirectory(request, childlf.getCode(), sql, isIncludeChildren, beginDate, endDate);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -