OA二次开发手册.doc

上传人:帮**** 文档编号:3566099 上传时间:2020-09-18 格式:DOC 页数:50 大小:519KB
返回 下载 相关 举报
OA二次开发手册.doc_第1页
第1页 / 共50页
OA二次开发手册.doc_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《OA二次开发手册.doc》由会员分享,可在线阅读,更多相关《OA二次开发手册.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Office Anywhere 网络智能办公系统 二次开发手册 Office Anywhere 网络智能办公系统二次开发手册V7.5.131120(2013增强版)通达信科中国兵器工业信息中心http:/ 录目 录1前 言1第一章 软件开发环境简介21.1 编程环境21.3参数配置31.3.1 Apache配置31.3.2 PHP配置41.3.2 MySQL配置4第二章 数据库管理52.1 phpMyAdmin的安装52.2 phpMyAdmin的使用5第三章 如何创建一个模块83.1建立模块目录83.2 创建菜单83.3 分配菜单权限93.4 编码和测试93.4.1 系统变量93.4.2 P

2、HP代码样例103.4.3 连接数据库代码10第四章 内置函数参考124.1 utility.php124.1.1 Message124.1.2 Button_Back124.1.3 find_id134.1.4 get_client_ip134.2 utility_all.php134.2.1 csubstr134.2.2 is_ip144.2.3 add_log144.2.4 get_code_name154.2.5 dept_long_name154.2.6 get_sys_para154.2.7 set_sys_para164.3 utility_org.php164.3.1 is_d

3、ept_parent164.3.2 top_dept174.3.3 GetDeptNameById174.3.4 GetPrivNameById174.3.5 GetUserNameById184.3.6 GetUserNameByUid184.3.7 my_exclude_uid184.4 utility_sms1.php194.4.1 send_sms194.4.2 delete_sms194.5 utility_sms2.php204.5.1 send_mobile_sms_user204.5.2 send_mobile_sms204.6 utility_file.php214.6.1

4、upload214.6.2 delete_attach214.6.3 attach_size214.6.4 copy_attach224.6.5 is_uploadable224.6.6 is_text234.6.7 is_office234.6.8 is_image234.6.9 is_viewable244.6.10 is_media244.6.11 dir_size244.6.12 delete_dir254.6.13 attach_sub_dir254.6.14 attach_real_path264.6.15 attach_id_encode264.6.16 attach_id_de

5、code264.6.17 td_copy274.6.18 td_rename274.6.19 td_move_uploaded_file284.6.20 td_file_put_contents284.6.21 add_attach_module284.6.22 attach_module_id294.6.23 attach_sign_key294.6.24 attach_sign_key_netdisk294.6.25 attach_real_path_netdisk304.6.26 cache_attach_para304.6.27 attach_url304.6.28 attach_ur

6、l_pda314.6.29 attach_link324.6. 30 attach_link_pda324.6.31 attach_url_old334.6.32 upload_old334.6.33 add_attach_old344.6.34 delete_attach_old344.6.35 add_attach344.6.36 copy_attach_netdisk354.6.37 copy_sel_attach354.6.38 office_attach364.6.39 create_attach364.6.40 is_editable364.6.41 is_wps374.6.42

7、is_ppt_xls374.6.43 is_thumbable374.6.44 image_mimetype384.6.45 Is_SysFile384.6.46 file_type384.6.47 mime_type394.6.48 trim_office_attach394.6.49 dir_file_nums394.6.50 CreateThumb404.6.51 ReplaceImageSrc404.6.52 trim_inserted_image404.6.53 backup_file414.6.54 oc_log414.6.55 attach_id_explode424.6.56

8、attach_id_implode42第五章 公用组件参考435.1 人员多选435.2 人员单选435.3 部门多选445.4 部门单选455.5 角色多选46Office Anywhere 网络智能办公系统 二次开发手册前 言Office Anywhere网络智能办公系统(以下简称通达OA),不仅是一套成熟的网络办公系统,同时也是一个完整、精巧的软件开发平台,不仅集成了Web开发的全套环境,并提供了管理架构、系统资源的开放性支持,是开发中小型管理应用系统的理想平台。本文将从不同的技术层面向您揭示通达OA的二次开发细节,是主要针对专职程序设计人员、编程爱好者、软件产品技术支持人员编写的OA二

