知了CMS开发说明文档(ibeetl) 建站系统文档

简介: 知了CMS开发说明文档(ibeetl) 建站系统文档

知了CMS开发说明文档

一、项目介绍

    本项目主要使用springboot、mybatis、beetl开发支持多站点,无限级栏目,内容模型、模板标签、全文检索、全站静态化等功能

三、项目基础

3.1、前台入口控制器类:

前台入口控制器类:com.zhiliao.module.web.cms.IndexController

访问路径:http://127.0.0.1/{frontPath}/1  

注:  frontPath可在配置文件中配置 默认为front

3.2、后台入口控制器类:

后台入口控制器类:com.zhiliao.module.web.system.SystemController

访问路径:http://127.0.0.1/{adminPath}/login

注: adminPath也可在配置文件中配置 默认为admin

3.3、项目配置文件

配置文件中数据库设置什么的比较简单暂且略过,这里说下比较重要的设置,如下图标出的属性必须根据实际访问地址修改。

3.4、项目启动与打包

      1)启动: SpringBoot已集成嵌入式tomcat,所以开发阶段直接com.zhiliao.CmsApplication类中main的方法即可启动项目。

       2)打包: 使用 mvn  clean  package  -Dmaven.test.skip 命令打包,在打war包的时候注意不要将嵌入式tomcat打到war包内,需要添加如下下图参数。

     

