From fdd1c49b62cbaca92feafcb427c114fe8cbf8b63 Mon Sep 17 00:00:00 2001 From: tianbj <1309855586@qq.com> Date: Sat, 28 Dec 2019 11:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=8F=E7=9B=AE=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/mingsoft/cms/util/CmsParserUtil.java | 173 +++++++++--------- 1 file changed, 88 insertions(+), 85 deletions(-) diff --git a/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java b/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java index f6fea031..608ed55c 100644 --- a/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java +++ b/src/main/java/net/mingsoft/cms/util/CmsParserUtil.java @@ -80,87 +80,56 @@ public class CmsParserUtil extends ParserUtil { cfg.setTemplateLoader(ftl); } // 移动端模板 - Template mobileTemplate = cfg.getTemplate( - BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getCategoryListUrl(), Const.UTF8); - // pc端模板 - Template template = cfg.getTemplate(File.separator + column.getCategoryListUrl(), Const.UTF8); + try{ + Template mobileTemplate = cfg.getTemplate( + BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getCategoryListUrl(), Const.UTF8); + // pc端模板 + Template template = cfg.getTemplate(File.separator + column.getCategoryListUrl(), Const.UTF8); + // 文章的栏目模型编号 + String columnContentModelId = column.getMdiyModelId(); + StringWriter writer = new StringWriter(); + try { + // 为了分页添加column,判断栏目是否为父栏目 + template.process(null, writer); + String content = writer.toString(); + //获取列表页显示的文章数量 + int pageSize = TagParser.getPageSize(content); + //获取总数 + int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize); - // 文章的栏目模型编号 - String columnContentModelId = column.getMdiyModelId(); - StringWriter writer = new StringWriter(); - try { - // 为了分页添加column,判断栏目是否为父栏目 - template.process(null, writer); - String content = writer.toString(); - //获取列表页显示的文章数量 - int pageSize = TagParser.getPageSize(content); - //获取总数 - int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize); - - String columnListPath; - String mobilePath; - ModelEntity contentModel = null; - // 判断当前栏目是否有自定义模型 - if (StringUtils.isNotBlank(columnContentModelId)) { - // 通过栏目模型编号获取自定义模型实体 - contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId)); - } - int pageNo = 1; - PageBean page = new PageBean(); - page.setSize(pageSize); - //全局参数设置 - Map parserParams = new HashMap(); - parserParams.put(COLUMN, column); - page.setTotal(totalPageSize); - parserParams.put(IS_DO, false); - parserParams.put(HTML, HTML); - parserParams.put(APP_ID, BasicUtil.getAppId()); - if (contentModel!=null) { - // 将自定义模型编号设置为key值 - parserParams.put(TABLE_NAME, contentModel.getModelTableName()); - } - //如果单站点,就废弃站点地址 - if(ParserUtil.IS_SINGLE) { - parserParams.put(ParserUtil.URL, BasicUtil.getUrl()); - } - - //文章列表页没有写文章列表标签,总数为0 - if (totalPageSize <= 0) { - // 数据库中第一页是从开始0*size - // 首页路径index.html - mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); - columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); - // 设置分页的起始位置 - page.setPageNo(pageNo); - parserParams.put(ParserUtil.PAGE, page); - TagParser tag = new TagParser(content,parserParams); - FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8); - // 判断是手机端生成还是pc端,防止重复生成 - if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) { - writer = new StringWriter(); - mobileTemplate.process(null, writer); - tag = new TagParser(writer.toString(), parserParams); - // 将tag.getContent()写入路径 - FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8); - } - writer = new StringWriter(); - } else { - // 遍历分页 - for (int i = 0; i < totalPageSize; i++) { - if (i == 0) { - // 数据库中第一页是从开始0*size - // 首页路径index.html - mobilePath = ParserUtil - .buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); - columnListPath = ParserUtil - .buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); - } else { - // 其他路径list-2.html - mobilePath = ParserUtil.buildMobileHtmlPath( - column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo); - columnListPath = ParserUtil - .buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo); - } + String columnListPath; + String mobilePath; + ModelEntity contentModel = null; + // 判断当前栏目是否有自定义模型 + if (StringUtils.isNotBlank(columnContentModelId)) { + // 通过栏目模型编号获取自定义模型实体 + contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId)); + } + int pageNo = 1; + PageBean page = new PageBean(); + page.setSize(pageSize); + //全局参数设置 + Map parserParams = new HashMap(); + parserParams.put(COLUMN, column); + page.setTotal(totalPageSize); + parserParams.put(IS_DO, false); + parserParams.put(HTML, HTML); + parserParams.put(APP_ID, BasicUtil.getAppId()); + if (contentModel!=null) { + // 将自定义模型编号设置为key值 + parserParams.put(TABLE_NAME, contentModel.getModelTableName()); + } + //如果单站点,就废弃站点地址 + if(ParserUtil.IS_SINGLE) { + parserParams.put(ParserUtil.URL, BasicUtil.getUrl()); + } + + //文章列表页没有写文章列表标签,总数为0 + if (totalPageSize <= 0) { + // 数据库中第一页是从开始0*size + // 首页路径index.html + mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); + columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); // 设置分页的起始位置 page.setPageNo(pageNo); parserParams.put(ParserUtil.PAGE, page); @@ -170,15 +139,49 @@ public class CmsParserUtil extends ParserUtil { if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) { writer = new StringWriter(); mobileTemplate.process(null, writer); - tag = new TagParser(writer.toString(),parserParams); + tag = new TagParser(writer.toString(), parserParams); // 将tag.getContent()写入路径 FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8); } writer = new StringWriter(); - pageNo++; - } - } - } catch (TemplateException e) { + } else { + // 遍历分页 + for (int i = 0; i < totalPageSize; i++) { + if (i == 0) { + // 数据库中第一页是从开始0*size + // 首页路径index.html + mobilePath = ParserUtil + .buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); + columnListPath = ParserUtil + .buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); + } else { + // 其他路径list-2.html + mobilePath = ParserUtil.buildMobileHtmlPath( + column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo); + columnListPath = ParserUtil + .buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.PAGE_LIST + pageNo); + } + // 设置分页的起始位置 + page.setPageNo(pageNo); + parserParams.put(ParserUtil.PAGE, page); + TagParser tag = new TagParser(content,parserParams); + FileUtil.writeString(tag.rendering(), columnListPath, Const.UTF8); + // 判断是手机端生成还是pc端,防止重复生成 + if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) { + writer = new StringWriter(); + mobileTemplate.process(null, writer); + tag = new TagParser(writer.toString(),parserParams); + // 将tag.getContent()写入路径 + FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8); + } + writer = new StringWriter(); + pageNo++; + } + } + } catch (TemplateException e) { + e.printStackTrace(); + } + }catch (TemplateNotFoundException e){ e.printStackTrace(); } }