9、次开发入门教程。通过阅读本文,您将不仅可以了解通达OA的设计奥秘,也将能够运用本文所介绍的知识和技巧,轻松构建属于自己的应用系统或模块,文中将结合具体实例加以说明。第一章 软件开发环境简介1.1 编程环境通达OA主要采用PHP语言开发,系统使用MySQL数据库。在Windows平台下,通达OA主要注册了9个系统服务,可以通过控制面板-管理工具-服务,查看这9项服务,服务名分别是Office_Anywhere、MySQL5_OA、memcached Server、OfficeDaemon、OfficeIm、OfficeIndex、OfficeMail、OfficePOP3、OfficeTask,

10、Office_Anywhere服务实际是集成了PHP模块的Apache服务,Apache是通达OA所使用的Web Server,通达OA也可以支持IIS作为Web Server,具体配置方法参见通达网站OA知识库相关文档。关于PHP语言的使用,可参阅http:/,下载PHP手册,作为开发指导;关于MySQL数据库的管理与使用,将在第二章进行详细介绍。1.2目录层次结构通达OA的目录层次结构清晰,体现出对服务程序、应用程序、WEB页面的巧妙整合与组织,便于理解和扩充,下面对目录结构加以说明:MYOAattachOA附件文件存放目录binApache、PHP、Zend等主程序及配置文件,服务配置程

11、序等confApache配置文件data5MySQL数据库文件目录 BUS公交线路查询数据库 TD_OA通达OA主数据库 MySQLMySQL系统数据库 TD_OA_ARCHIVE通达OA归档数据库 ib_logfile0InnoDB引擎使用的日志文件 ib_logfile1InnoDB引擎使用的日志文件 ibdata1InnoDB引擎存储数据与索引的数据文件logsApache等日志文件目录modulesApache的模块文件MyAdmin通达OA的MySQL管理工具mysql5MySQL主程序文件nginx高性能的通达Nginx Web应用服务tmp临时文件目录webroot通达OA的WE

12、B根目录(PHP程序目录)attachment部分OA附件文件存放目录 hrms_pic人事档案照片目录 product_pic销售管理产品照片存放目录 new_sms新短消息提醒状态文件 部分附件目录(略) rss今日资讯信息缓存文件 update系统升级,该文件夹下如存在1.php会被自动执行并删除 weather天气预报缓存文件 wm外部邮件存储目录 general主要模块目录 一般模块目录(略) ipanel主控面板,集成了菜单、短信箱等应用控制界面 mytable桌面模块程序 system系统功能模块,下级目录略 inc系统通用程序及函数目录ispiritOA精灵页面 mobileO

13、A移动界面 module系统组件 dept_select部门选择组件 editor简易HTML编辑器组件 OCOffice 文档在线编辑与阅读 OC_NETDISK文档在线编辑与阅读-仅适用于网络硬盘 save_file文件转存组件 user_select用户多选组件 user_select_single用户单选组件portal门户界面static系统通用程序及静态文件目录 common通用css文件及其引用的图片文件 images所有代码中的标签src引用的图片文件templates登录界面模版theme界面主题wav微讯提醒声音js界面主题templates登录界面模版modules所有模

14、块非通用的css文件及其引用的图片文件等的目录address通讯簿非通用css文件及其引用的图片文件 部分模块目录(略)workflow工作流非通用css文件及其引用的图片文件注:上表中红色颜色标示的目录是备份数据时需要备份的,是OA的所有数据所存放的目录。1.3参数配置1.3.1 Apache配置(MYOAconfhttpd.conf)Timeout 300/连接超时,单位秒ServerTokens Prod/Apache信息,Full,OS,Minor,Minimal,Major,ProdErrorDocument/错误文档ErrorLog logs/error.log/错误日志Custo

