java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管理、在线模板页面编辑等功能、代码完全开源、MIT授权协议。
模板采用 freemarker 进行前端渲染
系统的模板目录在系统根目录下的templets内,下面是模板目录的文件目录结构。
├─default······································································ 默认模板目录
│ ├─image································································ 模板图片目录
│ ├─js······································································ 模板JS脚本目录
│ └─style··································································· 模板CSS样式目录
├─news········································································· 新闻模板
├─common········································································· 公共模板目录
├─index············································································ 首页
├─list·················································································· 默认列表页
├─sing·················································································· 默认单页
├─404·················································································· 默认错误页
└─article············································································· 默认详情页
├─mobile······································································ 手机站点模板目录
模板采用 freemarker 进行前端渲染
项目路径 :${webroot}
资源路径:${reroot}
模板必需包含几个页面
index.html 首页 list.html 列表页 article详情页 sing 默认单页 404.html
列表模板
指网站某个栏目的所有文章列表的模板,一般用 “list_名称.html” 命名。
栏目没有配置则跳转到默认list页面
详情模板:
表示内容详情页的模板,如文章模板,一般用 “article_名称.html” 命名。
栏目没有配置则跳转到默认页面article页面
<@of.like site_id=site.site_id>
<p class="nav">
<#list like as data >
<a href="${data.link_url}">${data.link_name}</a>|
</#list>
</p>
</@of.like>
site_id 根据需要可以写死,假如两个站点使用一个数据。
标签说明: of.like
site_id=site.site_id:site当前站点数据
like:系统返回数据对象集合
link_url:指定链接类型,不指定为全部,image图片,text文字
link_name:调用条数,不指定则读取全部,也可使用limit="1,3"的方式调用
as:list 循环输出的标识,即调用字段${data.link_url}
data :like对象别名
默认根据排序字段 asc排序
<@of.announce_list site_id=site.site_id limit=5>
<#list announce as data >
<li>
<a href="${data.id}"></a>|
<span>${data.create_time}</span>
<a href="page.html?s=/announce&content_id=${data.id}" title="${data.title}">${data.title}
</a>
</li>
</#list>
</@of.announce_list>
标签说明: of.announce_list
site_id=site.site_id:site当前站点数据
limit:显示几条数据
announce:系统返回数据对象集合
create_time:创建时间
title:标题
content:显示内容
sort :默认根据排序字段 desc 排序 越大越前面
公告内容标签
<@of.announce site_id=site.site_id content_id=params.content_id>
<h2 class="content-title"> ${announce.title}</h2>
<div class="content-inf">发布时间:${announce.create_time} </div>
<div class="content-txt">${announce.content}</div>
</@of.announce>
标签说明: of.announce
site_id=site.site_id:site当前站点数据
content_id:内容编号
announce:系统返回数据对象集合
create_time:创建时间
title:标题
content:显示内容
<@of.content_list site_id = site.site_id column_name="industry,company" limit=5>
<#list content_list as data >
<li><span>${data.create_time}</span>· <a href="${data.url}" title="${data.title_name}">${data.title_name}</a> </li>
</#list>
</@of.content_list>
标签说明: of.content_list
site_id=site.site_id:site当前站点数据
column_id:显示数据的栏目编号 column_id="12,3"
column_name:显示数据的栏目名称,与上面编号只能同时存在一个
content_list:系统返回数据对象集合
create_time:创建时间
title_name:标题
content:显示内容
thumbnail:缩略图
url:请求地址
sort :默认根据排序字段 desc 排序 越大越前面
<@of.content_list site_id = site.site_id column_id=column.column_id limit=2>
<ul>
<#list content_list as data >
<li>
<a href="${data.url}">
<img src="${reroot}/static/assets/image/123.jpg">
<span>${data.title_name}</span>
</a>
</li>
</#list>
</ul>
<@of.page />
</@of.content_list>
标签说明:<@of.page />
<#include "comn/page.html" /> 分页页面
<@of.page />
<@of.content site_id=site.site_id content_id=params.content_id>
<h2 class="content-title"> ${content.title_name}</h2>
<div class="content-inf">发布时间:${content.create_time} 作者:${content.author} 浏览次数:<span
id="views">${content.clicks}</span>
</div>
<div class="content-txt">${content.content}</div>
</@of.content>
标签说明: <@of.content> </@of.content >
content_id:页面内容id参数、可以指定显示内容
title_name:内容标题
create_time:发布时间
clicks:浏览数
content:内容
栏目名称:${columns.column_name!}
栏目编号:${columns.column_id!}
模板路径: ${columns. template_path!}
meta标题: ${columns. title!}
meta关键字:${columns. keywords!}
meta描述: ${columns. description!}
每页记录数:${pageSize!}
栏目图: ${columns. column_image!}
内容: ${columns. column_content!}
标签说明: ${site.stie_id}
site: 前缀
access_protocol:请求协议,http,https
site.access_path:访问路径
<@of.column site_id=site.site_id >
<li class="layui-nav-item <#if columns.column_english == null> layui-this</#if>"><a href="${session.site.access_protocol}://${session.site.access_path}">首页</a>
<#list column as data >
<li class="layui-nav-item <#if data.column_english == columns.column_english> layui-this</#if>">
<@of.column site_id=site.site_id parent_id=data.column_id >
<a href="<#if column?? && (column?size>0) > javascript:;<#else>${data.column_english}.html</#if>">${data.column_name}</a>
<#if column?? && (column?size>0) >
<dl class="layui-nav-child"> <!-- 二级菜单 -->
<#list column as child >
<dd class=" <#if child.column_english == columns.column_english> layui-this</#if>" ><a href="${child.column_english}.html">${child.column_name}</a></dd>
</#list >
</dl>
</#if>
</@of.column>
</li>
</#list>
</@of.column>
标签说明: <@of.column site_id=site.site_id >
column_name : 栏目名称
column_id :栏目编号
column_english:栏目别名url填写此属性
parent_id:上级栏目
column:返回数据对象
多级导航内部嵌套
<@of.ad site_id=site.site_id edition="banner">
<#list ad as data >
<div><a href="${data.ad_jump_url!'javascript:;'}"><img
src="${session.site.access_protocol}://${session.site.access_path}${data.ad_image_url}"
alt="${data.ad_name}" style="width: 100%;"></a></div>
</#list>
</@of.ad>
site_id 根据需要可以写死,假如两个站点使用一个数据。
标签说明: of.ad
site_id=site.site_id:site当前站点数据
edition:广告位
ad_jump_url:图片跳转地址
ad_image_url:广告图片地址
ad_name:广告名称
<@of.topic site_id=site.site_id>
<p class="nav">
<#list topic as data >
<a href="${data.topic_template}">${data.topic_name}</a>|
</#list>
</p>
</@of.topic>
site_id 根据需要可以写死,假如两个站点使用一个数据。
标签说明: of.topic
site_id=site.site_id:site当前站点数据
topic_template:模板路径
topic_image:标题图片
topic_name:标题名称
topic:返回对象别名
<@of.bbs site_id=site.site_id limit="10">
<p class="nav">
<#list bbs as data >
<a href="${data.bbs_id}">${data.content}${data.rev_content}${data.mobile}${data.email}${data.create_time}</a>|
</#list>
</p>
</@of.bss>
site_id 根据需要可以写死,假如两个站点使用一个数据。
保存留言接口:域名:8081/api/v1/bbs/save site_id 站点、content 内容 必传
标签说明: of.bbs
site_id=site.site_id:site当前站点数据
limit:显示多少条记录
content:留言内容
rev_content:回复内容
mobile:手机号
email:邮箱
create_time:创建时间
title:标题
<@of.comment site_id=site.site_id content_id=params.content_id limit="10">
<#list comment as data >
${data.comment_content} ${data.comment_time} |
</#list>
</@of.comment>
site_id 根据需要可以写死,假如两个站点使用一个数据。
保存留言接口:域名:8081/api/v1/comment/save site_id 站点、content_id comment_content内容 必传
详细请参考article 页面
标签说明: of.bbs
- site_id=site.site_id:site当前站点数据
- limit:显示多少条记录
- comment_content:评论内容
- content_id:内容编号
- comment_time:评论时间
<@of.system >
<p >
${system.tel} ${system.fax} ${system.address} ${system.icp } ${system.front_copyright }
</p>
</@of.system>
标签说明: of.system 后台设置功功能修改
tel=电话
fax:传真
address:地址
icp:备案号
front_copyright:版权