栏目生成

master
tianbj 6 years ago
parent 9c9556ea47
commit fdd1c49b62
  1. 171
      src/main/java/net/mingsoft/cms/util/CmsParserUtil.java

@ -80,87 +80,56 @@ public class CmsParserUtil extends ParserUtil {
cfg.setTemplateLoader(ftl); cfg.setTemplateLoader(ftl);
} }
// 移动端模板 // 移动端模板
Template mobileTemplate = cfg.getTemplate( try{
BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getCategoryListUrl(), Const.UTF8); Template mobileTemplate = cfg.getTemplate(
// pc端模板 BasicUtil.getApp().getAppMobileStyle() + File.separator + column.getCategoryListUrl(), Const.UTF8);
Template template = cfg.getTemplate(File.separator + column.getCategoryListUrl(), Const.UTF8); // pc端模板
Template template = cfg.getTemplate(File.separator + column.getCategoryListUrl(), Const.UTF8);
// 文章的栏目模型编号 // 文章的栏目模型编号
String columnContentModelId = column.getMdiyModelId(); String columnContentModelId = column.getMdiyModelId();
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
try { try {
// 为了分页添加column,判断栏目是否为父栏目 // 为了分页添加column,判断栏目是否为父栏目
template.process(null, writer); template.process(null, writer);
String content = writer.toString(); String content = writer.toString();
//获取列表页显示的文章数量 //获取列表页显示的文章数量
int pageSize = TagParser.getPageSize(content); int pageSize = TagParser.getPageSize(content);
//获取总数 //获取总数
int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize); int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize);
String columnListPath; String columnListPath;
String mobilePath; String mobilePath;
ModelEntity contentModel = null; ModelEntity contentModel = null;
// 判断当前栏目是否有自定义模型 // 判断当前栏目是否有自定义模型
if (StringUtils.isNotBlank(columnContentModelId)) { if (StringUtils.isNotBlank(columnContentModelId)) {
// 通过栏目模型编号获取自定义模型实体 // 通过栏目模型编号获取自定义模型实体
contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId)); contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId));
} }
int pageNo = 1; int pageNo = 1;
PageBean page = new PageBean(); PageBean page = new PageBean();
page.setSize(pageSize); page.setSize(pageSize);
//全局参数设置 //全局参数设置
Map<String, Object> parserParams = new HashMap<String, Object>(); Map<String, Object> parserParams = new HashMap<String, Object>();
parserParams.put(COLUMN, column); parserParams.put(COLUMN, column);
page.setTotal(totalPageSize); page.setTotal(totalPageSize);
parserParams.put(IS_DO, false); parserParams.put(IS_DO, false);
parserParams.put(HTML, HTML); parserParams.put(HTML, HTML);
parserParams.put(APP_ID, BasicUtil.getAppId()); parserParams.put(APP_ID, BasicUtil.getAppId());
if (contentModel!=null) { if (contentModel!=null) {
// 将自定义模型编号设置为key值 // 将自定义模型编号设置为key值
parserParams.put(TABLE_NAME, contentModel.getModelTableName()); parserParams.put(TABLE_NAME, contentModel.getModelTableName());
} }
//如果单站点,就废弃站点地址 //如果单站点,就废弃站点地址
if(ParserUtil.IS_SINGLE) { if(ParserUtil.IS_SINGLE) {
parserParams.put(ParserUtil.URL, BasicUtil.getUrl()); parserParams.put(ParserUtil.URL, BasicUtil.getUrl());
} }
//文章列表页没有写文章列表标签,总数为0 //文章列表页没有写文章列表标签,总数为0
if (totalPageSize <= 0) { if (totalPageSize <= 0) {
// 数据库中第一页是从开始0*size // 数据库中第一页是从开始0*size
// 首页路径index.html // 首页路径index.html
mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX); mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
columnListPath = ParserUtil.buildHtmlPath(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);
}
// 设置分页的起始位置 // 设置分页的起始位置
page.setPageNo(pageNo); page.setPageNo(pageNo);
parserParams.put(ParserUtil.PAGE, page); parserParams.put(ParserUtil.PAGE, page);
@ -170,15 +139,49 @@ public class CmsParserUtil extends ParserUtil {
if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) { if (ParserUtil.hasMobileFile(column.getCategoryListUrl())) {
writer = new StringWriter(); writer = new StringWriter();
mobileTemplate.process(null, writer); mobileTemplate.process(null, writer);
tag = new TagParser(writer.toString(),parserParams); tag = new TagParser(writer.toString(), parserParams);
// 将tag.getContent()写入路径 // 将tag.getContent()写入路径
FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8); FileUtil.writeString(tag.rendering(), mobilePath, Const.UTF8);
} }
writer = new StringWriter(); writer = new StringWriter();
pageNo++; } else {
} // 遍历分页
} for (int i = 0; i < totalPageSize; i++) {
} catch (TemplateException e) { 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(); e.printStackTrace();
} }
} }

Loading…
Cancel
Save