15、mLog logs/access.log combined/访问日志1.3.2 PHP配置(MYOAbinphp.ini)display_errors = Off/是否显示PHP程序错误log_errors = Off/是否记录错误日志error_log = filename/错误日志记录文件max_execution_time = 1200/程序最大执行时间,单位秒memory_limit = 256M/单个程序占用内存上限post_max_size = 1000M/表单提交最大数据量,单位MBupload_max_filesize = 200M/上传单个附件大小,单位MB1.3.2 MyS

16、QL配置(MYOAmysql5my.ini)basedir=D:/MYOA/mysql5/MySQL主程序路径datadir=D:/MYOA/data5/MySQL数据库路径tmpdir=D:/MYOA/tmp/缓存路径character-set-server=gbk/MySQL数据库字编码port=3336/端口wait_timeout=30/SQL语句执行结束后自动断开时间interactive_timeout=30/运行SQL语句时段开时间skip-name-resolve/避免外部锁定(默认是ON)bind-address=0.0.0.0/允许远程连接innodb_file_per_t

17、able=1/启用独立表空间模式innodb_file_format=Barracuda/InnoDB数据压缩注:以上所有的配置选项修改后都需要重启服务才会生效。第二章 数据库管理2.1 phpMyAdmin的安装MySQL的数据库管理工具很多,phpMyAdmin是使用PHP编写的免费MySQL数据库管理工具。由于OA的MySQL数据库出于安全考虑,被配置为仅能从本机访问,所以使用phpMyAdmin这样的B/S结构的管理工具,可实现数据库的远程管理。第一步、下载程序包phpMyAdmin程序可以从其官方网站http:/下载,建议下载最新的all-language版本。第二步、解压缩在MYO

18、Awebroot目录下新建一个目录,如mysql369(为了防止他人利用该工具侵入数据库系统,可把目录名设为比较复杂的,如MySQL2345,避免目录名被猜测到。),将下载的程序包解压后拷贝至mysql369目录下。第三步、修改配置文件用文本编辑器,如记事本,打开MySQL管理工具目录,复制config.sample.inc.php文件并改名为confing.inc.php,打开后修改以下配置信息:$cfgblowfish_secret = ;/随便输入一个字符串,加密Cookie等信息$cfgServers$iauth_type = http;/http,config,cookie,建议使用

19、http$cfgServers$ihost = localhost;/数据库地址,默认为localhost$cfgServers$iport = 3336;/数据库端口,默认为3336$cfgServers$iuser = root;/数据库用户名,默认为root$cfgServers$ipassword = ;/数据库密码,默认为myoa888第四步、使用phpMyAdminMySQL管理工具地址:http:/OA地址/mysql,注意,进入后先选择中文界面(中文-Chinese simplified )。该管理工具的使用需具有一定数据库基础,请勿进行危险操作,以免导致数据丢失。2.2 ph

20、pMyAdmin的使用phpMyAdmin主界面如下在左侧选择TD数据库,可查看OA所有的数据表,如下图点击左侧的表名,则右侧列出该表的结构和字段、索引、记录数等信息,如下图phpMyAdmin的具体使用教程方法可以参考 通达网站/OA知识库/Office Anywhere 高级应用技巧/OA数据库管理工具/mysql网页方式管理工具/phpMyAdmin的安装和使用.wmv 。第三章 如何创建一个模块创建一个模块一般需要经过以下几个步骤:根据功能建立程序存放目录、创建菜单、分配菜单权限、编码、测试等。3.1建立模块目录在MYOAwebrootgeneral下建议一个目录abc,作为自己开发模

21、块的目录,将程序放置于该目录下,默认页面是index.php或index.html或index.htm3.2 创建菜单用管理员帐号进入OA,打开 系统管理-菜单设置,在相应的一级菜单后点击“下一级”链接,在右侧的界面上点击“增加子菜单项”按钮,如下图所示:详细阅读上图界面中的说明信息,按界面上说明的要求定义好菜单:子菜单项ID:系统自动生成,无须调整上级菜单:根据自己的实际应用情况调整子菜单项代码:两位的数字或字母,作为排序之用子菜单项名称:根据自己的实际应用自行填写子菜单模块路径:该菜单对应的程序目录,应为上一个步骤创建的目录名称。如果为abc,则该菜单对应的菜单图片名称为MYOAwebro

22、otstaticimagesmenuabc.gif,需要自己创建或拷贝abc.gif拷贝至MYOAwebrootstaticimagesmenu下.3.3 分配菜单权限用管理员帐号进入OA,打开 系统管理-组织机构设置-角色与权限管理,给相关的角色分配刚创建的菜单的使用权限,则相关角色的人员就可以在OA界面左侧的菜单中看到并访问该菜单。3.4 编码和测试为便于用户开发自己的模块,通达科技在用户服务区提供了Office Anywhere部份模块源码的下载,供开发人员参考。用户自行开发OA的功能模块,需要根据OA的相关规范进行开发,这样既可以使自行开发的模块和OA的界面效果一致,又可以保证自行开发

23、的程序在OA安全框架的保护之下,这样不仅可以保证新模块数据的安全,又可以使开发人员集中精力投入到模块功能的开发上。OA的各功能模块下的每个程序都需要包含OA的安全验证程序:inc/auth.inc.php。该程序包含了对用户登录信息、是否有权限访问该路径等的检查等。具体的语法为:include_once(inc/auth.inc.php);为更好兼容更多版本的浏览器,需要使用标准统一的HTML解析模式对页面进行解析和渲染,在所有包含HTML代码输出的页面,都需要包含:inc/header.inc.php,输出统一的HTML头信息,包括采用的HTML标准、页面字符集、页面标题、标准界面样式表(s

24、tyle.css)等。在没有HTML代码输出的页面,不需要包含该文件。OA数据库的所有表名全部使用小写字母,字段名称全部使用大写字母,新模块中字段名也建议与表名统一使用小写字母,开发过程请注意。在开发自己的功能模块时可以参考现有OA模块,把功能相似的OA模块代码复制一份,然后在OA 代码的基础上修改。以下几个小节介绍OA系统变量和数据库的使用。3.4.1 系统变量OA系统提供了16个通过SESSION保存的当前用户的系统变量,分别是$_SESSIONLOGIN_UID/用户数字ID$_SESSIONLOGIN_USER_ID/用户名,登录使用$_SESSIONLOGIN_BYNAME/用户别名

25、$_SESSIONLOGIN_USER_NAME/用户真实姓名$_SESSIONLOGIN_USER_PRIV/用户角色ID$_SESSIONLOGIN_USER_PRIV_OTHER/用户辅助角色ID$_SESSIONLOGIN_SYS_ADMIN/用户是否有系统管理员权限$_SESSIONLOGIN_DEPT_ID/用户部门ID$_SESSIONLOGIN_DEPT_ID_OTHER/用户辅助部门ID$_SESSIONLOGIN_AVATAR/用户头像$_SESSIONLOGIN_THEME/用户界面主题$_SESSIONLOGIN_FUNC_STR/用户模块权限$_SESSIONLOGI

26、N_NOT_VIEW_USER/用户禁止查看用户列表$_SESSIONLOGIN_DEPT_ID_JUNIOR/用户所在部门和所属部门合集字符串$_SESSIONLOGIN_CLIENT/用户登录OA的设备类型$_SESSIONLOGIN_USER_SEX/用户性别如需使用这些系统变量,程序需要包含auth.inc.php,如下代码:3.4.2 PHP代码样例以下是一段样例代码index.php,可放置于abc目录下,可作为开发OA应用程序的模版。/或/*/是PHP的注释语句。程序运行结果如下:3.4.3 连接数据库代码以下程序代码为读取admin用户所属部门的示例:?$query = SEL

27、ECT * from USER where USER_ID=admin;$cursor= exequery(TD:conn(),$query); /*exequery 是OA系统inc/conn.php包装的SQL语句执行函数,TD:conn()n是数据库的连接标识符*/if($ROW=MySQL_fetch_array($cursor)$DEPT_ID=$ROWDEPT_ID;echo admin用户所在部门为:.dept_long_name($DEPT_ID).;?执行效果如下图:从这段程序可以看出,使用OA系统提供的系统头文件和函数,访问数据库将是一件很轻松的事,不用操心数据库的连接参数

28、等问题,只需简单的写下SQL语句,执行它。MySQL数据库的连接参数在 MYOAwebrootincoa_config.php文件中配置,如果自己安装MySQL数据库,可自行修改连接参数。第四章 内置函数参考4.1 utility.php4.1.1 Message函数原型:Message($TITLE, $CONTENT, $STYLE= , $BUTTONS=array()功能描述:输出一个信息提示框的HTML代码参数:$TITLE/信息框标题$CONTENT/信息框提示信息$STYLE/信息框样式,可选的值有error、warning、stop、forbidden、help、info$BU

29、TTONS/操作按钮数组返回值:无4.1.2 Button_Back函数原型:Button_Back($HTML_CHARSET = )功能描述:输出一个返回按钮的HTML代码参数:$HTML_CHARSET/解析编码返回值:无4.1.3 find_id函数原型:find_id($STRING, $ID)功能描述:在字符串$STRING中查找子串$ID参数:$STRING/以英文逗号(,)连接的N个ID值的一个字符串,如a,b,c,d$ID/要查找的子符串,如c返回值:找到则返回true,否则返回false,布尔值4.1.4 get_client_ip函数原型:get_client_ip()功

30、能描述:获取用户的客户端IP地址参数:无返回值:用户的客户端IP地址字符串4.2 utility_all.php4.2.1 csubstr函数原型:csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2)功能描述:截取中文字符串参数:$str/要截取的字符串$start/截取起始位置,默认从头开始$long/要截取的长度$ltor/系统保留$cn_len/系统保留返回值:截取后的中文字符串。4.2.2 is_ip函数原型:is_ip($IP)功能描述:判断一个字符串是否是一个合法的IP地址参数:$IP/IP地址字符串返回值:如果$IP是一

31、个IP地址则返回true,否则返回false。4.2.3 add_log函数原型:add_log($TYPE,$REMARK,$OPERATOR)功能描述:添加系统日志参数:$TYPE/日志类型代码,参考系统代码设置下的“系统日志类型”$REMARK/备注$OPERATOR/产生日志的用户的用户名,一般为当前用户返回值:无4.2.4 get_code_name函数原型:get_code_name($CODE_NO,$PARENT_NO)功能描述:获取系统代码的描述参数:$CODE_NO/系统代码的代码值,如果多个代码则用英文逗号串起来$PARENT_NO/父类型代码值返回值:对应代码值的文字描

32、述示例代码:echo get_code_name(0,SMS_REMIND);/输出“个人短信”echo get_code_name(0,1,SMS_REMIND);/输出“个人短信,公告通知”4.2.5 dept_long_name函数原型:dept_long_name($DEPT_ID)功能描述:获取部门ID为$DEPT_ID的多级部门名称参数:$DEPT_ID/部门ID返回值:$DEPT_ID对应的部门长名称,如“系统处/OA开发组”4.2.6 get_sys_para函数原型:get_sys_para($PARA_NAME_STR, $USE_CACHE = true)功能描述:获取系

33、统参数设置的参数值并返回一个数组参数:$PARA_NAME_STR/系统参数名称字符串,多个的话用英文逗号隔开$USE_CACHE/是否从缓存中获取返回值:系统参数值的数组代码示例:$PARA_ARRAY=get_sys_para(MENU_DISPLAY,MENU_EXPAND_SINGLE);$PARA_ARRAY为array( MENU_DISPLAY = 1, MENU_EXPAND_SINGLE = 0);4.2.7 set_sys_para函数原型:set_sys_para($PARA_ARRAY)功能描述:批量设置系统参数参数:$PARA_ARRAY/系统参数数组,数组键值为参数

34、名,如array(MENU_DISPLAY=1)返回值:无4.3 utility_org.php4.3.1 is_dept_parent函数原型:is_dept_parent($DEPT_ID,$PARENT_ID)功能描述:判断一个部门是否是另外一个部门的上级部门参数:$DEPT_ID/要判断的部门ID$PARENT_ID/上级部门ID返回值:是则返回true,否则返回false。4.3.2 top_dept函数原型:top_dept($DEPT_ID)功能描述:获取部门ID为$DEPT_ID的部门的最上级部门的ID。参数:$DEPT_ID/部门ID返回值:最上级部门的ID。4.3.3 Ge

35、tDeptNameById函数原型:GetDeptNameById($ID_STR)功能描述:获取N个部门的部门名称。参数:$ID_STR/N个部门的ID,用逗号串起来,如“1,2,”返回值:N个部门名称字符串,用逗号串起来,如“系统部,OA开发组”。4.3.4 GetPrivNameById函数原型:GetPrivNameById($ID_STR)功能描述:获取N个角色的角色名称。参数:$ID_STR/N个角色的ID,用逗号串起来,如“1,2,”返回值:N个角色名称字符串,用逗号串起来,如“OA管理员,职员”。4.3.5 GetUserNameById函数原型:GetUserNameById

36、($ID_STR)功能描述:获取N个用户的用户姓名。参数:$ID_STR/N个用户的用户名,用逗号串起来,如“admin,lqh,”返回值:N个用户的真实姓名字符串,用逗号串起来,如“系统管理员,刘清华”。4.3.6 GetUserNameByUid函数原型:GetUserNameByUid($ID_STR)功能描述:获取N个用户的用户姓名。参数:$ID_STR/N个用户的数字,用逗号串起来,如“1,2,”返回值:N个用户的真实姓名字符串,用逗号串起来,如“系统管理员,刘清华”。4.3.7 my_exclude_uid函数原型:my_exclude_uid()功能描述:获取当前用户不能与之通讯

37、的用户的数字ID(UID)。参数:无返回值:当前用户不能与之通讯的用户的数字ID(UID)。4.4 utility_sms1.php4.4.1 send_sms函数原型:send_sms($SEND_TIME,$FROM_ID,$TO_ID,$SMS_TYPE,$CONTENT,$REMIND_URL=)功能描述:发送内部短消息。参数:$SEND_TIME/发送时间字符串,如“2013-11-20 09:00:00”$FROM_ID/发送人用户名,如“admin”$TO_ID/接收人用户名用逗号串起来的字符串,如“lqh,lxq”$SMS_TYPE/短信类型代码,参考系统代码设置下的“内部短消

38、息类型”$CONTENT/短信内容$REMIND_URL/点击短信提醒弹出窗口的“查看详情”打开的地址返回值:无4.4.2 delete_sms函数原型:delete_sms($SMS_ID_STR,$DEL_TYPE)功能描述:删除内部短消息。参数:$SMS_ID_STR/要删除的短信ID串,用逗号串起来,如“1,2,3”$DEL_TYPE/DEL_TYPE=1 删除收到的短信,DEL_TYPE=2 删除发送的短信返回值:无4.5 utility_sms2.php4.5.1 send_mobile_sms_user函数原型:send_mobile_sms_user($SEND_TIME,$F

39、ROM_ID,$TO_ID,$CONTENT,$TYPE)功能描述:给OA用户发送手机短信。参数:$SEND_TIME/发送时间字符串,如“2013-11-20 09:00:00”$FROM_ID/发送人用户名,如“admin”$TO_ID/接收人用户名用逗号串起来的字符串,如“lqh,lxq”$CONTENT/短信内容$TYPE/短信类型代码,参考系统代码设置下的“内部短消息类型”返回值:无4.5.2 send_mobile_sms函数原型:send_mobile_sms($SEND_TIME,$FROM_ID,$PHONE,$CONTENT)功能描述:向指定号码发送手机短信。参数:$SEND_TIME/发送时间字符串,如“2013-11-20 09:00:00”$FROM_ID/发送人用户名,如“admin”$PHONE/接收手机号码字符串,如“138xxxxxxxx,139xxxxxxxx”$CONTENT/短信内容返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理制度

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