jeecms二次开发必备
- 格式:doc
- 大小:1.64 MB
- 文档页数:23
1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中2.解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这个源码,删除j eecms-cms-identity-3.0.2-final.jar即可,如果想进行深入的二次开发,需要导入common和core源码,另导入common-lib下的jar包,删除jeecms-cms- identity-3.0.2-final.jar,jeecms-common-3.0.2-final.jar ,jeecms-core- identity-3.0.2-final.jar这三个jar包,切记:务必进行build path3.修改jdbc链接,自己导入数据库。
4.把服务器下install\config下的web.xml复制出来覆盖掉新建项目WEB-INF下的web.xml5.classes下有四个文件,手动烤到myeclipse项目src根目录下中6.将服务器上jeecms项目删掉,发布新建的jeecms项目。
首页的加载过程:在浏览器中输入http://localhost:8080/jeecms,回车首先进入配置文件web.xml,<context-param><param-name>contextConfigLocation</param-name><!----><param-value>/WEB-INF/config/application-context.xml/WEB-INF/config/cache-context.xml/WEB-INF/config/captcha-context.xml/WEB-INF/config/jeecore-context.xml/WEB-INF/config/jeecms-context.xml</param-value></context-param>应用范围内的初始化参数其中jeecms-context.xml是对标签的初始化<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.shtml</welcome-file><welcome-file>index.jhtml</welcome-file></welcome-file-list>通过以上标签找到应该加载哪一个页面<servlet><servlet-name>JeeCmsFront</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/jeecms-servlet-front.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jhtml</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jspx</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>通过servlet配置,可以找到jeecms-servlet-front.xml,在此配置文件的最后有<import resource="jeecms-servlet-front-action.xml"/>代码找到jeecms-servlet-front-action.xml,在此配置文件中有<bean id="dynamicAct" class="com.jeecms.cms.action.front.DynamicPageAct"/>可以找到类DynamicPageAct,此类是首页模板。
《HongCMS开发者手册》--二次开发指南模板语法参阅:/bbs/?thread-index-fid-1-tid-19.htm一、前言:说实在的,很怕写文档,特别是这种开发文档,无法知道别人需要什么样或者说什么程度的描述,自己高兴的事别人未必开心。
所以,这个文档总的想法是将重点介绍清楚,让用户了解系统脉络,细枝末节的技术google就行了。
前些日子因参与其它公司的项目,研究了些PHP开发框架,如CI, ThinkPHP等这些,觉得这些小型框架对我来说很不爽,因为本人一直喜欢4S的开发理念,即:Safe, Simple, Small, Stable (安全,简单,小巧,稳定),不刻意追求大而全的东西,认为简单是最美的。
这和性格有关,也很难改变。
就拿CI来说吧,前台游客只要一进入网站,就有至少1个数据库写入及1个session生成,一个session在服务器就要写入一个文件,试想如果网站同时来了1万个用户访问,文件IO开销巨大,说得不好听点,服务器可能就死球了。
对于框架,业内一直有这么一句话:学之者生,用之者死。
本人觉得这句话很值得琢磨一下。
如今没有几个公司不要求程序员有MVC的开发理念,MVC确实有好处,本人也喜欢,但也不去刻意追求. 当然也有反对MVC的, 包括PHP创始人。
HongCMS开发中有V和C,M基本没有,因为不需要或者说使用M编程反而累了,但完全可以使用Model,系统框架已经为它设计好了,程序包models/目录下有实例。
特别是后台admin/models/目录下的admin.php, 它就是后台用户(管理员)的模型。
说白了,模型就是一些类啦。
HongCMS系统框架APP.php非常小巧,仅5K大小,再加上XTpl超小模板引擎,HongCMS核心非常小巧、快速和高效。
有基础的朋友,如果对HongCMS进行二次开发,或是参考其中的理念,足可以开发出大型系统来。
这些思想,加上多年做双语企业网站的经验,同时有朋友要我开发一个中英双语的小型企业网站,于是HongCMS出生了。
jeecms⼆次开发必备JEECMS⼆次开发第1章JEECMS系统介绍 (3)1.1关于JEECMS (3)1.2JEECMS系统特点 (4)1.3技术架构 (4)1.3.1跨操作系统平台 (5)1.3.2跨数据库平台 (5)1.3.3跨应⽤服务器 (6)1.3.4兼容多种浏览器 (6)1.4JEECMS⼯程的包结构分析 (7)1.4.1⽂章模块 (7)1.4.2辅助模块 (7)1.4.3通⽤操作模块 (7)1.4.4核⼼功能模块 (8)1.4.5下载模块 (8)1.5页⾯、资源⽂件结构 (9)1.5.1站点内容、模板结构 (10)1.5.2站点资源⽂件结构 (10)第2章标签使⽤和模板的制作 (11)2.1模板规划 (11)2.1.1资源⽂件 (11)2.1.2模板⽂件 (11)2.1.3使⽤⽅式 (11)2.1.4标签调⽤样式 (11)2.2I NCLUDE标签 (13)2.2.1功能简介 (13)2.2.2标记说明 (13)2.2.3 明确标签的使⽤范围 (13)2.2.4调试标签了解其使⽤⽅法 (13)2.3A RTI L IST标签 (15)2.3.1功能简介 (15)2.3.2标记说明 (15)2.3.3 明确标签使⽤范围 (18)2.3.4 调试标签了解其使⽤⽅法 (18)2.4P OSITION标签 (20)2.4.1功能简介 (20)2.4.2标记说明 (20)2.5C HNL L IST标签 (21)2.5.1功能简介 (21)2.5.2标记说明 (21)2.5.3明确标签的使⽤范围 (21)2.5.4调试标签了解其使⽤⽅法 (22)2.6内容页常⽤标签 (23)2.6.1标记说明 (23)第1章JEECMS系统介绍1.1关于JEECMSJEECMS是JavaEE版⽹站管理系统(Java Enterprise Edition Content Manage System)的简称,是⼀款⾃主研发的基于J2EE平台的内容管理系统Java凭借其强⼤、稳定、安全、⾼效等多⽅⾯的优势,⼀直是企业级应⽤的⾸选。
项目二次开发源代码及详细说明I. 项目介绍本文档描述了一个二次开发项目的源代码及详细说明。
该项目是基于一个开源的企业资源管理系统进行二次开发,以满足特定客户的需求。
原始系统功能包括客户关系管理、订单管理、库存管理等,但客户需要在原始系统的基础上增加一些新的功能,比如业务报表的定制、权限管理的优化等。
为了满足客户的需求,我们需要对原系统进行二次开发,修改和添加一些功能,以适应客户的特定业务需求。
II. 项目目标1. 通过二次开发,实现客户需求的定制化功能,并满足特定的业务需求。
2. 优化原系统的权限管理模块,增强系统的安全性和稳定性。
3. 重构原系统的报表模块,实现业务报表的定制化功能。
4. 对原系统的库存管理模块进行优化,提高系统的性能和稳定性。
III. 项目源代码及详细说明1. 新增功能模块:客户需要系统新增一个产品价格管理模块,方便他们随时根据市场需求调整产品的价格。
我们在系统中增加了产品价格管理的功能模块,客户可以在这个模块中根据自己的需求,对产品的价格进行调整。
以下是新增功能模块的主要源代码及详细说明:```python# 产品价格管理模块import datetimefrom django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100, verbose_name='产品名称')price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='产品价格') create_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')class Meta:verbose_name = '产品'verbose_name_plural = verbose_name# 增加产品价格调整记录模型class PriceAdjustRecord(models.Model):product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name='产品')old_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整前价格')new_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整后价格')adjust_time = models.DateTimeField(default=datetime.now, verbose_name='调整时间')class Meta:verbose_name = '价格调整记录'verbose_name_plural = verbose_name```上面的代码是在原系统中新增的产品价格管理模块的源代码。
大米CMS二次开发快速入门官网:一、目录结构index.php 前台项目入口文件(可以使用其他名称或者放置于其他位置)admin.php 前台项目入口文件(可以重命名)前台项目web目录后台adminCommon项目公共文件目录,放置项目的公共函数Conf项目配置目录,所有的配置文件都放在这里。
Lang 项目语言包目录(可选)Lib项目类库目录,通常包括Action(控制器代码位置)和Model(模型代码位置)目录Tpl项目模板目录(视图),支持模板主题Runtime项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录二、URL规则配置文件Conf/config.php 中URL_MODEL支持的值得为:普通模式(0)、PATHINFO模式(1)、REWRITE模式(2)和兼容模式(3)默认参数m表示Lib目录下文件名对应比如 IndexAction.class.php 则m=Index 默认参数a 表示控制器文件中对应的方法比如 a=index普通模式(0)格式:PATHINFO (1) 格式:REWRITE (2) 格式:兼容模式(3) 格式:三、开发流程(1)创建控制器 Lib\Action\TestAction.php 写控制方法并赋值(assign)模板变量:class ArticleAction extends Action{Public function mytest(){$type = D('type');$list = $type->select();$this->assign('type',$list);$this->display(TMPL_PATH.'default/test.html');}}(2)在模板中(Tpl\default\test.html)调用标签显示数据.<volist name="type" id="vo">{$vo.typename}</volist>(3){:U(“Test/mytest”)}生成url结果index.php?m=Test&a=mytest三、数据CURD(增、删、改、查)1.增加$data[字段名] = 值 ($data为数组)$User = M("User"); // 实例化User对象用D方法的话会加载模型规则$result = $User->add($data);2.修改$data[字段名] = 值 ($data为数组)$User = M("User"); // 实例化User对象用D方法的话会加载模型规则$result = $User->where(“id=5”)->save($data);3.删除$result = $User->where(“id=5”)->delete();4.单表查询$result = $User->where(“uid=5”)->order(‘updatetime desc’)->select();多表联合查询(注意表全名含前缀)$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select();通用的连贯操作 where 查询条件order排序规则四、大米cms标签:Arclist获取内容万能标签参数:参数名是否必须默认值说明model否Article表获取数据的表名称where否null查询条件num否0返回记录条数order否null排序类型id否vo返回循环变量field否*查询字段cache否false是否缓存数据page否false是否分页pagesize否10分页每页条数sql否null自定义执行SQLprefix否true表名是否含有前缀key否i循环次数变量实例:(1)获取最新广告1条<arclist model="ad" where="status=1" num="1"order="addtime desc"><li>{$vo.title}</li></arclist>(2)分页数据<arclist model="ad" where="status=1" page='true' pagesize='1'><li>{$vo.title}</li></arclist>(3)自定义SQL<arclist sql="select * from damicms_ad"><li>{$vo.title}</li></arclistCategory获取某分类下一级分类表为: damicms_type 可嵌套参数参数名是否必须默认值说明parentid是null获取父分类IDwithself否false是否包括自身分类数据other否null附加其他查询条件id否vo返回循环变量key否i循环次数变量order否null排序类型实例:获取分类ID为14 条件为菜单的数据<category parentid="14" other="ismenu=1" withself="true"><li>{$vo.typename}</li></category>模板中路径静态变量__ROOT__?:网站根目录地址__APP__?:当前项目(入口文件)地址? 如 index.php__URL__?:当前模块地址?也就是 m等于的模块__SELF__:当前?URL?地址?__TMPL__?:当前模板目录?模板中调用函数方法一:{:函数名(参数1,参数2,....)}{:ShowArt(1,10,’_blank’,1,20)}{:U('Index/index')}方法二:{$varname|function1|function2=arg1,arg2,### }实例:{$webTitle|md5|strtoupper|substr=0,3}模板中嵌套PHP代码<php>echo 'hello world';</php>输出变量{@var} //输出Session变量和 {$_SEESION.var} 等效{#var} //输出Cookie变量和 {$_COOKIE.var}等效{&var} //输出配置参数和 {$_CONFIG.var} 等效{%var} //输出语言变量和 {$_LANG.var} 等效{.var} //输出GET变量和 {$_GET.var} 等效{^var} //输出POST变量和{$_POST.var} 等效{*var} //输出常量和 {$_CONST.var} 等效逻辑控制相关1.循环输出 volist参数名是否必须默认值说明循环要输出的变量名:比如数name是null组id否vo返回循环变量举例:<volist name="list" id="data">{$data.id}{$}</volist>2.比较标签eq或者 equal:等于neq 或者notequal:不等于gt:大于egt:大于等于lt:小于elt:小于等于heq:恒等于nheq:不恒等于他们的用法基本是一致的,区别在于判断的条件不同。
ecshop二次开发手册【基本结构】【基本熟悉】前言:ECSHOP是一套完整的网络商店解决方案,包括前台的商品展示、购物流程和强大易用的后台管理。
由于ecshop简单易用,使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2C站点都选择了使用ECShop网上商店系统,但是有时候我们需要做一些ecshop本来没有的功能或者前端展示,这时候就需要我们自己去进行对ecshop的二次开发了。
一、ecshop系统功能二次开发ecshop的代码结构非常易懂,只有有一点php基础都可以在原有的程序基础上进行修改,或功能插件的开发。
ecshop中的一些公用函数都会放在includes文件夹里,而这些公用函数几乎我们都可以用来参照一下就能轻松做出我们想要的其他功能了。
我们要对ecshop进行二次开发,简单来说其实就是对数据库的读写操作,所以只要我们读懂ecshop的数据库操作类,接下来的实现就很轻松了。
ecshop的数据库操作类是很强大的,一些常用的函数如下:1.获取单条记录$GLOBALS['db']->getRow($sql);2.获取单一字段$GLOBALS['db']->getOne($sql);例如查询产品总数:echo $GLOBALS['db']->getOne(…SELECT COUNT(*) FROM … .$GLOBALS['ecs']->table(…goods‟) ;3.获取所有记录$GLOBALS['db']->getAll($sql);4.执行sql语句$GLOBALS['db']->query($sql);//执行删除(DELETE),插入(INSERT),更新(UPDATE)等操作可用此方法5.把数组元素插入数据库$parent['goods_number'] = ‟1′;$parent['parent_id'] = 0;$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table(…cart‟), $parent, …INSERT‟);基于此基础上就能轻松进行ecshop二次开发了。
织梦dedecms二次开发和织梦模板制作系列教程汇总一、织梦dedecms二次开发教程系列织梦二次开发教程(一)织梦dedeCms主要模板文件与功能说明一、概念,设计和使用模板,必须要理解下面几个概念1、板块(封面)模板:指网站主页()或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm”命名。
3、档案模板:表示文档查看页的模板,如文章模板,一般用“article_识别ID.htm”命名。
4、其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、命名,DedeCMS模板默认命名规则如下1、模板保存位置:模板目录:{cmspath} /templets/样式名称(英文,默认为default,其中system为系统底层模板,plus为插件使用的模板)/具体功能模板文件}2、模板文件命名规范:(1)index_识别ID.htm:表示板块(栏目封面)模板;(2)list_识别ID.htm:表示栏目列表模板;(3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);(4)search.htm:搜索结果列表模板;(5)index.htm:主页模板;注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
例:list_image.htm 表示是就是内容类型为图片集的栏目默认列表模板。
article_article.htm 表示的是文章查看页模板。
三、其它模板说明1、默认底层模板位置:{cmspath}/templets/system功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为底层模板。
⾦蝶Bos基础⼆次开发1常⽤⼆次开发⽅法1.1登陆界⾯图⽚修改1)在中间层⽅式:在中间层KDCOM⽬录新建两个图⽚⽂件:LOGIN_PIC_LOG_TOP.bmp适⽤于10.4版本+PT007378,或V11版本及以后版本LOGIN_PIC_LOG_BOTTOM.bmp适⽤于10.4版本+PT007378,或V11版本及以后版本MAIN_PIC_LOG_RIGHT_FLOWCHART.bmp,适⽤于10.4版本+PT007378,或V11版本MAIN_PIC_LOG_LEFT_FLOWCHART.bmp,适⽤于10.4版本+PT007378,或V11版本MAIN_PIC_LOG_LEFT.bmp,适⽤于10.4版本+PT007378,或V11版本MAIN_PIC_LOG_RIGHT.bmp,适⽤于10.4版本+PT007378,或V11版本该⽅式不需要每个客户端机器安装图⽚,登陆时⾃动显⽰。
2)客户端⽅式:直接修改以下图⽚⽂件,适⽤于V12及以后版本:F:\Program Files\Kingdee\K3ERP\k3Standard\KDSYSTEM\KEE_imgLogo.bmp3)企业LOG⽅式在中间层新建⼀个⽂件夹,命名为eptlogo并将其设置为只读共享,然后制作两个BMP格式的图⽚,分别作为logo和背景图,⼤⼩为145×180,分别命名为enterprise_logo.bmp,enterprise_bg.bmp,在客户端的主控台编辑器启⽤企业界⾯即可。
1.2主控台⽆界⾯登陆适⽤版本:(K/3V11.0.1+PT016290或V12以上版本)1)域⽤户登录:提供命令⾏参数:KDMain.exe -LoginWin|账套代码|机构密码 ,⽆界⾯直接登录到K/3系统主控台2)命名⽤户登录:提供命令⾏参数KDMain.exe -LoginUser|账套代码|机构密码|⽤户名|⽤户密码, ⽆界⾯直接登录K/3系统主控台3)参数之间的分隔符默认为”|”,由于⽤户密码可能包含特殊字符,⽤户可以通过修改注册表改变分隔符,注册表参数:路径:HKEY_CURRENT_USER\SoftWare\KingDee\K3键:LoginParm4)获取账套代码的接⼝组件名:KdLogin.dll组件部署:客户端%Kdsystem%程序名:KdLogin.clsLogin⽅法名:GetAccountList参数描述GetAccountList() As ADODB.Recordset参数:⽆返回值类型:ADODB.Recordset,包含字段:5)测试登录参数设置是否成功的接⼝组件名:KdLogin.dll组件部署:客户端%Kdsystem%程序名:KdLogin.NoUILogin⽅法名:LoginUser参数描述Public Function LoginUser(ByVal sLoginType As String _, ByVal sAcctNumber As String _, ByVal sOrgPass As String _, ByVal sUserName As String _, ByVal sUserPass As String) As String返回值类型:String,空字符串代表登录成功,否则登陆不成功,内容为登录不成功的原因。
JEECMS二次开发第1章JEECMS系统介绍 (3)1.1关于JEECMS (3)1.2JEECMS系统特点 (4)1.3技术架构 (4)1.3.1跨操作系统平台 (5)1.3.2跨数据库平台 (5)1.3.3跨应用服务器 (6)1.3.4兼容多种浏览器 (6)1.4JEECMS工程的包结构分析 (7)1.4.1文章模块 (7)1.4.2辅助模块 (7)1.4.3通用操作模块 (7)1.4.4核心功能模块 (8)1.4.5下载模块 (8)1.5页面、资源文件结构 (9)1.5.1站点内容、模板结构 (10)1.5.2站点资源文件结构 (10)第2章标签使用和模板的制作 (11)2.1模板规划 (11)2.1.1资源文件 (11)2.1.2模板文件 (11)2.1.3使用方式 (11)2.1.4标签调用样式 (11)2.2I NCLUDE标签 (13)2.2.1功能简介 (13)2.2.2标记说明 (13)2.2.3 明确标签的使用范围 (13)2.2.4调试标签了解其使用方法 (13)2.3A RTI L IST标签 (15)2.3.1功能简介 (15)2.3.2标记说明 (15)2.3.3 明确标签使用范围 (18)2.3.4 调试标签了解其使用方法 (18)2.4P OSITION标签 (20)2.4.1功能简介 (20)2.4.2标记说明 (20)2.5C HNL L IST标签 (21)2.5.1功能简介 (21)2.5.2标记说明 (21)2.5.3明确标签的使用范围 (21)2.5.4调试标签了解其使用方法 (22)2.6内容页常用标签 (23)2.6.1标记说明 (23)第1章JEECMS系统介绍1.1关于JEECMSJEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称,是一款自主研发的基于J2EE平台的内容管理系统Java凭借其强大、稳定、安全、高效等多方面的优势,一直是企业级应用的首选。
在国外基于JavaEE技术的CMS已经发展的相当成熟,但授权费昂贵,一般需几十万一套;而国内在这方面一直比较薄弱,至今没有一款基于JavaEE 技术的开源免费CMS产品。
JEECMS使用目前java主流技术架构:hibernate3+struts2+spring2+freemarker。
AJAX使用jquery和json实现。
视图层并没有使用传统的JSP技术,而是使用更为专业、灵活、高效freemarker。
数据库使用MYSQL,并可支持orcale、DB2、SQLServer等主流数据库。
应用服务器使用tomcat,并支持其他weblogic、websphere等应用服务器。
JEECMS并不是一个只追求技术之先进,而不考虑用户实际使用的象牙塔CMS。
系统的设计宗旨就是从用户的需求出发,提供最便利、合理的使用方式,懂html就能建站,从设计上满足搜索引擎优化,最小性能消耗满足小网站要求、可扩展群集满足大网站需要。
很多人觉得java、jsp难掌握,技术门槛高。
jeecms具有强大的模板机制。
所有前台页面均由模板生成,通过在线编辑模板轻松调整页面显示。
模板内容不涉及任何java和jsp技术,只需掌握html语法和jeecms标签即可完成动态网页制作。
强大、灵活的标签。
提供两种风格的标签,一种风格的标签封装了大量互联网上常见的显示样式,通过调整参数就可实现文章列表、图文混排、图文滚动、跑马灯、焦点图等效果。
这种标签的优势在于页面制作简单、效率高,对js、css、html不够精通和希望快速建站的用户非常适用。
并且各种效果的内容不使用js 生成,对搜索引擎非常友好。
另一种风格的标签只负责读取数据,由用户自己控制显示内容和显示方式,想到什么就能做到什么,对于技术能力高和追求个性化的用户,可谓如鱼得水。
天然的伪静态页面技术,无需多余的urlrewrite。
考虑到对搜索引擎的友好,系统在设计时就使用了伪静态页面技术,以.htm作为url地址后缀,扁平的、可自定义的路径结构。
对于有特别需求者,可自定义页面后缀,如.php,.asp,.aspx 等。
站群设计。
对于大型的网站,往往需要通过次级域名建立子站群。
各个子站后台管理权限可以分离,前台用户实现单点登录。
大规模网站轻松建设。
1.2 JEECMS系统特点✧系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台;✧核心模板全部使用文件形式保存,自由导入/导出模板,极大方便了用户模板设计、网站升级转移、全站换肤;✧首页、栏目页缓存处理,在启动了页面缓存后,有利于提高系统反应速度,降低系统资源的消耗;✧用户自定义添加和切换分页、焦点图样式;✧轻松建立并管理多站点,所有站点权限和内容独立管理,站点间实现单点登录;面向未来的过渡,具有很强的灵活性和稳定性;1.3技术架构JEECMS基于Java企业级平台(Java Platform, Enterprise Edition),继承了Java平台的跨平台、安全、强大、高性能等所有优势。
选用了经过java社区长时间使用,被证明稳定、可靠、安全、高性能的开源框架,包括struts2、spring2.5、hibernate3.3、freemarker、jquery等框架。
使用这些框架可以使软件开发更加高效、易于维护,而且具有更好的性能、更高的安全性。
1.3.1跨操作系统平台可以在Linux、UNIX、Windows等系统上运行。
客户可以根据自身情况选择自己熟悉的或正在使用的操作系统,减小维护成本。
1.3.2跨数据库平台数据库持久层采用hibernate实现,使得JEECMS可以支持几乎所有的数据库平台,包括Oracle、DB2、Microsoft SQL Server、MySQL、PostgreSQL等。
这对于已经购买或熟悉某一类型数据库产品的用户非常有利,用户不必购买或维护多套不同的数据库,大幅度减低成本。
1.3.3跨应用服务器支持Tomcat、Weblogic、Webspere、JBoss等应用服务器。
1.3.4兼容多种浏览器目前多种浏览器并存,使用非IE浏览器的用户越来越多,即使是IE浏览器也有多种版本。
JEECMS兼容IE6、IE7、IE8、FireFox、Chrome、Opera、Safari。
web页面制作遵循w3c标准制作,使用div+css布局,所有标签生成的html 代码都经过跨浏览器测试。
javascript脚本基于jquery和javascript标准编写,有效的解决了js跨浏览器的问题。
1.4 JEECMS工程的包结构分析JEECMS的包结构的详细分析如下:1.4.1文章模块1.4.2辅助模块1.4.3通用操作模块1.4.4核心功能模块1.4.5下载模块1.5页面、资源文件结构1.5.1站点内容、模板结构1.5.2站点资源文件结构资源文件结构跟页面模板结构一样,只是存放的文件是js、css和图象文件等第2章标签使用和模板的制作2.1模板规划2.1.1资源文件资源文件就是网页中用到的图片、CSS、JS等元素,在CMS系统中所有的资源文件在网站的根目录中的/res_base/所属网站定义资源目录/TEMPLEATE/WEB/res_base/所属网站定义资源目录/TEMPLEATE/WAP解释:网站定义资源在CMS系统中可以同时管理多个网站,也就是多个网站可以同时使用一套CMS系统,但是每一个网站都已属于自己独立的资源文件及模板文件目录。
2.1.2模板文件定义了页面显示的主体框架,它的位置位于网站根目录下的/WEB_INF/user_base/所属网站模板目录;模板规则:1、以index前缀命名的为首页模板2、以channel前缀命名的为栏目模板3、以content前缀命名的为内容模板4、以alone前缀命名的为栏目单页模板2.1.3使用方式1、使用dw建立站点2、将网页中用到的资源文件分类分别放置到网站相关资源目录中3、将模板文件放置按照命名规则分别放置到网站相关模板目录中。
4、将头部、底部等等具有通用元素的模板文件放置到模板目录中的include 目录中5、将模板文件中所有资源引用改为绝对路径链接至资源目录中6、在栏目管理中将模板文件与栏目进行关联设置7、在模板文件中需要提取数据的位置放置相应的标签2.1.4标签调用样式调用"JEECMS标签"的三种代码样式如下:A、${标签名称}B、[@cms.标签名称属性='值'/]C、[@cms.标签名称属性='值'; 标签别名] 自定义样式模板 [/@cms.标签名称]例如:a、${}标签用于调用网站名称b、[@cms.ArtiList chnlId='' count='10' sysContent='1-1' /]标签用于调用10篇文章的列表C、[@cms.ChnlList id='' inner='1';c]|<a href=="${c.url}">>${}</a> [/@cms.ChnlList]标签用于调用栏目列表,可用于网站导航条。
注意:abc实例是与上面ABC三种形式相对应的。
大家可以逐个测试,举一反三2.2 Include标签2.2.1功能简介做过网站设计经验的朋友可能都知道,我们可以将页面中经常要引用的公共部分(比如页头和页脚)独立开来,单独存放在一个页面中。
这样做的好处就是可以在各个需要用到该部分的页面中用一个简单的包含语句就能把它引入进来,大大简化了工作量。
2.2.2标记说明【标签名】:[@cms.Include 属性='值' /]【作用】:包含公用页面(如页头,页脚)【参数】:name:包含模板的文件名solution:模板方案名【示例】:包含页头:[@cms.Include name='head.html' solution='default'/]【备注】:调用此标签前必须先建立相应的包含模板2.2.3 明确标签的使用范围我们在使用任何标签的之前,都必须明确其使用的范围,否则可能无法正常使用该标签。
【Include 标签】的使用范围是:首页模板,栏目页模板,内容页模板,即对应\WEB-INF\user_base\jeecms_com_www\template\article\default\文件夹下的index_××.html模板、channel_××.html模板、content_××.html模板2.2.4调试标签了解其使用方法在使用【Include 标签】之前我们必须保证有可供此标签调用的包含模板,本实例只是起演示作用,为方便起见,这里就不再另外创建被包含的模板了,标签调用的是系统默认模板方案中的的head.html模板。