jeecms二次开发必备 doc
二次开发技术文档
二次开发技术文档了解系统结构程序为MVC 3层结构,模型/ 视图/ 控制器。
●模型是前后台公用。
完成业务逻辑,所有的数据库操作,文件等资源调用,都由此层实现。
●控制器则是前后台独立。
负责业务模型的调用,拼接,变量的转换等等。
●视图层采用类似smarty的实现。
在任何时候都有一个全局变量$system指向唯一的一个内核类:core/kernel.php控制器负责所有的变量的转换,包括对外界的变量转换。
像胶水一样粘合各个业务model,并在其中的数据交互过程中做一些数据转换过程。
最终将变量抛到模板层。
模板层负责编译成html输出,这里我们创建了大量的smarty插件来减少开发者的重复工作量。
结构图公共类图公共函数库公共函数库位于/core/func_ext.php,它在内核加载时首先被加载,对全系统有效。
其中包含若干php5函数的php4模拟版本:●file_put_contents●json_encode●json_decode●ftp_chmod●array_diff_key●http_build_query运行过程商派Commerce B2B标准版前后台调度都分别通过各自目录下一个名为index.php的入口文件进行,入口文件接受控制器、方法等的输入参数,调度给对应的控制器方法执行并输出结果。
index.php会调用kernel。
Kernel基础类提供模型对象加载,插件入口,错误处理,设置管理,输入输出,第三方类库加载等基础服务。
前后台及安装入口程序在初始化时,都会初始化一个对应的内核类,这个类在前台是shopCore.php,后台时是adminCore.php。
这两个文件都是继承core/kernel.php文件。
该内核类首先会形成一个名为system的指向自身的全局对象,然后根据传入参数调用对应的控制器方法运行。
控制器层与模型层都会产生对该全局system对象的调用来使用基础服务。
并且控制器和模型层在自身被实例化之后都可以使用$this->system来引用内核对象。
IE浏览器二次开发实用指南(doc63)(1)
IE浏览器二次开发实用指南(doc63)(1)IE浏览器二次开发实用指南IE(Internet Explorer)浏览器提供了功能强大的二次开发接口,很多下载软件(网际快车和网络蚂蚁等)即利用了相应的接口,实现了在IE中的集成。
开发者如能巧妙地利用这些接口,则完全可以充分发挥创造力,开发出形形色色的IE辅助软件。
一、IE右键菜单的开发对于IE的右键菜单,我们并不陌生,很多下载软件都在右键菜单中新增了相应的菜单项。
下面让我们利用IE提供的接口实现IE右键菜单的二次开发。
(一)相关知识点1.添加右键菜单添加右键菜单的方法很简单,在注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt项下建立一个新项,该项名称即代表显示在IE右键菜单中的菜单项标题,如安装了网际快车或网络蚂蚁,那么在注册表编辑器中即可发现相应键值。
2.设置执行代码添加了菜单项后,我们必须为菜单项设置单击后执行的代码。
首先将新建注册表项的默认值设置为一个URL(Uniform Resource Locator,统一资源定位器)地址,当用户单击该菜单项后,IE将调用该URL所指向的脚本并执行其中的代码。
我们分析相应键值即可发现网际快车和网络蚂蚁在单击IE右键菜单相应项时访问的文件。
具体如下所述:(1)“Download by NetAnts”项对应访问网络蚂蚁安装目录下的“NAGet.htm”文件。
(2)“Download &All by NetAnts”项对应访问网络蚂蚁安装目录下的“NAGetAll.htm”文件。
(3)“使用网际快车下载”项对应访问网际快车安装目录下的“jc_link.htm”文件。
(4)“使用网际快车下载全部链接”项对应访问网际快车安装目录下的“jc_all.htm”文件。
3.开发常用对象在调用的目标脚本文件中,通过访问IE提供的一些右键开发专用对象,即可访问链接、图片、表单域或选择的文本等页面对象。
二次开发文档
二次开发文档Jspxcms无侵入式插件开发(二次开发)教程之一:概述Jspxcms支持无侵入式插件和二次开发,无需修改系统原有代码,即可无缝整合Entity、Service、Controller、功能菜单、权限、标签、国际化等功能。
系统中“插件--简历管理”就是以这种方式实现的,下面就以“简历管理”讲解Jspxcms插件和二次开发的方法。
本帖隐藏的内容需要回复才可以浏览配置文件位置:/WEB-INF/conf/plugin。
所有的配置文件都必须在这个目录,在该目录下的配置文件会自动加载。
在该目录下新建自己的文件夹,可以是任何名字,如:abc、novel等,本例为plug。
即/WEB-INF/conf/plugin/plug 配置文件说明application.properties:功能菜单、权限、国际化、Entity都与这个文件相关。
context-dao.xml:Dao的加载。
context-service.xml:Service的加载。
controller-back.xml:后台Controller的加载。
controller-fore.xml:前台Controller的加载。
context-directive.xml:标签的加载。
其他与插件开发相关的文件目录/WEB-INF/messages/plugin/plug:后台国际化文件位置/WEB-INF/messages/plugin/plugfore:前台国际化文件位置/WEB-INF/views/plug:后台jsp文件位置/files/1/bluewise/plug_resume.html:插件的前台模版插件源代码包名:com.jspxcms.plugJspxcms无侵入式插件开发(二次开发)教程之二:菜单与权限本帖隐藏的内容需要回复才可以浏览菜单和权限配置文件:/WEB-INF/conf/plugin/plug/application.properties一级菜单配置(分号为分割符)1.menu.650=navigation.plug;nav.do?menuId=650;nav_plug复制代码650:是后台导航一级菜单的编号,编号大小决定菜单的前后位置。
jeecms二次开发必备
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凭借其强⼤、稳定、安全、⾼效等多⽅⾯的优势,⼀直是企业级应⽤的⾸选。
[原创]织梦dedeCMS二次开发文档手册,文件详解以及数据库结构字段说明
本文由IT 我爱看网整理,对于学习dedecms数据库结构提供帮助。
织梦dedeCMS二次开发文档手册,文件详解以及数据库结构字段说明1、程序核心程序目录及简介/include目录程序核心目录config_base.php 环境定义文件。
用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。
config_hand.php 系统配置文件。
定义系统常用的配置信息定义,可从后台管理直接生成该文件。
config_passport.php 通行证文件config_rglobals.php 检测系统外部变量config_rglobals_magic.php 同上inc_archives_view.php 用于浏览文档或对文档生成HTMLinc_arclist_view.php 用于浏览频道列表或对内容列表生成HTMLinc_arcmember_view.php 用于浏览会员发布的文档inc_arcpart_view.php 用于解析和创建全局性质的模板,如频道封面,主页,单个页面等inc_arcsearch_view.php 用于文档搜索inc_arcspec_view.php 用于浏览所有专题列表或对专题列表生成HTMLinc_channel_unit.php 用户解析特定频道的附加数据结构信息inc_channel_unit_functions.php 系统共用函数集合inc_downclass.php 防采集随机字符串函数inc_freelist_view.php 用于对特定内容列表生成HTMLinc_functions.php 可供用户使用的函数集合inc_imgbt.php GetTypeidSelMemberinc_memberlogin.php 用于用户登录及获得会员状态inc_photograph.php 用于处理系统中的图片,例如水印,缩略图等inc_photowatermark_config.php 图片处理参数定义inc_rss_view.php 用于浏览频道RSS或对RSS生成静态文件inc_separate_functions.php SpGetArcList函数,用于获得文档列表inc_sitemap.php 用于生成网站地图inc_type_tree.php 用于选择栏目的目录树inc_type_tree_member.php 同上,会员使用inc_typelink.php 用于显示文章的位置和栏目位置等inc_typeunit_admin.php 用于频道管理时的一些复杂操作,主要用于后台inc_typeunit_menu.php 同上inc_userlogin.php 用于管理员登录inc_vote.php 用于管理投票jump.php 用于超链接跳转pub_charset.php 共用字符处理函数,GB/UTF-8/Unicode/BIG5等互换pub_collection.php 用于采集pub_collection_functions.php 采集用函数pub_datalist.php 后台管理用数据列表pub_datalist_dm.php 同上,不使用模板pub_db_mysql.php 用于操作数据库pub_dedehtml2.php 用于采集中的HTML解析pub_dedehtml.php HTML解析器pub_dedetag.php 用于dede模板标签解析pub_httpdown.php 用于下载http中的资源pub_oxwindow.php 后台程序扩展pub_splitword_www.php 织梦分词算法validateimg.php 验证码vdimgck.php 验证码/inc 共用函数目录inc_fun_funAdmin.php 获取拼音码等函数inc_fun_funString.php html代码处理等函数inc_fun_SpGetArcList.php 获取文档列表SpGetArcList对于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖。
会员OA办公系统二次开发项目建设方案书1.doc
会员OA办公系统二次开发项目建设方案书1协议附件1XXXXX有限公司会员OA办公系统项目二次开发方案书XXXXX有限公司2017年10月目录第一章系统功能模块(3)1.1 新域名接入服务(3)1.2 系统数据迁移(3)1.3 经销商等级(3)1.4 经销商升级(3)1.5 开拓津贴(4)1.6 经销商报单费(4)1.7 旗舰店(4)1.8 店级差(5)1.9 公益基金(5)1.10 经销商列表(5)1.11 交易记录(5)1.12 我的旗舰店(5)1.13 福利奖金(6)1.14 短信模块(6)第二章团队规划(7)第三章开发周期(7)第四章项目报价(7)第五章网站维护和售后支持服务(8)5.1 售后服务项目(8)5.2 服务期内享有如下免费的支持服务(8)5.3 响应时间和服务速度(9)第一章系统功能模块市场部门:市场部门按照经销商加入时间顺序来分配部门,比如当前经销商是第一个加入就是市场一部,第二加入就是市场二部,以此类推。
1.1 新域名接入服务免费提供一个新域名备案和接入服务,由客户提供需要接入的新域名(1个),提供域名备案和接入审核对接工作,域名备案审核由企业营业执照所在地的工信管理局审核,审核工作完成预计为20天左右。
1.2 系统数据迁移将旧系统()中经销商全部进行迁移到新系统,包括经销商所属关系链,经销商所拥有的直推费用总金额。
1.3 经销商等级经销商等级增加一个VIP,对应订货产品750元/盒,调整后的经销等级和订货产品为:1.4 经销商升级经销商升级流程与原系统保持一致,可以补差价进行升级,升级规则采用新系统流程。
1.5 开拓津贴开拓津贴由旧系统的直推业绩调整,在新伙伴加入或新建升级单中,由以前的1级调整为3级。
计算公式:报单费用为3%(金钻卡),5%(皇冠卡),直推人(直推一级)享受报单总金额的20%,直推人员的上一级(开拓二级)享受报单总金额的15%,直推人员上级的上级第三级(开拓三级)享受开卡总金额的10%。
jeecmd二次开发文档
1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中2.解压缩jeecms-3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这个源码,删除jeecms-cms-identity-3.0.2-final.jar即可,如果想进行深入的二次开发,需要导入common和core源码,另导入common-lib下的jar包,删除jeecms-cms- ide ntity-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是对标签的初始化<welcom e-file-list><welcom e-file>index.html</welcome-file><welcom e-file>index.shtml</welcome-file><welcom e-file>index.jhtml</welcome-file></welcome-file-list>通过以上标签找到应该加载哪一个页面<servlet><servlet-name>JeeCmsFront</servlet-nam e><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-nam e><url-pattern>*.jhtml</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-nam e><url-pattern>*.jspx</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-nam e><url-pattern>*.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>JeeCmsFront</servlet-nam e><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,此类是首页模板。
4、dede织梦CMS二次开发--程序篇
程序篇4.1、自定义模型使用教程在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。
通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:这里我们介绍几个相关参数的概念:•ID号用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;•频道名称用于识别频道类型的标识;•识别id系统用于识别的id,这个关系到模板方面;•附加表系统内容附加表项;•模型类型分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
这里我们介绍一些周边的内容,几个要用到的概念:•字段在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;•内容系统主表程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心()的有关二次开发手册数据表部分的内容;•附加表不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;•单表独立模型存储时候不用到“主表+附加表”的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
DedeCMS二次开发手册簿
DedeCMS V5.3二次开发手册一、模板篇1.1、主要模板文件与功能说明DedeCMS系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCMS支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS也支持使用风格的形式使用模板,默认风格是default,它表示系统默认使用{cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然后在后台修改了默认的模板风格名称为style2 ,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。
一、概念,设计和使用模板,必须要理解下面几个概念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]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
jeecmsv6系统开发指南
Jeecms开发指南版本号:jeecmsV6.12015-4-27南京安元科技有限公司目录一、系统开发指南 (4)1 系统架构概述 (4)1.1 分层架构模型 (4)1.2 组件架构模型 (5)1.3 数据流转模型 (5)2 框架目录介绍 (6)2.1 Cms包介绍 (6)2.2 Common包介绍 (7)2.3 Core包介绍 (7)2.4 页面资源介绍 (8)3 开发流程指导 (10)3.1 展现层 (10)3.2 控制层 (13)3.3 逻辑层 (15)3.4 持久层 (17)3.5 自定义标签 (18)4.开发工具使用 (20)4.1 基础代码生成步骤 (20)4.2 代码生成器生成Dao,Service,Action后台页面步骤 (24)二、系统插件开发指南 (25)1.系统架构简述 (25)1.1 插件配置说明 (25)1.2 entity开发简介 (25)1.3 dao开发配置 (26)1.4 manager开发配置 (26)1.5 action开发配置 (26)1.6 标签开发配置 (26)1.7 国际化配置 (26)1.8 权限菜单配置 (27)三、Jeecmsv6集成第三方登录 (28)1.集成QQ登录 (28)1.1 申请QQ互联APP ID和APP KEY (28)1.2 系统配置APP ID和APP KEY (29)2.集成腾讯微博登录 (30)2.1 创建网页应用 (30)2.2 提交审核(确认开发者) (31)2.3 提交审核(确认应用信息) (31)2.4 提交审核(确认应用素材) (32)2.5 系统配置APP ID和APP KEY参考1.1.2 (32)3.集成新浪微博登录 (32)3.1 创建应用 (32)3.2 提交审核 (33)3.3 系统配置APP ID和APP KEY参考1.1.2 (33)4.特殊说明 (33)一、系统开发指南1系统架构概述本系统核心架构为FreeMarker+hibernate+Spirng的mvc分层架构。
ecshop二次开发手册基础教程
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二次开发了。
Jeecms二次开发相关文档(入门)
Jeecms二次开发相关文档(入门)目录:(本文档中内容整理自网络并结合自己实际开发经验总结而来,文档后有相关内容引用出处,本处声明免责,不承担任何纠纷,文档供大家交流使用)Jeecms二次开发相关文档(入门) (1)一、jeecms内部请求转发运行原理 (2)二、jeecms使用freemarker标签示例及原理 (4)1、标签使用示例 (4)2、标签原理 (4)3、自定义标签(实例演示说明标签用法) (7)三、在MyEclipse工作环境中构建jeecms项目 (10)1、搭建Jeecms的运行环境 (10)2、安装jeecms演示系统 (10)3、导入Jeecms项目 (10)一、jeecms内部请求转发运行原理Jeecms中有众多的配置文件,单xml配置文件就相当繁多,各个文件间的关联查找使用关系也不像简单的struts配置文件一样。
如首页的显示过程如下。
系统架构是ssh+freemarker模板构成的,所以先要熟悉freemarker模板技术。
先看web.xml文件,其中欢迎页面有:<welcome-file-list><welcome-file>index.jspa</welcome-file><welcome-file>index.do</welcome-file><welcome-file>index.html</welcome-file></welcome-file-list>接着再看jeecms/core/struts-core-front.xml配置文件,发现有个action的通用配置:<action name="**" class="core.dynamicSystemAct"><result type="chain"><param name="namespace">${namespace}</param><param name="actionName">${actionName}</param></result><interceptor-ref name="exception"/><interceptor-ref name="domain"/><interceptor-ref name="cookieIdentity"/><interceptor-ref name="url"/></action>struts收到请求以后,将请求转发到core.dynamicSystemAct这个对象,注意这个这个class并不是真正的类,是类的别名,由spring通过标注@Controller进行绑定,web应用上下文可以通过classpath自动扫描到这个类。
jeecmsv7插件开发指南
系统插件开发指南目录系统开发指南 (1)1. 系统架构概述 (1)1.1插件配置说明 (1)1.2entity开发简介 (2)1.3dao开发配置 (2)1.4manager开发配置 (2)1.5action开发配置 (2)1.6标签开发配置 (2)1.7国际化配置 (3)1.8权限菜单配置 (3)1.系统架构简述本系统核心架构为FreeMarker+hibernate+Spirng的mvc分层架构。
jeecms支持无侵入式插件和二次开发,无需修改系统原有代码,即可无缝整合entity、manager、dao、action、功能菜单、权限、标签、国际化等功能。
1.1插件配置说明配置文件位置:/WEB-INF/config/plug。
所有的配置文件都必须在这个目录,在该目录下的配置文件会自动加载。
在该目录下新建自己的文件夹,如:test,本例为test。
即/ WEB-INF/config/plug /test配置文件说明(test插件名,可任意起名)test.properties:标签、功能菜单、权限、国际化、Hbm映射路径配置。
test-context.xml:dao、manager、标签的配置。
test-servlet-admin-action.xml:后台action的配置。
test-servlet-front-action.xml:前台action的配置。
其他与插件开发相关的文件目录/WEB-INF/languages /plug/test/admin:后台国际化文件夹/WEB-INF/languages /plug/test/front:前台国际化文件夹/WEB-INF/languages /plug/test/tpl:模板国际化文件夹/WEB-INF/jeecms_sys/:后台页面文件位置(可自行新建子文件夹)/WEB-INF/t/cms/www/default/:前台模版文件夹插件源代码包名:com.jeecms.test1.2entity开发简介建立hibernate映射文件和实体类(实例com.jeecms.test.entity.hbm)配置插件的实体映射文件路径(test.properties增加以下配置)hibernate.hbm.test.entity=classpath*:/com/jeecms/test/entity/hbm/*.hbm.xml说明hibernate.hbm为固定格式,test.entity这个key只要不和其他插件重名即可1.3dao开发配置源码开发部分可参考源码部分,配置dao的beantest-context.xml增加如下配置<bean id="cmsTestDao" class="com.jeecms.test.dao.impl.CmsTestDaoImpl"/>1.4manager开发配置源码开发部分可参考源码部分,配置manager的beantest-context.xml增加如下配置<bean id="cmsTestMng" class="com.jeecms.test.manager.impl.CmsTestMngImpl"/>1.5action开发配置源码开发部分可参考源码部分,配置action的beantest-servlet-admin-action.xml增加如下配置<bean id="testAdminAct" class="com.jeecms.test.action.admin.CmsTestAct"/>1.6标签开发配置源码开发部分可参考源码部分,配置directive的beantest-context.xml增加如下配置<bean id="test_list" class="com.jeecms.test.action.directive.CmsTestListDirective"/>test.properties增加标签配置directive.test_list=test_list上述配置说明directive.固定格式,test_list为标签名,test_list为在test-context.xml配置文件中配置的标签的id名1.7国际化配置test.properties增加国际化文件夹配置messages.front.test=/WEB-INF/languages/plug/test/front/messagesmessages.front.test.tpl=/WEB-INF/languages/plug/test/tpl/messagesmessages.admin.test=/WEB-INF/languages/plug/test/admin/messages/WEB-INF/languages /plug/test/admin:后台国际化文件夹/WEB-INF/languages /plug/test/front:前台国际化文件夹/WEB-INF/languages /plug/test/tpl:模板国际化文件夹分别在如上文件夹增加国际化配置文件,例如messages_zh_CN.properties文件配置后台国际化cms.test.title=标题,其他的类似1.8权限菜单配置test.properties增加配置plug.menu.30= cms.test.function;test/v_list.do;test:v_list//二级菜单配置plug.perms.30=global.add@test:v_add;global.edit@test:v_edit;global.save@test:o_save;global.u pdate@test:o_update配置说明:plug.menu.为新增菜单的固定格式30为插件的id(可以为任意的整形数字,例如60、600等,值越小在扩展菜单下的菜单排序靠前)cms.test.function为插件菜单名的国际化配置test/v_list.do为插件菜单链接地址test:v_list为插件菜单权限plug.perms.为固定格式,30和上面的一级菜单的id一致global.add@test:v_add;子菜单权限配置,global.add为菜单名国际化配置test:v_add为子菜单的权限。
JEECMS标签-使用说明pdf文档
第一部分使用说明1.标签使用概述作者:发布日期:2009-07-0110:32:14调用"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三种形式相对应的。
大家可以逐个测试,举一反三。
为了测试上述几类标签,我们可以新建一个空白的首页模板(新建的首页模板必须以index做前缀,例如index_demo.html),进入后台管理->模板管理->template->article->blue->default,点击下图中③处的“创建模板”按钮,按要求填写必要的模板内容后保存模板,此时点击功能树上面的“刷新目录”就可以看到新加的“index_demo.html”模板了,如下所示:——>然后点击“文章栏目->首页->修改”,将新建的首页模板(index_demo.html)设为首页栏目模板,提交保存——>回到站点首页,刷新,您将看到我们刚才建立的测试首页,你就可以在上面测试各种标签的用法了(需要恢复原来的默认首页很简单,把首页栏目模板重新设置为默认模板或index.html就行了)。
dede二次开发教程之常用模板标签
DEDECMS二次开发时需要收藏的模板标签:需求:1. 模板路径、include路径标签、plus路径标签还有就是<head>内的SEO标题等相关标签;2.系统自带的首页、列表页、内容页等常用的标签,如时间、作者、分页、顶踩等等;3.更深入的二次开发需要的模板调用标签,通过sql语句来实现数据的调用;4.一些链接、图片、标题等标签的灵活使用;路径、SEO标题、模板基本信息标签:1. 模板路径调用标签: {dede:field name='templeturl'/}2. 关键描述调用标签:<meta name="keywords" content="{dede:field name='keywords'/}"><meta name="description" content="{dede:fieldname='description' function='html2text(@me)'/}">3. 网站标题调用标签: {dede:global name='cfg_webname'/}4. 指定调用栏目标签: {dede:type typeid='ID'}[field:typename /]{/dede:type}5. 频道栏目调用标签:{dede:channel type='top'}<li><a href='[field:typelink/]'>[field:typename/]</a> </li>{/dede:channel}6. 友情链接调用标签: {dede:flink row='24' linktype=2/}7. 网站版权调用标签: {dede:global name='cfg_powerby'/}8. 网站备案调用标签: {dede:global name='cfg_beian'/}9. 当前栏目名称标签: {dede:field name='typename'/}10 .当前位置调用标签: {dede:field name='position'/}11. 列表文章调用标签: {dede:list pagesize='8'}{/dede:list}12.栏目链接调用标签:[field:typelink function='str_replace("a ","a class=ulink ",@me)'/]13. 作者链接调用标签: [field:writer/]14. 列表点击调用标签: [field:click/]15. 列表评论调用标签: [field:postnum/]16. 查阅全文调用标签: <a href="[field:arcurl/]">查阅全文...</a>17. 列表时间调用标签:[field:pubdate function="GetDateTimeMK(@me)"/]18 . 列表分页调用标签: {dede:pagelist listsize='4' listitem='index pre pageno next end '/}19. 文章标题调用标签: {dede:field name="title"/}20. 文章来源调用标签:{dede:field name='source'/}21. 文章作者调用标签: {dede:field name='writer'/}22. 文章时间调用标签: {dede:field name='pubdate' function='GetDateMk(@me)'/}23. 文章Tag调用标签: {dede:tag type='current'/}导航、会员、内容页等模板标签:1. 栏目导航调用标签:<a href="/">首页</a></li>{dede:channel type='top' row='8' currentstyle="<li class='thisclass'><a href='~typelink~'>~typename~</a> </li>"}<li><a href='[field:typelink/]' target="_blank">[field:typename/]</a> </li>{/dede:channel}2. 文章点击调用标签:<script src="{dede:field name='phpurl'/}/count.php?aid={dede:field name='ID'/}&mid={dede:field name='memberid'/}&view=yes" language="javascript"></script>3. 文章内容调用标签: {dede:field name='body'/}4.文章分页调用标签:{dede:pagebreak/}5.收藏、推荐评论、打印、关闭:[<a href="{dede:field name='phpurl'/}/stow.php?arcID={dede:field name=ID/}">收藏</a>][<a href="{dede:field name='phpurl'/}/recommend.php?arcID={dede:field name=ID/}">推荐</a>][<a href="{dede:field name='phpurl'/}/feedback.php?arcID={dede:field name=ID/}">评论</a>][<a href="#" onClick="window.print();">打印</a>][<a href="#" onClick="window.close();">关闭</a>]6.文章顶客次数标签:{dede:field name='digg'/} <ahref="javascript:Digg('digg',{dede:field name='id'/});">顶一下</a>7. 上一篇/下一篇标签: {dede:prenext get='pre'/}{dede:prenext get='next'/}8. 头条推荐调用标签:{dede:arclist row=1 titlelen=24 orderby=pubdate att=2} <dt> [field:textlink/]<span>[field:description/]……</span></dt>{/dede:arclist}9.最新文章调用标签:{dede:arclist row=8 titlelen=24 orderby=pubdate}<li>[field:textlink/]</li> {/dede:arclist}10. 热关键字调用标签: {dede:hotwords num='5' subday='30'/}11. 最新图文调用标签:{dede:arclist row=4 titlelen=20 orderby=pubdate type='image.' imgwidth='152' imgheight='98'}<dd><a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" > </a><span><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a></span></dd>{/dede:arclist}12.推荐文档调用标签:{dede:arclist type='commend' titlelen='40' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}13.随机推荐调用标签:{dede:arclist type='commend' titlelen='26' orderby='rand' row='10'}<li><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a></li>{/dede:arclist}14.热点文档调用标签:{dede:arclist orderby='click' titlelen='40' row='10'} <li><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a></li>{/dede:arclist}15.相关文档调用标签:{dede:likeart titlelen='24' row='10'}<li><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a></li>{/dede:likeart}16.调用图片链接标记:<a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a> <a href='[field:arcurl /]'>[field:image/]</a>17.调用文字链接标记:<a href="[field:aucurl/]" title="[field:title/]">[field:title/]</a><a title="[field:title function='htmlspecialchars(@me)'/] "href="[field:arcurl /]">[field:title /]</a>18. 控制字数描述标记: [field:description function="cn_substr(@me,100)"/]...19. 调用文章tags标记: {dede:tag type='current'/}20. 文章关键字与描述:{dede:field name='keywords'/}{dede:field name='description' function='html2text(@me)'/}21. 栏目介绍:{dede:field name='description' function='html2text(@me)'/}22. 调用外部htm文件:{dede:include file='head.htm' ismake='yes'/}23.搜索文章调用标签:{dede:global name='keyword'/}"的搜索结果 - {dede:global name='cfg_webname'/} 搜索" {dede:global name='keyword'/}</span>" 的结果24. 评论:[field:postnum/]25. 作者:[field:writer /]数字排行、隔行换色、24小时更新等特效:1. 递增序列号: [field:global name=autoindex/]2. 列表隔5行加一行线:{dede:list pagesize='50'}<li><a href="[field:arcurl /]" title="[field:titlefunction='htmlspecialchars(@me)'/]" target=_blank>[field:title function="cn_substr(@me,48)"/]</a>[field:pubdate runphp='yes'] $a="<font color=red>".strftime('%m-%d',@me)."</font>";$b=strftime('%m-%d',@me);$ntime = time();$day3 = 3600 * 24;if(($ntime - @me) < $day3) @me = $a;else @me =$b;[/field:pubdate]<br>[field:global name=autoindex runphp="yes"]if(@me%5==0)@me="<hr />";else @me="";[/field:global]{/dede:list}<div class="line2 m1 m3"></div></li>3. 最新文章列表“隔行换色” 的方法:{dede:arclist orderby=pubdate titlelen='26' row='10'}[field:global runphp='yes' name=autoindex]$a="<div id='a'>";$b="<div id='b'>";if ((@me%2)==0) @me=$a;else @me=$b;[/field:global]<ul><li>[field:title/]</li></ul></div>{/dede:arclist}4. 24小时内更新的文章时间显示为红色:[field:pubdate runphp='yes']$a="<font color=red>".strftime('%m-%d',@me)."</font>";$b=strftime('%m-%d',@me);$ntime = time();$day3 = 3600 * 24;if(($ntime - @me) < $day3) @me = $a;else @me =$b;[/field:pubdate]5. COPY页面内容,自动在后面加上网站信息,利于SEO<script type="text/javascript">document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n本篇文章来源于 www.地址.COM 原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }</script>6. 按时间点击文章排行榜调用标签:按总: {dede:arclist row='24' titlelen=24 orderby=click}按月: {dede:arclist row='24' titlelen=8 orderby=click subday=30}按周: {dede:arclist row='24' titlelen=8 orderby=click subday=7}7. 在首页调用某栏目的子栏目{dede:channel type=’sun’ typeid=’栏目ID’}<a href=”[field:typelink/]“>[field:typename/]</a>{/dede:channel}或者{dede:global name=’maplist’/}8.搜索表单调用标签:<form action="{dede:global name='cfg_phpurl'/}/search.php" name="formsearch"><input type="hidden" name="kwtype" value="1" /><input name="keyword" id="keyword" type="text" class="searchtxt" /><select name="searchtype" id="searchtype"><option value="titlekeyword" selected>智能模糊搜索</option><option value="title">仅搜索标题</option></select><input type="image"src="{dede:field name='templeturl'/}/images/topsearch_submit.gif" /></form>9. 实现“文章标题-2级栏目-1级栏目-网站名”形式{dede:field name='title'/}-{dede:field name='position' runphp='yes'}$tc="-"; //分隔符$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符@me=html2text(@me); //去除html标签$tf=split($tw,@me); //分解成数组for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk$tk.=trim($tf[$ta]).$tc;}$tk=substr($tk,0,-1);@me=$tk; //赋值给@me{/dede:field}-{dede:global name='cfg_webname'/}10. 调用缩略图:<img src='{dede:field name="litpic"/}'>11. 发布的文章显示红色日期或加上new字或new小图片给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等,都是围绕pubdate做文章,写扩展的。
二次开发接口文档
接口开发文档一、开发包目录结构1.1demo 文件夹包含了sdk 接口调用源代码,可供二次开发参考。
使用C++开发的MFC 程序。
1.2dll 文件夹包含了二次开发所需的所有动态库,demo 编译好的exe 文件需要放在该文件夹内才可以运行。
1.3include 文件夹包含了二次开发所需要的头文件。
1.4lib 文件夹包含了二次开发所需要的lib 静态库。
1.5DSS 二次开发指南(C++).pdf指导二次开发用户如何新建VS2005 工程运行demo 文件夹中的demo。
1.6dpsdk 开发包的程序版本信息。
1.7常见问题解答.pdf二次开发常见问题以及解决方式。
1.8大华平台SDK 开发手册(C++版).chm二次开发接口使用说明。
二、术语和缩略语1、DPSDK:DSS 平台二次开发SDK 包2、CMS:中心管理服务3、DMS:设备管理模块4、demo:程序示例(功能类似DSS 平台客户端)5、web 管理员端:在浏览器中输入DSS 平台的ip 即可打开管理员端6、CameraID:通道id,形如:$1$0$07、DeviceID:设备id三、Demo 操作方法运行demo把“demo/bin/”目录下面的3 个文件,如下图所示拷贝到“dll”文件夹下面,运行。
登陆平台图 1 登陆界面登陆界面如图 1 所示,其中: IP:DSS 平台ip 地址;端口:9000;用户名:web 管理员端配置的用户;密码:web管理员端配置的用户对应的密码。
点击“登录”按钮,登陆平台。
登陆成功的界面如图2 所示:1235图2 主界面上图选中的 5个模块分别是:1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。
主界面功能介绍、组织树操作步骤:点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取 DSS平台上所有的设备信息。
、实时视频模块操作步骤:1)确保已经成功加载组织结构。
2)输入CamID(通道ID)。
二次开发培训文档
二次开发培训文档一、ECOLOGY系统框架结构1、主要的程序结构EcologyClassbean 存放编译后的CLASS文件js 系统中使用的JA V ASCRIPT和VBSCRIPT脚本Css 系统中JSP页面使用的样式ImagesImages_faceImages_frame 系统中使用的图片的存放目录Crm..Workflow 该功能分文件夹存放每个功能的文件WEB-INFProp 系统配置文件存放Service 系统的接口配置文件的存放二、说明一个JSP页面,一个JA V A程序的基本组成,如何阅读JSP页面1、一个jsp页面通常需要包含什么内容2、如何阅读一个JSP页面由于ECOLOGY系统支持多语言,因此在JSP页面上一般不出现中文,全部使用标签的形式来显示中文:比如:在IE上显示“姓名”那么在JSP页面中将通过<%=SystemEnv.getHtmlLabelName(413,user.getLanguage())%>这样的形式来表示,其中的数字413就是表示姓名,同时可以通过“select labelname from htmllabelinfo where indexid=413 and languageid=7”来获取到“姓名”这个显示名称,其中languageid=7表示中文显示名称,languageid=8表示英文显示名称.3、JA V A程序的基本组成在ECOLOGY中开发JA V A程序建议继承weaver.general. BaseBean,在BaseBean 中主要封装了两个方法:写日志文件,获取配置文件中的参数值。
三、几个常用的底层类的说明最基本的底层类,数据库操作类,上传下载文件,如何构建缓存,基本的工具类Ecology系统底层包开发指南.doc四、页面权限控制的说明,怎样在页面中引用权限,怎么样新增一个权限,如何在新开发的模块上引入权限控制在这一部分将描述:新增的页面如何保持和ECOLOGY的风格保持一致;新增的页面上引用ECOLOGY中的权限;新增的页面上引用新的ECOLOGY中还没有的权限;1、可以根据<泛微协同商务系统(Ecology)_JSP式样编写指南>保证新开发的页面在风格上和原有系统保持一致泛微协同商务系统(Ecology)_JSP式样编写2、使用ECOLOGY分页控件实现数据的分页显示泛微分页控件使用帮助及规范.doc3、引用系统中的权限首先从系统的权限设置中找到需要引用的权限名称,如下如找到“地址类型维护”这个权限,其ID为41,然后通过“select rightdetailfrom systemrightdetail where rightid=41”得到其rightdetail=“AddAddressType:Add”,那么在JSP页面中通过如下语句,就可以使得只有的“地址类型维护”这个权限用的用户可以查看该页面<% if(!HrmUserVarify.checkUserRight("AddAddressType:Add ", user) ) {response.sendRedirect("/notice/noright.jsp");return;}%>4、新增新的权限控制新功能的查看新增功能模块添加权限控制.d o c五、系统的人员组织结构的介绍1、主要数据结构HrmResource(人员基本信息表).doc HrmSubCompany(分部信息表).docHrmDepartment(部门信息表).doc2、如何从缓存中获取人员信息(对三个缓存的简单介绍)六、对流程,文档数据的存放说明(主数据,明细数据,一般信息等在数据库中如何存放,主要为了考虑报表的问题)1、文档的主要数据结构文档信息的主要存储表DOCDETAIL:文档信息存储表,主要存放文档的基本信息DOCDETAILCONTENT: 文档内容存放表(如果是ORACLE数据库,如果文档的类型是HTML文档,那么文档内容存放在该表中,SQLSERVER数据库不用该表)DOCIMAGEFILE:文档,附件关联表,此表记录文档和附件(WORD,EXCEL格式文档在数据库中按照附件格式存放)的关系(即一个文档关联了几个附件)IMAGEFILE:附件路径存放表,此表记录了文档的附件(或者WORD,EXCE)存放在文件服务器上的位置DOCSHARE:文档共享表SHARINNERDOC:文档共享明细表,此表存放了该表具体共享给那些用户了DocDetail.doc ImageFile.doc DocImageFile.doc shareinnerdoc.docDocShare.doc2、流程的主要数据结构这里主要介绍流程的数据存放结构及如果通过流程类型获取到流程的字段信息,流程的载体分为表单和单据两类,表单和单据的区别在于:所有使用表单的流程数据存放在同一个表中,而单据每个单据对应着一张独立的数据表1、表单一、对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等Workflow_form:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联Workflow_formdetail:该表存放了流程的明细信息,同样通过REQUESTID字段和Workflow_requestbase表关联二、通过流程的类型如何获取该流程使用了Workflow_form和Workflow_formdetail表中哪些字段在Workflow_form和Workflow_formdetail表中存放了大量字段,所有使用表单的流程的字段都在这两个表中,如何获取每个流程使用了那些字段呢?A、找到流程的类型ID,假定为wfidB、找到流程用了哪个表单select formid from workflow_base whereid=wfid and isbill=’0’C、获得该表单用到了哪些主字段:select(select fieldlable from workflow_fieldlable where workflow_fieldlable.fieldid=workflow_formfield.fieldid and langurageid=7andworkflow_fieldlable.formid=workflow_formfield.formid)as name,(select fieldname from workflow_formdictwhere id=fieldid)from workflow_formfield whereformid=上面获取的FORMID and (isdetail is null orisdetail=’’)哪些明细字段:select(select fieldname fromworkflow_formdictdetail where id=fieldid)fromworkflow_formfield where formid=上面获取的FORMID andisdetail=’1’2、单据对于表单而言流程的数据信息存放在三个数据表中Workflow_requestbase:该表存放了流程的基本信息:标题,创建人,创建时间,流程类型等等Workflow_form:该表只存放Workflow_requestbase和单据表之间的关系信息各单据主表:该表存储了流程的具体信息通过REQUESTID字段和Workflow_requestbase表关联,如何获取该表呢:A、找到流程的类型ID,假定为wfidB、找到流程用了哪个单据select formid form workflow_basewhere id=wfid and isbill=’1’C、通过单据ID可以获取到该单据使用的字段Select * from workflow_billfield where billid= formidD、通过单据ID找到其用了那个表存储流程主信息,那个表存储流程明细信息select tablename from workflow_bill where id= formidselect tablename from workflow_billdetailtablewhere id= formid各单据主明细表:该表存放了流程的明细信息,同样通过REQUESTID字段和Workflow_requestbase表关联3、流程的其他信息表结构流程处理人情况表Workflow_currentoperator:此表存储了流程当前未操作者,已操作者等信息workflow_requestlog 流程处理意见表:此表存储了流程处理人处理过的审批意见workflow_requestviewlog 流程的查看日志workflow_requestbase.doc workflow_bill.doc workflow_base.doc workflow_currentoperator.docworkflow_requestLog.doc七、如何新建,定制一个客户化的单据新建单据的好处,在于可以比较容易到把新建单据表中的信息和其他信息进行一些必要的操作八、系统已经有可开发的接口的培训1、短信接口可以通过该接口实现其他短信网关或者硬件短信设备进行在OA中发送短信的操作通用短信接口实现方式及使用说明.doc2、单点登录接口ECOLOGY提供了通过用户映射和模拟其他系统登录窗体的方式实现多系统之间的单点登录接口Ecology系统接口指南---单点登录篇.doc3、数据源和计划任务接口在ECOLOGY系统中,可以定义多个其他系统的数据连接,通过该连接可以和其他系统的数据库直接连接,同时也可以设置“计划任务”,系统根据设置定时制定执行设定的计划。
用友NC二次开发一些经验以及处理的问题
用友NC二次开发一些经验以及处理的问题SQL数据结构UI1. 参照开发系统参照的用法UIRefPane ref = new UIRefPane();Ref.setRefNodeName(nc.vo.bd.ref.RefNodeNameConst.DEPTDOC);nc.ui.bd.ref.IBusiType这个类里定义了参照对应的具体类自定义参照自己定义的参照类一般都继承自nc.ui.bd.ref.AbstractRefModel这个抽象类下面列举一些常用的方法:public String[] getFieldCode() // 返回参照字段对应的表字段编码public String[] getFieldName() //返回参照字段对应的显示名称public String getPkFieldCode() //返回主键字段编码public String getRefTitle() //返回参照名称public String getTableName() //返回查询的表名称,可以是表连接语句public String[] getHiddenFieldCode() //返回参照的隐藏字段public int getDefaultFieldCount() //返回参照的默认字段数量public String getWherePart() //返回查询条件如果需要实现一些特殊的参照,比如树结构的参照,则应该继承AbstractRefTreeModel类2. ClientUI类常用方法protected ManageEventHandler createEventHandler() //返回UI的事件处理类protected AbstractManageController createController() //返回UI画面的控制类protected BusinessDelegator createBusinessDelegator() //返回UI的业务处理类protected voidinitSelfData() //初始化UI界面,比如设置精度protected void initEventListener() //初始化单据监听,比如:BillCardBeforeEditListenerpublic abstract void setDefaultData() throws Exception //设置界面默认数据3. 多表的树结构(比如说,显示部门下的人员)NC的树结构一般都是单表,那么parentid在数据表里也是对应的主键值。