四、相关技术

  1. SpringBoot
  2. Mybatis
  3. Mybatis 通用mapper 插件(http://mybatis.tk
  4. Mybatis  pageHelper 分页插件 (http://mybatis.tk
  5. Beetl (http://ibeetl.com)
  6. Shiro
  7. Ehcache
  8. Quartz
  9. Druid
  10. B-jui  v1.2(http://www.b-jui.com/

 

五、模板标签

注:模板标签实现类全部位于com.zhiliao.component.beetl.tag.cms包下。

5.1、栏目列表标签

  <#cms_category_list  siteId="${site.siteId}" categoryId="0" isNav="1" var="bean">

        ${bean.index}

        ${bean.catagoryId}.....(数据库对应字段)

</#cms_category_list>

siteId : 站点编号

CategoryId: 栏目编号

IsNav:是否导航

例子:

<div class="nav menu">

   <ul>

       @if(isNotEmpty(current)&¤t=='index'){

       <li class="on">

       @}else{

       <li>

       @}

       <a href="${baseURL!}">网站首页</a>

       </li>

       <#cms_category_list  siteId="${site.siteId}" categoryId="0" isNav="1" var="bean">

       @if(isNotEmpty(category)&&(category.categoryId==bean.categoryId||category.parentId==bean.categoryId)){

       <li class="on">

           @}else{

       <li>

           @}

           <!--判断当前栏目是否包含子栏目,如果有的话就遍历输出子栏目-->

           @if(isNotEmpty(bean.hasChild)&&bean.hasChild){

           <a href="${bean.url!}">${bean.categoryName!}</a>

           <ul >

               <#cms_category_list  siteId="${site.siteId}" categoryId="${bean.categoryId!}" isNav="0" var="subBean">

               <li>

                   <a href="${subBean.url!}">${subBean.categoryName!}</a>

               </li>

              </#cms_category_list>

           </ul>

           @}else{

           <a href="${bean.url!}" target="_blank">${bean.categoryName!}</a>

           @}

       </li>

       </#cms_category_list>

   </ul>

</div>

效果:

5.2、栏目标签

<#cms_category  categoryId="${category.categoryId}" isParent="1" var="bean">

${bean.index}

    ${bean.catagoryId}.....(数据库对应字段)

</#cms_category>

CategoryId: 栏目编号

isParent:是否查询父类(1是,0否)

 

例子:

<div class="row">

   <div class="n_content">

       <div class="n_lf">

           <#cms_category  categoryId="${category.categoryId}" isParent="1" var="bean">

           <div class="s_title01">

               <span>${bean.categoryName!,xss}</span>

           </div>

           <ul class="n_lf_list">

               <#cms_category_list  siteId="${site.siteId}" categoryId="${bean.categoryId!}" isNav="0"   var="bean">

               @if(isNotEmpty(category)&&category.categoryId==bean.categoryId){

               <li class="current">

                   <a href="${bean.url!}">${bean.categoryName!}</a>

               </li>

               @}else{

               <li>

                   <a href="${bean.url!}">${bean.categoryName!}</a>

               </li>

               @}

           </#cms_category_list>

           </ul>

       </#cms_category>

   </div>

 效果:

5.3、内容列表标签

<#cms_content_list  siteId="${site.siteId}" categoryId="213"  orderBy="2" isHot="0"    hasChild="1" isRecommend="0"  size="7"   titleLen="20"   var="bean">

${bean.index}

    ${bean.catagoryId}.....(数据库对应字段)

</#cms_content_list>  

SiteId: 站点编号

CategoryId: 栏目编号

orderBy:排序类型(0,根据cntentId 倒叙,1根据contentId正序,2发布时间倒序,3发布时间正序,4更新时间倒叙,5更新时间正序)

isHot是否热门(根据浏览量排序)

hasChild包含子栏目内容

isRecommend是否推荐内容(0否,1是)

Size查询的数量

titleLen标题字数长度

 

例子:

  <div class="topic_items"   style="height:292px;">

  <ul>

    <#cms_content_list  siteId="${site.siteId}" categoryId="213"  orderBy="2" isHot="0"    hasChild="1" isRecommend="0"  size="7"   titleLen="20"   var="bean">

        <li><a HREF="${bean.url!}"  target="_blank">${bean.title!,xss}</a><span>${bean.inputdate,dateFormat="yyyy-MM-dd"}</span></li>

    </#cms_content_list>

  </ul>

</div>

效果:

5.4、内容列表分页标签(此标签只能在list页面使用)

<#cms_content_page  siteId="${site.siteId!}"  titleLen="30" page="${page!}" var="content">

    ${bean.index}

    ${bean.title}

    ${bean.catagoryId}.....(数据库对应字段)

</#cms_content_page>

 

siteId:站点编号

TitleLen: 标题字数

 

例子:

<div class="content_list">

  <ul>

          <#cms_content_page  siteId="${site.siteId!}"  titleLen="30" page="${page!}" var="content">

                <li>

                        <a href="${content.url!}" target="_blank">${content.title!,xss}</a>

                        @if(isNotEmpty(content.thumb)){

                                 <span><img src="${resPath}/39z/img/notice_icon.png">(图片)</span>

                         @}

                          <time>${content.inputdate!,dateFormat="yyyy-MM-dd"}</time>

                 </li>

          </#cms_content_page>

  </ul>

</div>

 

效果:

 

5.5、分页标签

    <#cms_pagination siteId="${site.siteId}" categoryId="${category.categoryId}" page="${page}" moreNum="6"  var="page" >

    </#cms_pagination>

siteId站点编号

CategoryId: 栏目编号

Page分页对象(使用mybatis pagehelper pageinfo)

 

例子:

<div  class="m-pagination">

     <ul class="m-pagination-page" style="display: block;">

        @if(page.pageNum == 1){

        <li class="first"><a>首页</a></li>

        @}else{

        <li><a href="${ctxPath}/front/${site.siteId}/${category.categoryId}/index_1.html">首页</a></li>

        @}

        <#cms_pagination siteId="${site.siteId}" categoryId="${category.categoryId}" page="${page}" moreNum="6"  var="page" >

        <li>${page.first}</li>


        @for( change in page.changePage){

        @if(!change.isLink){

        @if(change.isMore){

        <li>${change.value!}</li>

        @}else{

        <li class="active">${change.value!}</li>

        @}

        @}else{

        <li> ${change.url!}</li>

        @}

        @}


        <li>${page.next}</li>

         </#cms_pagination>

        @if(page.pageNum == page.pages){

        <li><a>末页</a></li>

        @}else{

        <li><a href="${ctxPath}/front/${site.siteId}/${category.categoryId}/index_${page.pages!}.html">末页</a></li>

        @}

     </ul>

     <div class="m-pagination-jump">

        <div class="m-pagination-group">

           <input type="number"  id="pageNum"><button οnclick="goPageNum()"  type="button">Go</button>

        </div>

     </div>

  </div>

</div>

 

效果:

5.6、友情链接标签

<#cms_friendlink size="8" groupId="1" var="bean">

        ${bean.index}

</#cms_friendlink>

    Size:调用数量

    groupId分组编号

  例子:

<#cms_friendlink size="8" groupId="1" var="bean">

@if(bean.index<8){

<a target="_blank"  href="${bean.linkUrl!}">${bean.linkName!}</a> |

@}else{

<a target="_blank"  href="${bean.linkUrl!}">${bean.linkName!}</a>

@}

</#cms_friendlink>

  效果:

5.7、面包屑导航标签

  <#cms_site_pos  site="${site}" category="${category}"  var="bean">  

   </#cms_site_pos>

  Site:site对象(index,list,content页面均可获取)

  Category:(content页面均可获取DAO )

 例子:

<label class="content_bread">

  <img src="${resPath}/3Z/img/pos.png"/>

                     <#cms_site_pos  site="${site}" category="${category}"  var="bean">

                         <span>您当前的位置:${bean.baseURL}</span>

                         <span>></span>

                         @for(location in bean.locations){

                         <a href="${location.url}">${location.categoryName}</a>

                         @if(!locationLP.last){

                         <span>></span>

                         @}

                         @}

                     </#cms_site_pos>

</label>

效果:

   

5.8、模型字段查找标签(支持自定义模型为radio的字段)

<#cms_modelfiled_find siteId="${site.siteId!}"   categoryId="${category.categoryId!}" modelId="80" filedName="riqi" param="${param!}"  var="filed">

 

</#cms_modelfiled_find>

siteId:站点编号

categoryId栏目编号

modelId模型编号

filedName字段名称

Param查询参数

例子

<label class="select">

  日期 :

  <select  id="rqi">

     <option VALUE="">请选择</option>

     <#cms_modelfiled_find siteId="${site.siteId!}"   categoryId="${category.categoryId!}" modelId="80" filedName="riqi" param="${param!}"  var="filed">

     @if(isNotEmpty(param)){

     @var sekected = '';

     @if(isNotEmpty(session.riqi)&&session.riqi==filed.name){

     @sekected = 'selected="selected"';

     @}

     <option value="${filed.url!}" ${sekected} >${filed.name!}</option>

     @}else{

     <option value="${filed.url!}" >${filed.name!}</option>

     @}

  </#cms_modelfiled_find>

  </select>

</label>

 

效果:

六、其他

6.1、页面变量

  site :当前站点对象(可在index,list,content页面获取到)

  category :当前栏目对象(可在list,content页面获取到)

  content :当前栏目对象(可在list,content页面获取到)

  description: 页面描述(可在index,list,content页面获取到)

  Keywords:页面关键字(可在index,list,content页面获取到)

6.2、页面常量

   com.zhiliao.component.beetl.BeetlConfiguration  

6.3、页面Xss处理

  ${bean.title!,xss}

6.4、页面字符串处理  

  日期格式化:${content.inputdate!,dateFormat="yyyy-MM-dd"}

   字符串处理:http://ibeetl.com/guide/#beetl      

 


相关文章
|
10天前
|
安全 API 网络安全
如何选择CMS网站管理系统来创建网站呢?
选择网站管理系统需要考虑多方面因素,如友好的操控性、扩展性、安全性以及是否适合推广。pageadmin CMS适合企业、政府等大型网站。
|
1月前
|
安全 前端开发
CMS建站系统如何选择?
现在有很多的人在建设网站的时候采用的都是cms系统,我国比较经常使用的是PageAdmin、织梦CMS、帝国系统等等不同的CMS系统使用的方向也是有所差异的,今天给大家分析一下三大CMS的优缺点。
|
1月前
|
监控 安全 前端开发
如何选择CMS建站系统来制作网站?
对于很多没有建站基础的客户来说,自助建站系统(CMS)能帮助他们顺利完成网站的搭建,但是如何选择这类的自助建站系统?网上搜素会出来一大堆的,会出现很多不同的产品?如何鉴定那些CMS是适合自己的?
|
1月前
|
域名解析 SQL 前端开发
如何使用CMS来搭建一个网站?
在如今的时代,拥有一个网站成为每一家企业展现形象、拓展业务、传递信息的重要途径。网站在互联网上吸引潜在客户、合作伙伴。对于大多数希望自行建设网站的企业来说,内容管理系统(CMS)成为了理想选择。
|
7天前
|
安全
怎么样去挑选适合的CMS建站系统?
随着互联网高速发展,营销也从线下慢慢转移到线上,网站成为各大单位营销工具,越来越多的企业和单位选择使用平台网站CMS建站系统来搭建官网。互联网上有众多的CMS系统,怎么样去挑选适合的CMS建站系统,下面给大家分析一下:
|
22天前
|
移动开发 前端开发 搜索推荐
网站模版下载建站CMS搭建网站
在互联网发达的年代,官方网站就是企业在会联网上的门牌,更是企业与网民的重要桥梁。对于希望快速搭建企业网站而又缺乏专业网页设计技能的企业而言,使用建站CMS成为了一个高效且经济的选择。而建站CMS里面有很多网站模版,用户可以直接使用模版来搭建网站,今天给大家分析一下建站CMS、网站模版来搭建网站优势和事项
|
24天前
|
缓存 安全 前端开发
如何使用CMS模版来搭建网站?
内容管理系统(CMS)是用于创建和管理网站的专业工具。使用CMS模板可以提高网站的创建速度,同时还能提高网站的维护和管理。本文可给大家介绍一下如何使用CMS快速搭建一个网站?
|
1月前
|
自然语言处理 关系型数据库 MySQL
免费的CMS系统有哪些?
内容管理系统(Content Management System,简称CMS) 是一种用于创建、编辑、组织和发布内容的软件系统。它提供了一个用户友好的界面,使用户可以轻松管理网站的内容,而无需具备编程或技术知识。 下面给大家介绍几款目前国内比较常用,而且发展历史比较长的免费CMS系统:
155 1
|
1月前
|
域名解析 前端开发 搜索推荐
什么叫CMS?如何使用CMS来制作网站?
PageAdmin CMS,是一套开发了17年,官网还持续在更新和维护的网站内容管理系统,对于领开发的用户来说,对于有网站优化的用户来说,PageAdmin CMS就能帮助我们快速搭建属于自己的个性网站或企业网站。
102 5
|
30天前
|
数据可视化
如何选择适合自己建站的CMS系统?
CMS(内容管理系统)平台让您无需理解任何代码(至少对大多数代码而言)即可轻松创建网站。有许多可用的 CMS 选项,这意味着您可能很难选择最适合您需求的 CMS。

相关实验场景

更多