2023年11月28日发(作者:)

FreeCMS商业版二次开发文档

FreeCMS商业版二次开发文档

FreeCMS商业版二次开发文档

1、文档概述 .................................................................................................................................... 1

1.1文档的建立 ........................................................................................................................... 1

1.2文档的目标 ........................................................................................................................... 1

2FREECMS二次开发概述 ........................................................................................................ 2

2.1概述 ....................................................................................................................................... 2

2.2系统目录框架 ....................................................................................................................... 3

2.3搭建开发环境 ....................................................................................................................... 4

3、后台功能开发 .......................................................................................................................... 10

3.1后台菜单项配置 .................................................................................................................. 10

3.2后台功能开发 ...................................................................................................................... 10

4、前台模板开发 .......................................................................................................................... 16

4.1基本概念 .............................................................................................................................. 16

4.2模板制作流程 ...................................................................................................................... 19

4.3开发模板标签 ...................................................................................................................... 20

FreeCMS商业版二次开发文档 1

FreeCMS商业版二次开发文档

1、文档概述

1.1 文档的建立

本文档是专门针对FreeCMS商业版产品的二次开发而编写的指导性手册;它从后

台功能配置、前台模板开发和二次开发所需的接口三个方面详细阐述了有关二次开

发中所涉及的问题。

本文档是由FreeCMS产品开发组共同建立和维护的。在实际的应用中,FreeCMS

开发组有义务不断更新和补充完善本文档。

1.2 文档的目标

本文档旨在解决以下问题:

如何应用和扩展FreeCMS体系;

如何对后台权限及后台功能菜单等进行配置;

如何利用模板机制开发集成所需功能;

如何使用FreeCMS系统提供的二次开发接口。

FreeCMS商业版二次开发文档 2

2FreeCMS二次开发概述

2.1 概述

本文档假设您熟悉java开发及相关开发工具的使用。

FreeCMS主要使用的技术有:mybatis3springspring mvcfreemaker

jqueryjsp

FreeCMS技术架构图

展示层(jsp/freemarker/jquery)

Spirng MVC页面控制层(Controller)

服务层(Service)

Mybatis数据层框架(DAO/Model)

数据库(Mysql/Mssql)

FreeCMS是作为一个开放的平台设计的,遵从以下几个原则:

1. 可自由配置

无论前台页面还是后台功能,系统都坚持可配置的原则,后台管理菜单项可以通过简单

的配置自定义。第三章将详细介绍如何配置各功能项。

2. 数据与显示分离

后台录入的数据与前台显示的样式分离已经成为网站建设者的共识,分离能够随意更改

数据或者界面而不影响到另一方。FreeCMS通过强大模板机制将数据与显示结合在一起,

同时能够将二次开发的功能加入模板中。第四章将详细介绍如何实现。

3. 提供丰富的二次开发接口

FreeCMS商业版二次开发文档 3

通过二次开发接口,FreeCMS使用者能够方便的获取系统数据、集成相关功能。

2.2 系统目录框架

/admin

系统后台管理程序使用的静态资源,如js

/admin/cms

cms内容管理系统相关程序使用的静态资源,如js

/cms

存放CMS前台使用的程序使用的静态资源,如js

/member

存放前台中的会员功能程序使用的静态资源,如js

/site

存放生成的站点静态页面文件

/templet

存放站点模板文件

/WEB-INF/views/admin

系统后台管理程序。

/WEB-INF/views/admin/cms

cms内容管理系统相关程序。

/WEB-INF/views/cms

存放CMS前台使用的程序。

/WEB-INF/views/member

存放前台中的会员功能程序。

FreeCMS商业版二次开发文档 4

2.3 搭建开发环境

FreeTeam使用myeclipse 6.5 开发FreeCMS推荐使用myclipse 6.5搭建开

发环境。

打开myeclise,新建项目。

FreeCMS商业版二次开发文档 5

填写项目属性后,点击"Finish"按钮。

把下载的源码包解压,然后把所有文件复制到项目工程的src文件夹中。

FreeCMS商业版二次开发文档 6

把下载的安装包解压,然后把ROOT文件夹下的所有文件复制到项目工程的

WebRoot文件夹中。

FreeCMS商业版二次开发文档 7

最后需要将项目的编码设置为UTF-8

FreeCMS商业版二次开发文档 8

FreeCMS商业版二次开发文档 9

项目会提示有错误,主要在jsphtml文件的语法检测,只要src文件夹不提

示有错误,项目就可以正常运行。

数据库的安装可以参考FreeCMS用户手册,此处不再赘述。

如果项目没有作为tomcat的根目录运行,请重新静态化演示站点的相关页面。

FreeCMS商业版二次开发文档 10

3、后台功能开发

3.1后台菜单项配置

系统中各项菜单都是可以配置的,如果需要添加新的功能菜单可以通过菜单管理功能进行配

置。可参考用户手册的菜单管理部分,在此不再赘述。

3.2后台功能开发

本文档以一个单表维护作示例,向大家演示后台功能的开发流程。

1.添加管理菜单

添加菜单项目二次开发演示,设置地址为,代表/admin/demo_

点击“管理操作按钮”,添加需要的操作按钮。

FreeCMS商业版二次开发文档 11

2.创建数据库表

数据库表设计(freecms_demo)

字段 类型 说明

id varchar(50) 唯一标识,使用uuid

textdemo

radiodemo varchar(50) 单选框

checkboxdemo varchar(50) 复选框

