当前位置: 首页 > 工具软件 > ofcms > 使用案例 >

OFCMS 模板开发手册 java 版cms系统

白智
2023-12-01

一、模板说明

项目概述

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}&nbsp;&nbsp;  </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}&nbsp;&nbsp; 作者:${content.author}&nbsp;&nbsp;浏览次数:<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:版权

 

三、常见问题

 类似资料: