栏目生成

This commit is contained in:
tianbj 2019-12-28 11:18:31 +08:00
parent 9c9556ea47
commit fdd1c49b62
1 changed files with 88 additions and 85 deletions

View File

@ -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();
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 columnContentModelId = column.getMdiyModelId(); String mobilePath;
StringWriter writer = new StringWriter(); ModelEntity contentModel = null;
try { // 判断当前栏目是否有自定义模型
// 为了分页添加column,判断栏目是否为父栏目 if (StringUtils.isNotBlank(columnContentModelId)) {
template.process(null, writer); // 通过栏目模型编号获取自定义模型实体
String content = writer.toString(); contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId));
//获取列表页显示的文章数量 }
int pageSize = TagParser.getPageSize(content); int pageNo = 1;
//获取总数 PageBean page = new PageBean();
int totalPageSize = PageUtil.totalPage(articleIdTotal, pageSize); page.setSize(pageSize);
//全局参数设置
String columnListPath; Map<String, Object> parserParams = new HashMap<String, Object>();
String mobilePath; parserParams.put(COLUMN, column);
ModelEntity contentModel = null; page.setTotal(totalPageSize);
// 判断当前栏目是否有自定义模型 parserParams.put(IS_DO, false);
if (StringUtils.isNotBlank(columnContentModelId)) { parserParams.put(HTML, HTML);
// 通过栏目模型编号获取自定义模型实体 parserParams.put(APP_ID, BasicUtil.getAppId());
contentModel = (ModelEntity) SpringUtil.getBean(ModelBizImpl.class).getEntity(Integer.parseInt(columnContentModelId)); if (contentModel!=null) {
} // 将自定义模型编号设置为key值
int pageNo = 1; parserParams.put(TABLE_NAME, contentModel.getModelTableName());
PageBean page = new PageBean(); }
page.setSize(pageSize); //如果单站点就废弃站点地址
//全局参数设置 if(ParserUtil.IS_SINGLE) {
Map<String, Object> parserParams = new HashMap<String, Object>(); parserParams.put(ParserUtil.URL, BasicUtil.getUrl());
parserParams.put(COLUMN, column); }
page.setTotal(totalPageSize);
parserParams.put(IS_DO, false); //文章列表页没有写文章列表标签总数为0
parserParams.put(HTML, HTML); if (totalPageSize <= 0) {
parserParams.put(APP_ID, BasicUtil.getAppId()); // 数据库中第一页是从开始0*size
if (contentModel!=null) { // 首页路径index.html
// 将自定义模型编号设置为key值 mobilePath = ParserUtil.buildMobileHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
parserParams.put(TABLE_NAME, contentModel.getModelTableName()); columnListPath = ParserUtil.buildHtmlPath(column.getCategoryPath() + File.separator + ParserUtil.INDEX);
}
//如果单站点就废弃站点地址
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);
}
// 设置分页的起始位置 // 设置分页的起始位置
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();
} }
} }