selectdemo varchar(50) 下拉列表

textareademo text 文本区域

varchar(50) 文本框

由于FreeCMS同时支持mysqlmssql两种数据,所以要在两种数据库中都创建表。

Mysql

Mssql

FreeCMS商业版二次开发文档 12

3.生成mybatis相关文件

打开/WEB-INF/lib/文件并修改为如下内容.

xml version="1.0" encoding="UTF-8"?>

DOCTYPE generatorConfiguration

PUBLIC "-////DTD MyBatis Generator Configuration 1.0//EN"

"/dtd/mybatis-generator-config_1_">

<generatorConfiguration>

<classPathEntry location="" />

<context id="FreeCMS_Tables" targetRuntime="MyBatis3">

<jdbcConnection driverClass=""

connectionURL="jdbc:jtds:sqlserver://localhost:1433/freecms"

password="sa">

jdbcConnection>

<javaTypeResolver>

<property name="forceBigDecimals" value="false" />

javaTypeResolver>

<javaModelGenerator targetPackage=""

targetProject="../../../src">

<property name="enableSubPackages" value="true" />

<property name="trimStrings" value="true" />

javaModelGenerator>

<sqlMapGenerator targetPackage=""

targetProject="../../../src">

<property name="enableSubPackages" value="true" />

sqlMapGenerator>

<javaClientGenerator type="XMLMAPPER"

targetPackage=""

targetProject="../../../src">

<property name="enableSubPackages" value="true" />

javaClientGenerator>

<table tableName="freecms_demo" >table>

context>

generatorConfiguration>

dos窗口进入所在文件夹,然后执行命令

java -jar -configfile

-overwrite

FreeCMS商业版二次开发文档 14

刷新项目,可以看到生成的mybatis相关文件。

为了文件名的简洁,可以把文件名中的Freecms字符删除。

修改java文件名称

FreecmsDemo修改为Demo

FreecmsDemoExample修改为DemoExample

FreecmsDemoMapper修改为DemoMapper

打开文件,把FreecmsDemo改为Demo.

DemoMappr_

DemoMappr_DemoMappr_

打开,添加DemoMapper

FreeCMS商业版二次开发文档 15

如果需要支持分页功能,DemoExample需要继承BaseExample

4.创建相关文件

创建service层文件

接口:rvice.

实现类:rviceImpl.

创建action层文件ntroller

FreeCMS商业版二次开发文档 16

Controller文件需要继承BaseController

/WEB-INF/views/admin文件夹创建用到的jsp文件,如

至此需要添加的文件基本创建完毕,演示功能的具体实现可以参见程序文件,在此不再赘述。

4

、前台模板开发

4.1基本概念

一、程序和前台页面的完全分离

FreeCMS 是程序和页面完全分离的一个系统,这样的好处就是前台页面可以随意的更改而

不需要考虑程序的因素,从而可以达到丰富的页面效果来满足用户的个性化需求,同时前台

的页面还可以通过系统后台的模板编辑器来修改,保证了前台页面能够随时随地的根据用户

的要求来迅速的改变,真正做到“随需应变”。

二、模板的类型

模板分为三种类型:首页模板、栏目模板、内容模板。

首页模板指生成首页使用的模板文件,系统规定为""

FreeCMS商业版二次开发文档 17

栏目模板指栏目本身生成页面时使用的模板文件,默认为"",可以通过设置栏

目的栏目模板选择栏目模板文件;

内容模板指内容生成页面时使用的模板文件,默认为"",可以通过设置栏目的信息

模板选择此栏目下信息的信息模板文件;

FreeCMS商业版二次开发文档 18

三、模板的位置

每个模板都有一个单独的文件夹,存放在/templet目录下。

四、网站目录构成

下图是一个典型的站点目录结构,index.html”是生成的站点首页,resources文件夹是

模板的resources文件夹的复制,其它文件夹是生成的栏目和信息页面。

FreeCMS商业版二次开发文档 19

4.2模板制作流程

第一步:新建模板

参见FreeCMS用户手册的新建模板功能。

第二步:编辑模板

编辑模板主要完成模板文件的制作和栏目链接分类的初始化,参见FreeCMS用户手册的模

板管理功能的文件管理和初始化数据部分。

第三步:创建测试模板站点

创建一个测试站点,并设置站点的模板为您创建的模板。

FreeCMS商业版二次开发文档 20

第四步:生成页面

通过静态化管理完成页面的静态化并测试模板制作是否正确。

4.3开发模板标签

FreeCMS模板机制可以看做是一个将数据方便的显示到前台页面的平台,在此平台中除了

CMS后台中录入的栏目及内容等数据显示出来之外,还能将二次开发的功能模块方便的

FreeCMS商业版二次开发文档 21

添加进去,从而实现网站功能扩展。

现在以实现一个根据id提取Demo的自定义标签为例向大家介绍自定义标签的开发。

第一步:创建自定义模板java类:

ive包下创建类DemoDirective.

第二步:添加继承类和接口:

自定义标签需要继承BaseDirective类和实现TemplateDirectiveModel接口。

然后重写execute方法。

第三步:绑定完成功能的代码:

可以参见程序文件,在此不再赘述。

第四步:注册自定义标签:

打开. FreeMarkerUtil类,将DemoDirective添加到自定义标签中。

FreeCMS商业版二次开发文档 22

第五步:使用:

至此,您将可以使用<@demo>标签在前台模板页面调用DemoDirective所实现的功能。