《mycmf内容管理框架系统用户手册.doc》由会员分享,可在线阅读,更多相关《mycmf内容管理框架系统用户手册.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MyCMF内容管理框架系统用户手册V1.0版权申明未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。未经版权所有者事先授权,禁止发行、分发、运营、销售等方式传播、或使用基于MyCMF内容管理框架系统,衍生的软件产品,应用系统,网络平台等。 MyCMF唯一官方网址:MyCMF功能MyCMF全称:My Content Management Framework。MyCMF是基于JAVA语言+MySQL数据库开发的内容管理框架系统。软件开发者基于本框架系统,扩展开发应用系统,可大幅提高软件开发效率,降低开发和沟通成本。MyCMF可用于开发任何类型网站、企业管理系统。例如:门户系统,论坛系统
2、,新闻系统,团购系统,威客系统,物流系统,商城系统,内容管理系统,工作流系统,博客系统,电子公告系统,手机网站,微信网站等等,只要是基于HTML、XML、WebService形式的网络应用系统都有MyCMF用武之地。MyCMF用途在作者十多年软件开发、团队管理、项目顾问从业生涯中,一直探索着如何高效建设不同系统。上百个各类项目的分析、实现,由一个个具体项目中抽丝剥茧,总结重复劳动部分,不断提炼,不断抽象化再凝聚。从而提出核心理念PTN:(P)项目综合界面、(T)主题列表界面、(N)内容界面,是任何系统前端、后台都必须用到的。一切需要循环输出的,都属于列表。MyCMF内容管理框架系统的用途就是:
3、通过灵活简单、易于传播、安全高效、可扩展的方式实现PTN的任意形态。MyCMF特点MyCMF特点是:围绕PTN理念实现MyCMF内容管理框架的一系列法则。MyCMF控制:模板、标签、配置、继承,四项核心规则。通过MyCMF独有的PTN模板解析引擎,配合PTM配置解析引擎,无限聚合,实现任意形态界面、组件。1)模板:由PTN模板解析引擎,解析模板标签,分为界面模板,和数据模板。2)标签:为模版提供动态内容,可引用模版代码、配置信息、数据库内容等。3)配置:提供命名、变量、事件、约束、权限等信息。4)继承:由PTM配置解析引擎,解析继承关系,分单例继承、全局继承、静态继承、动态继承等用法。MyCM
4、F内容管理框架系统PTN模板解析流程图:MyCMF内容管理框架系统PTM配置解析流程图:MyCMF内容管理框架系统总体运作流程:MyCMF核心(继承)MyCMF的核心为:PTM配置解析引擎,负责配置文件之间的复杂继承关系解析工作;(P)项目,(T)列表,(M)模组。打个比喻:如果说模板是MyCMF的皮肤、标签是血管、配置是骨架、那么继承则是穴位。掌握了MyCMF独特的穴位联通方式,你会发现MyCMF是如此的强大、灵活。当你建立好一个模板,以及配置文件后实现了某个界面,如需再建立一个新的类似的项目时,最少可以只需要一行配置,就可以相同的界面展示各自不同的数据,如果有不同之处,把个性化部分配置出来
5、即可,因为所有配置信息以当前项目配置优先,当前项目无值时,才启用继承关系解析,寻找继主。继承为配置服务,除了系统定义好的基本配置外,你还可以根据项目需要设计自己的配置方案,开发个性化的配置管理程序,就能创造属于自己的武林秘籍。1、单例继承范围:pid.txt配置、tid1.txt配置、value目录文本配置。 格式:参数名: $pid$/$mob$/tid$tid$/参数名/ (注意是“参数名”加“小写冒号”)案例及说明:一、在pid.txt配置和tid1.txt配置中:如果配置文件中有pageSize=10,表示pageSize参数的绝对值设置为10。单例继承方式则为pageSize: pr
6、oject001/2/tid1/,表示当前pageSize参数没有值,pageSize的值继承自project001项目;第2模组;tid1列表配置文件中设定的pageSize参数值。如果pageSize=10,与pageSize: project001/2/tid1/同时存在,则以=值优先,继承值忽略。二、在value目录文本配置中:如在列表循环模板配置list_html.txt文件内容为:主题:$tit$那他的单例继承文件为list_html.txt.txt(原文件名后多加一个.txt),继承格式为::$pid$/$mob$/tid$tid$/list_html/如果list_html.t
7、xt与list_html.txt.txt同时存在,则list_html.txt优先。如果list_html.txt为空或不存在,则寻找list_html.txt.txt,获取继承信息。2、全局继承在一个项目中可以没有tid.txt配置,没有value目录文本配置,但必须有pid.txt配置。pid.txt配置是一个项目的主配置文件,MyCMF设三级全局继承解析。范围:pid.txt配置格式:default=$pid$/$mob$/tid$tid$/案例及说明:default=设置表示:在项目中的某个参数,或所有参数不存在时(绝对值没有,单例继承也没有),则启用全局继承,所有未找到的参数,继承自
8、default所指向的其他项目,自动匹配。如果被指向项目对应参数也没有值,却有default设置,则以被指向项目的default设置继续寻找该参数,如果还没有值,则此参数值为空。3、静态继承 如果内容为:project001/2/tid1/表示该参数的值,固定继承自project001项目,第2模组,第1列表中的对应值。4、动态继承 如果内容为:$pid$/$mob$/tid1/ 表示未配置值的参数,都以当前项目,当前模组的第1列表配置为准。MyCMF模板1、界面模板 通过MyCMF的PTN模板解析引擎,将单个或多个模板文件中的,MyCMF标签解析转化成浏览器端,直接可见的界面形态。2、数据模
9、板 通过MyCMF的PTN模板解析引擎,将单个或多个模板文件中的,MyCMF标签解析转化成动态数据,自定义格式或标准XML格式等数据形式,供其他界面或程序,通过Ajax方式,或其他方式灵活调用。比如:菜单,下拉框,甚至一个模板块的不同风格配置,这些都可以用数据模板实现。MyCMF技术架构1、MyCMF使用java语言开发,遵从J2EE体系标准,使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件可以根据他们所在的层分布在不同的机器上。J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层。2、MyCMF已经集成的插件:
10、BoneCP数据库连接池,JCS缓存系统,MemCached缓存系统,Log4j日志系统,Mail邮件接收发送组件,Task计划任务系统,HttpClient网络资源访问组件,Mysql-jdbc数据库链接组件。MyCMF开发工具与运行环境开发工具MyEclipse6.0、JDK1.6、tomcat6.0运行环境操作系统:Windows2000/ Windows2003/ Windows2008/Linux/UNIXWEB服务器:tomcat、resin、jboss、weblogic、WebSphere等等JDK版本:jdk1.6及以上mysql数据库版本:5.0及以上CPU要求:PIII80
11、0及以上硬盘要求:10G及以上内存要求:1G及以上MyCMF工程目录结构|-mycmf|-admin /原始配置管理|-do /核心程序主目录|-do_ext /扩展程序主目录|-file_cache /静态缓存主目录|-file_moban /项目文件主目录|-file_xun /图标目录|- WEB-INF /java目录|-index.jsp /单站点引导文件|-index_www.jsp /多站点引导文件file_cache静态缓存目录结构|-list_cache /列表静态缓存|-moban_cache /模版静态缓存|-page_cache /单页静态缓存file_moban项目文
12、件目录结构 (每个项目所有文件存放于,各自项目文件夹中,便于传播)|- project0001 /自定义项目文件夹1|-htm /默认模板目录 |-cfg /配置文件目录 |-img /图片资源目录 |-css /样式资源目录 |-js /javascript脚本资源目录 |-inc /共享引用模板文件目录 |-tid1_list.htm /tid1列表界面主模板文件 |-tid1_view.htm /tid1内容界面主模板文件 |-tid2_list.htm /tid2列表界面主模板文件 |-tid2_view.htm /tid2内容界面主模板文件 |-tid3_list.htm /tid3
13、列表界面主模板文件 |-tid3_view.htm /tid3内容界面主模板文件|-htm1 /扩展模板目录1|-htm2 /扩展模板目录2|-htm3 /扩展模板目录3|-htm /扩展模板目录无限|-upload /项目上传文件存储目录|- project0002 /自定义项目文件夹2|- project0003 /自定义项目文件夹3|- /自定义项目文件夹无限file_moban/project0001/htm/cfg配置文件目录结构|-cfg |-value /单文件型配置文件目录 |-pid.txt /项目主配置文件 |-tid1.txt /tid1列表配置文件 |-tid2.txt
14、 /tid2列表配置文件 |-tid3.txt /tid3列表配置文件 |-tid10.txt /tid10列表配置文件 |-. /无限tid配置文件file_moban/project0001/htm/cfg/value配置文件目录结构 |-value /单个txt文件型配置文件目录 |-tid1 /tid1单值文件配置目录 |-add_ext_cfg.txt /内容发布数据类型定义 |-add_ext_html.txt /内容发布扩展界面模版 |-add_html_top.txt /内容发布界面顶部模版 |-add_html_end.txt /内容发布界面底部部模版 |-add_html_
15、left.txt /内容发布界面左侧模版 |-add_html_right.txt /内容发布界面右侧模版 |-list_html.txt /列表行循环模板代码 |-list_html_view.txt /内容显示模板代码 |-user_add.txt /内容发布者权限配置文件 |-user_adm.txt /内容管理者权限配置文件 |-更多配置见详细文档 |-tid2 /tid2单值文件配置目录 |-add_ext_cfg.txt /内容发布数据类型定义 |-add_ext_html.txt /内容发布扩展界面模版 |-add_html_top.txt /内容发布界面顶部模版 |-add_h
16、tml_end.txt /内容发布界面底部部模版 |-add_html_left.txt /内容发布界面左侧模版 |-add_html_right.txt /内容发布界面右侧模版 |-list_html.txt /列表行循环模板代码 |-list_html_view.txt /内容显示模板代码 |-user_add.txt /内容发布者权限配置文件 |-user_adm.txt /内容管理者权限配置文件 |-更多配置见详细文档 |-tid3 /tid3单值文件配置目录 |-tid10 /tid10单值文件配置目录 |-tid. /无限tid单值文件配置目录WEB-INF目录结构|-classe
17、s /类目录 |-com /第三方类库目录 |-mycmf /mycmf类库目录 |-task /计划任务类目录 |-util /通用类目录|-lib /扩展jar类库目录|-web.xml /web服务配置文件MyCMF模板解析 1、模板中的所有MyCMF标签可以被解析。 2、模板中可以解析MyCMF定义的环境变量: $serverName$当前服务器名称$today$当前服务器日期$toweek$当前服务器周$from_agent$当前访问者来自哪个地址$from_language$当前访问者浏览器使用的语言$from_ip$当前访问者的网络IP地址$cont$当前项目名称(模板中用作根目
18、录标识)$pid$当前项目ID$tid$当前列表ID(如果tid为空,则tid等于1)$mob$当前访问的模板组$nid$当前访问的内容nid(如果nid为空表示访问列表界面,否则表示访问内容界面)$uid$当前登录用户的sessionID,为空则表示未登录。$page$当前访问列表的第几页,为空则表示第一页。$is_adm$当前登录的用户是否有列表管理权限$find$当前列表查询字符$finds$当前列表筛选字符$findd$当前列表筛选日期 $view_today$只看当前列表中今天发表的记录。 $view_good$只看当前列表中设置为推荐的记录。$view_img$只看当前列表中有主题
19、图片的记录。$view_mysend$只看当前列表中当前登陆用户自己发布的记录。$view_mysend$只看当前列表中当前登陆用户自己回复过的记录。$view_jf$只看当前列表中有悬赏积分的记录。$view_jfx$只看当前列表中有悬赏积分,并未结束的记录。$urltit1$当前访问者GET方式传入的tit1参数值。$urltit2$当前访问者GET方式传入的tit2参数值。$urltit3$当前访问者GET方式传入的tit3参数值。$urltit4$当前访问者GET方式传入的tit4参数值。$urltit5$当前访问者GET方式传入的tit5参数值。$urltit6$当前访问者GET方式
20、传入的tit6参数值。$urltit7$当前访问者GET方式传入的tit7参数值。$urltit8$当前访问者GET方式传入的tit8参数值。$urltit9$当前访问者GET方式传入的tit9参数值。【例外】模板中如果包含此字符串,表示该模板强制不缓存。MyCMF标签1、标签 功能:提取配置信息 应用范围:所有模板 输入:配置文件名称或目录 输出:名称、变量、标签等,视配置对应值而定 格式:$pid$/$mob$/$tid$/目录/值/ 案例代码及说明: /提取项目配置文件pid.txt中的参数: /$pid$/pid/pidName/ /提取列表配置文件tid.txt中的参数: /$pid
21、$/tid1/pageSize/ /提取value目录配置文件: /$pid$/tid1/value/user_adm/静态:project001/pid/tidName2/ 提取project001项目pid.txt文件中tidName2参数的值。动态:$pid$/pid/tidName$tid$/ 提取当前项目,pid.txt配置文件中当前列表名称。2、标签 功能:引用模板代码,支持模板中引用模板,多层嵌套。 应用范围:所有模板 输入:文件路径名称 输出:模板 格式:$pid$/htm$mob$/目录/文件 案例代码及说明: /引用comp000项目,默认模板组下,inc目录中的pid_h
22、ead.htm模板 comp000/htm/inc/pid_head.htm/引用comp000项目,模板组2下,inc目录中的pid_head.htm模板 comp000/htm2/inc/pid_head.htm/引用当前项目,当前模板组下,inc目录中的pid_head.htm模板$pid$/htm$mob$/inc/pid_head.htm3、标签 功能:提取数据库数据 应用范围:所有模板 输入:表名,字段,条件,排序,需要记录条数 输出:数据 格式:mycmfsql=表名 提取字段 t条件 排序 获取记录条数 =mycmfsql回文模板 案例代码及说明: 提取mycmf_tit表ni
23、d,tit,tit1字段,当前项目,第12列表中,显示方式为1,以发表时间排序的数据,由返回数据列表中,提取前15条数据,以回文模板循环替换对应字段值,RS1对应字段1,RS2对应字段2,RS3对应字段3,RS4对应字段4,以此类推。其中$cont$是系统变量:根目录。 mycmfsql=mycmf_tit nid,tit,tit1 pid=$pid$ and tid=12 and set_show=1 send_time 0,15 =mycmfsql主题:RS2 MyCMF配置MyCMF中有三类配置文件:项目配置pid.txt,列表配置:tid.txt,单值文本配置:存在value目录。本文
24、中提到的配置参数是常用参数,开发者可以根据项目需要,自定义参数名、参数功能,可通过标签提取到模板中,可通过java方法在扩展编程中使用,以满足不同的项目需求。MyCMF的继承思想即体现在配置文件的灵活管理方式中,给开发者创造了无限的可扩展空间。掌握了配置技巧,你就掌握了MyCMF核心思想。说明:MyCMF参数不是必须的,全部都有默认值,如果配置中有指定值或继承目标,则以配置文件优先。 一、项目配置pid.txt,案例及说明:default=$pid$/$mob$/tid1/ /项目默认继承目标pidLink=wh_hp /项目pid关联tidOpenAdd=|0|1|2|3|8|9|10|11
25、|12| /项目中那些列表是开放的pidName=项目001 /项目名称 tidName1=列表A /列表1名称tidName2=列表B /列表2名称pidUpload=gif|jpg|png|rar|zip| /项目允许上传文件类型pidUploadMark=1 /项目上传图片文件是否加水印pidUploadMarkSet=E|0.7|file_moban/book/htm/img/logo_150x50.png| /图片水印位置、透明度、水印来源。pidUploadSize= |0:1|100:2| /项目允许上传单个文件大小,如:0:1,积分大于0,可上传1M大小文件。pidUpload
26、DayCount= |0:10|100:20| /项目允许每用户每天上传几个文件。如:0:10,积分大于0,每天可上传10文件。二、列表配置tid1.txt,案例及说明:tidName=列表A /列表名称,可用,可不用,视你想怎么提取。tidLink=1|2| /列表关联,一般不用。pageSize=10 /列表每页记录条数。pageSize:$pid$/$mob$/tid$tid$ /继承目标select_bd=and tit_ext like %1$uid$1% /列表查询绑定,一般不用list_login=0 /查看内容是否需要登录list_my=0 /是否只显示自己发表的信息list_
27、cache_all=1 /是否整列表缓存0:否1:缓存view_catch=0 /内容页是否缓存(0/1)/是否缓存主题列表行数据,对于复杂扩展字段的显示,能大幅提高速度。(1:缓存,0:动态)use_tit_main_html=1/是否动态读取标题信息,是否连标题也缓存,对系统影响不大,一般不缓存。0:缓存,1:动态use_tit_main=1【列表发布类配置】/是否需要输入正文use_tit_body=1/是否需要扩展字段use_tit_ext=0/是否需要标题图片use_tit_img=1/扩展字段修改保存项tit_ext_save=1|2|3|4|5|6|7|8|9|10|20|21|
28、22|23|30|31|32|33|34|35|36|37|38|39|/保存扩展字段筛选项,1|2|3|4|5tit_ext_sx=1|2|3|4|5|6|7|8|9|10|20|21|22|23|30|31|32|33|34|35|36|37|38|39|/是否允许未登录用户。use_tit_guest=0/内容发布显示默认值:0待审核,1显示,2审核未通过tit_add_show=1/内容发布完成后跳转设置,0默认显示内容,1显示指定内容value/tid1/add_over_html.txttit_add_over=0/内容修改完成后跳转设置,0默认显示内容,1显示指定内容value/
29、tid1_edit_over_html.txttit_edit_over=0/是否允许用户修改自己发的主题(0:不允许,1:允许,24:二十四小时内允许修改)tit_add_edit=1/是否只允许用户在该栏目发表一条记录。可用于做存储用户配置功能tit_add_one=0/是否允许用户发布相同主题的记录。tit_add_two=1/本列表每天最多可发几条新记录,针对所有用户。tit_add_one_day=10/发帖是否需要验证码tit_add_rand=0【列表发布数据层验证配置】/发帖必须的扩展参数tit_add_para=tit1,tit2/发帖条件验证SQL01tit_add_par
30、a_sql01=select uid from mycmf_user where uid=$uid$ /发帖条件验证SQL02tit_add_para_sql02= /发帖条件验证SQL03tit_add_para_sql03= 【内容显示数据层控制类配置】/列表隐藏字段list_hide_field=80|81|82|83|/隐藏字段标识list_hide_field_txt=保密/满足显示字段(条件)1/可以使用$pid$,$tid$,$nid$,$uid$list_hide_view_sql1=length(txt14)0 and (select send_user from mycmf
31、_tit where nid = (select txt1 from mycmf_tit_ext where nid=$nid$) ) =$uid$)/满足条件显示字段1list_hide_view_field1=81|82|83【回贴类配置】/回复是否开启回复,0:不允许,1允许tit_rep=0/回复只能一次,每个记录。tit_rep_one=0/回复是否只允许发贴人查看tit_rep_view=0/回复后是否更新标题缓存,0:不允许,1允许tit_rep_update=1/回复是否默认显示,0:待审核后显示,1直接显示tit_rep_show=1/回复每页显示条数tit_rep_page
32、_size=20/回复时允许添加的附件。|pic|url|图片|超级连接|tit_rep_ext=|pic|url|/回复序号名称.如:楼,号。tit_rep_idname=楼【积分类配置】/发贴积分需求(需要积分达到多少才可以发帖)add_tit_fen=100add_tit_fen:$pid1$_$pid2$_001/tid1/积分达到多少发帖和回复不需要验证码/add_rand_fen=1000add_rand_fen:$pid1$_$pid2$_001/tid1/设为精品积分/add_good_jf=10add_good_jf:$pid1$_$pid2$_001/tid1/发贴积分(负
33、数:消费积分,正数:赚取积分)/add_tit_jf=5add_tit_jf:$pid1$_$pid2$_001/tid1/发贴删除积分【填负数】/add_tit_jfx=-5add_tit_jfx:$pid1$_$pid2$_001/tid1/回复积分/add_rep_jf=3add_rep_jf:$pid1$_$pid2$_001/tid1/回复被屏蔽扣积分【填负数】/add_rep_jfx=-3add_rep_jfx:$pid1$_$pid2$_001/tid1【同步类数据层配置】/主题发布同步sql1/tit_add_sql=update mycmf_user_log set uid_
34、lock =txt2 where uid =txt1tit_add_sql:$pid1$_$pid2$_001/tid1/主题发布同步sql2/tit_add_sql2=tit_add_sql2:$pid1$_$pid2$_001/tid1/主题发布同步sql3/tit_add_sql3=tit_add_sql3:$pid1$_$pid2$_001/tid1/主题编辑同步sql1/tit_edit_sql=update mycmf_user_log set uid_lock =txt2 where uid =txt1tit_edit_sql:$pid1$_$pid2$_001/tid1/主题编
35、辑同步sql2tit_edit_sql2=tit_edit_sql2:$pid1$_$pid2$_001/tid1/主题编辑同步sql3tit_edit_sql3=tit_edit_sql3:$pid1$_$pid2$_001/tid1三、单值文本配置(value目录)【内容发布相关配置】add_ext_cfg.txt /内容发布扩展字段类型设置add_ext_html.txt /内容发布扩展模板设置add_tit_body.txt /内容发布默认正文设置add_html_top.txt /内容发布界面顶部模板add_html_end.txt /内容发布界面底部模板add_html_left.
36、txt /内容发布界面左侧模板add_html_right.txt /内容发布界面右侧模板add_html_submit_js.txt /内容提交扩展JS验证add_over_html.txt /新增内容发布后显示模板edit_over_html.txt /修改内容发布后显示模板【权限相关配置】user_add.txt /允许发表主题用户设置user_view.txt /允许查看主题用户设置user_rep.txt /允许回复主题用户设置user_adm.txt /列表管理用户设置【列表相关配置】list_html.txt /默认列表循环模板配置list_html_img.txt /图片模式列
37、表循环模板配置list_html_view.txt /内容页正文扩展模板配置列表行记录可使用变量说明:$uid$当前登录用户UID$cont$当前项目名称$mycmf_time$当前系统时间$mob$当前模板组$i$当前行数$ii$当前总行数$pid$当前记录所属pid$tid$当前记录所属tid$nid$当前记录nid$tit$当前记录标题$tit_ext$当前记录标题扩展字段预存$body$当前记录正文内容$tit_img$当前记录标题图片$tit_imgs$当前记录标题图片缩略图$send_user$当前记录发表者UID$send_time$发送时间$send_ip$发表者发送时的IP地址$rep_user$最近回复者UID$rep_time$最近回复时间$set_top$置顶序号$set_good$是否为推荐$set_show$是否显示$count_rep$回复总数$count_view$阅读总数$date_top$开始时间$date_end$结束时间$tit