通达OA二次开发手册.docx

上传人:b****5 文档编号:7397896 上传时间:2023-01-23 格式:DOCX 页数:49 大小:271.91KB
下载 相关 举报
通达OA二次开发手册.docx_第1页
第1页 / 共49页
通达OA二次开发手册.docx_第2页
第2页 / 共49页
通达OA二次开发手册.docx_第3页
第3页 / 共49页
通达OA二次开发手册.docx_第4页
第4页 / 共49页
通达OA二次开发手册.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

通达OA二次开发手册.docx

《通达OA二次开发手册.docx》由会员分享,可在线阅读,更多相关《通达OA二次开发手册.docx(49页珍藏版)》请在冰豆网上搜索。

通达OA二次开发手册.docx

通达OA二次开发手册

 

OfficeAnywhere网络智能办公系统

二次开发手册

 

V7.5.131120(2013增强版)

 

通达信科

中国兵器工业信息中心

 

目录

目录1

前言1

第一章软件开发环境简介2

1.1编程环境2

1.3参数配置3

1.3.1Apache配置3

1.3.2PHP配置4

1.3.2MySQL配置4

第二章数据库管理5

2.1phpMyAdmin的安装5

2.2phpMyAdmin的使用5

第三章如何创建一个模块8

3.1建立模块目录8

3.2创建菜单8

3.3分配菜单权限9

3.4编码和测试9

3.4.1系统变量9

3.4.2PHP代码样例10

3.4.3连接数据库代码10

第四章内置函数参考12

4.1utility.php12

4.1.1Message12

4.1.2Button_Back12

4.1.3find_id13

4.1.4get_client_ip13

4.2utility_all.php13

4.2.1csubstr13

4.2.2is_ip14

4.2.3add_log14

4.2.4get_code_name15

4.2.5dept_long_name15

4.2.6get_sys_para15

4.2.7set_sys_para16

4.3utility_org.php16

4.3.1is_dept_parent16

4.3.2top_dept17

4.3.3GetDeptNameById17

4.3.4GetPrivNameById17

4.3.5GetUserNameById18

4.3.6GetUserNameByUid18

4.3.7my_exclude_uid18

4.4utility_sms1.php19

4.4.1send_sms19

4.4.2delete_sms19

4.5utility_sms2.php20

4.5.1send_mobile_sms_user20

4.5.2send_mobile_sms20

4.6utility_file.php21

4.6.1upload21

4.6.2delete_attach21

4.6.3attach_size21

4.6.4copy_attach22

4.6.5is_uploadable22

4.6.6is_text23

4.6.7is_office23

4.6.8is_image23

4.6.9is_viewable24

4.6.10is_media24

4.6.11dir_size24

4.6.12delete_dir25

4.6.13attach_sub_dir25

4.6.14attach_real_path26

4.6.15attach_id_encode26

4.6.16attach_id_decode26

4.6.17td_copy27

4.6.18td_rename27

4.6.19td_move_uploaded_file28

4.6.20td_file_put_contents28

4.6.21add_attach_module28

4.6.22attach_module_id29

4.6.23attach_sign_key29

4.6.24attach_sign_key_netdisk29

4.6.25attach_real_path_netdisk30

4.6.26cache_attach_para30

4.6.27attach_url30

4.6.28attach_url_pda31

4.6.29attach_link32

4.6.30attach_link_pda32

4.6.31attach_url_old33

4.6.32upload_old33

4.6.33add_attach_old34

4.6.34delete_attach_old34

4.6.35add_attach34

4.6.36copy_attach_netdisk35

4.6.37copy_sel_attach35

4.6.38office_attach36

4.6.39create_attach36

4.6.40is_editable36

4.6.41is_wps37

4.6.42is_ppt_xls37

4.6.43is_thumbable37

4.6.44image_mimetype38

4.6.45Is_SysFile38

4.6.46file_type38

4.6.47mime_type39

4.6.48trim_office_attach39

4.6.49dir_file_nums39

4.6.50CreateThumb40

4.6.51ReplaceImageSrc40

4.6.52trim_inserted_image40

4.6.53backup_file41

4.6.54oc_log41

4.6.55attach_id_explode42

4.6.56attach_id_implode42

第五章公用组件参考43

5.1人员多选43

5.2人员单选43

5.3部门多选44

5.4部门单选45

5.5角色多选46

前言

OfficeAnywhere网络智能办公系统(以下简称通达OA),不仅是一套成熟的网络办公系统,同时也是一个完整、精巧的软件开发平台,不仅集成了Web开发的全套环境,并提供了管理架构、系统资源的开放性支持,是开发中小型管理应用系统的理想平台。

本文将从不同的技术层面向您揭示通达OA的二次开发细节,是主要针对专职程序设计人员、编程爱好者、软件产品技术支持人员编写的OA二次开发入门教程。

通过阅读本文,您将不仅可以了解通达OA的设计奥秘,也将能够运用本文所介绍的知识和技巧,轻松构建属于自己的应用系统或模块,文中将结合具体实例加以说明。

第一章软件开发环境简介

1.1编程环境

通达OA主要采用PHP语言开发,系统使用MySQL数据库。

在Windows平台下,通达OA主要注册了9个系统服务,可以通过控制面板-〉管理工具-〉服务,查看这9项服务,服务名分别是Office_Anywhere、MySQL5_OA、memcachedServer、OfficeDaemon、OfficeIm、OfficeIndex、OfficeMail、OfficePOP3、OfficeTask,Office_Anywhere服务实际是集成了PHP模块的Apache服务,Apache是通达OA所使用的WebServer,通达OA也可以支持IIS作为WebServer,具体配置方法参见通达网站OA知识库相关文档。

关于PHP语言的使用,可参阅,下载PHP手册,作为开发指导;关于MySQL数据库的管理与使用,将在第二章进行详细介绍。

1.2目录层次结构

通达OA的目录层次结构清晰,体现出对服务程序、应用程序、WEB页面的巧妙整合与组织,便于理解和扩充,下面对目录结构加以说明:

MYOA

├─attachOA附件文件存放目录

├─binApache、PHP、Zend等主程序及配置文件,服务配置程序等

├─confApache配置文件

├─data5MySQL数据库文件目录

│├─BUS公交线路查询数据库

│├─TD_OA通达OA主数据库

│├─MySQLMySQL系统数据库

│├─TD_OA_ARCHIVE通达OA归档数据库

│├─ib_logfile0InnoDB引擎使用的日志文件

│├─ib_logfile1InnoDB引擎使用的日志文件

│└─ibdata1InnoDB引擎存储数据与索引的数据文件

├─logsApache等日志文件目录

├─modulesApache的模块文件

├─MyAdmin通达OA的MySQL管理工具

├─mysql5MySQL主程序文件

├─nginx高性能的通达NginxWeb应用服务

├─tmp临时文件目录

└─webroot通达OA的WEB根目录(PHP程序目录)

├─attachment部分OA附件文件存放目录

 │├─hrms_pic人事档案照片目录

 │├─product_pic销售管理产品照片存放目录

│├─new_sms新短消息提醒状态文件

│├─……部分附件目录(略)

 │├─rss今日资讯信息缓存文件

│├─update系统升级,该文件夹下如存在1.php会被自动执行并删除

│├─weather天气预报缓存文件

 │└─wm外部邮件存储目录

 ├─general主要模块目录

 │├─……一般模块目录(略)

 │├─ipanel主控面板,集成了菜单、短信箱等应用控制界面

 │├─mytable桌面模块程序

 │└─system系统功能模块,下级目录略

 ├─inc系统通用程序及函数目录

├─ispiritOA精灵页面

 ├─mobileOA移动界面

 ├─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所有模块非通用的css文件及其引用的图片文件等的目录

├─address通讯簿非通用css文件及其引用的图片文件

├─……部分模块目录(略)

└─workflow工作流非通用css文件及其引用的图片文件

注:

上表中红色颜色标示的目录是备份数据时需要备份的,是OA的所有数据所存放的目录。

1.3参数配置

1.3.1Apache配置(MYOA\conf\httpd.conf)

Timeout300//连接超时,单位秒

ServerTokensProd//Apache信息,Full,OS,Minor,Minimal,Major,Prod

ErrorDocument//错误文档

ErrorLoglogs/error.log//错误日志

CustomLoglogs/access.logcombined//访问日志

1.3.2PHP配置(MYOA\bin\php.ini)

display_errors=Off//是否显示PHP程序错误

log_errors=Off//是否记录错误日志

error_log=filename//错误日志记录文件

max_execution_time=1200//程序最大执行时间,单位秒

memory_limit=256M//单个程序占用内存上限

post_max_size=1000M//表单提交最大数据量,单位MB

upload_max_filesize=200M//上传单个附件大小,单位MB

1.3.2MySQL配置(MYOA\mysql5\my.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_table=1//启用独立表空间模式

innodb_file_format=Barracuda//InnoDB数据压缩

注:

以上所有的配置选项修改后都需要重启服务才会生效。

第二章数据库管理

2.1phpMyAdmin的安装

MySQL的数据库管理工具很多,phpMyAdmin是使用PHP编写的免费MySQL数据库管理工具。

由于OA的MySQL数据库出于安全考虑,被配置为仅能从本机访问,所以使用phpMyAdmin这样的B/S结构的管理工具,可实现数据库的远程管理。

第一步、下载程序包

phpMyAdmin程序可以从其官方网站下载,建议下载最新的all-language版本。

第二步、解压缩

在MYOA\webroot目录下新建一个目录,如mysql369(为了防止他人利用该工具侵入数据库系统,可把目录名设为比较复杂的,如MySQL2345,避免目录名被猜测到。

),将下载的程序包解压后拷贝至mysql369目录下。

第三步、修改配置文件

用文本编辑器,如记事本,打开MySQL管理工具目录,复制config.sample.inc.php文件并改名为confing.inc.php,打开后修改以下配置信息:

$cfg['blowfish_secret']='';//随便输入一个字符串,加密Cookie等信息

$cfg['Servers'][$i]['auth_type']='http';//http,config,cookie,建议使用http

$cfg['Servers'][$i]['host']='localhost';//数据库地址,默认为localhost

$cfg['Servers'][$i]['port']='3336';//数据库端口,默认为3336

$cfg['Servers'][$i]['user']='root';//数据库用户名,默认为root

$cfg['Servers'][$i]['password']='';//数据库密码,默认为myoa888

第四步、使用phpMyAdmin

MySQL管理工具地址:

http:

//OA地址/mysql,注意,进入后先选择中文界面(中文-Chinesesimplified)。

该管理工具的使用需具有一定数据库基础,请勿进行危险操作,以免导致数据丢失。

2.2phpMyAdmin的使用

phpMyAdmin主界面如下

在左侧选择TD数据库,可查看OA所有的数据表,如下图

点击左侧的表名,则右侧列出该表的结构和字段、索引、记录数等信息,如下图

phpMyAdmin的具体使用教程方法可以参考通达网站/OA知识库/OfficeAnywhere高级应用技巧/OA数据库管理工具/mysql网页方式管理工具/phpMyAdmin的安装和使用.wmv。

 

第三章如何创建一个模块

创建一个模块一般需要经过以下几个步骤:

根据功能建立程序存放目录、创建菜单、分配菜单权限、编码、测试等。

3.1建立模块目录

在MYOA\webroot\general下建议一个目录abc,作为自己开发模块的目录,将程序放置于该目录下,默认页面是index.php或index.html或index.htm

3.2创建菜单

用管理员帐号进入OA,打开系统管理->菜单设置,在相应的一级菜单后点击“下一级”链接,在右侧的界面上点击“增加子菜单项”按钮,如下图所示:

详细阅读上图界面中的说明信息,按界面上说明的要求定义好菜单:

子菜单项ID:

系统自动生成,无须调整

上级菜单:

根据自己的实际应用情况调整

子菜单项代码:

两位的数字或字母,作为排序之用

子菜单项名称:

根据自己的实际应用自行填写

子菜单模块路径:

该菜单对应的程序目录,应为上一个步骤创建的目录名称。

如果为abc,则该菜单对应的菜单图片名称为MYOA\webroot\static\images\menu\abc.gif,需要自己创建或拷贝abc.gif拷贝至MYOA\webroot\static\images\menu下.

3.3分配菜单权限

用管理员帐号进入OA,打开系统管理->组织机构设置->角色与权限管理,给相关的角色分配刚创建的菜单的使用权限,则相关角色的人员就可以在OA界面左侧的菜单中看到并访问该菜单。

3.4编码和测试

为便于用户开发自己的模块,通达科技在用户服务区提供了OfficeAnywhere部份模块源码的下载,供开发人员参考。

用户自行开发OA的功能模块,需要根据OA的相关规范进行开发,这样既可以使自行开发的模块和OA的界面效果一致,又可以保证自行开发的程序在OA安全框架的保护之下,这样不仅可以保证新模块数据的安全,又可以使开发人员集中精力投入到模块功能的开发上。

OA的各功能模块下的每个程序都需要包含OA的安全验证程序:

inc/auth.inc.php。

该程序包含了对用户登录信息、是否有权限访问该路径等的检查等。

具体的语法为:

include_once("inc/auth.inc.php");为更好兼容更多版本的浏览器,需要使用标准统一的HTML解析模式对页面进行解析和渲染,在所有包含HTML代码输出的页面,都需要包含:

inc/header.inc.php,输出统一的HTML头信息,包括采用的HTML标准、页面字符集、页面标题、标准界面样式表(style.css)等。

在没有HTML代码输出的页面,不需要包含该文件。

OA数据库的所有表名全部使用小写字母,字段名称全部使用大写字母,新模块中字段名也建议与表名统一使用小写字母,开发过程请注意。

在开发自己的功能模块时可以参考现有OA模块,把功能相似的OA模块代码复制一份,然后在OA代码的基础上修改。

以下几个小节介绍OA系统变量和数据库的使用。

3.4.1系统变量

OA系统提供了16个通过SESSION保存的当前用户的系统变量,分别是

$_SESSION["LOGIN_UID"]//用户数字ID

$_SESSION["LOGIN_USER_ID"]//用户名,登录使用

$_SESSION["LOGIN_BYNAME"]//用户别名

$_SESSION["LOGIN_USER_NAME"]//用户真实姓名

$_SESSION["LOGIN_USER_PRIV"]//用户角色ID

$_SESSION["LOGIN_USER_PRIV_OTHER"]//用户辅助角色ID

$_SESSION["LOGIN_SYS_ADMIN"]//用户是否有系统管理员权限

$_SESSION["LOGIN_DEPT_ID"]//用户部门ID

$_SESSION["LOGIN_DEPT_ID_OTHER"]//用户辅助部门ID

$_SESSION["LOGIN_AVATAR"]//用户头像

$_SESSION["LOGIN_THEME"]//用户界面主题

$_SESSION["LOGIN_FUNC_STR"]//用户模块权限

$_SESSION["LOGIN_NOT_VIEW_USER"]//用户禁止查看用户列表

$_SESSION["LOGIN_DEPT_ID_JUNIOR"]//用户所在部门和所属部门合集字符串

$_SESSION["LOGIN_CLIENT"]//用户登录OA的设备类型

$_SESSION["LOGIN_USER_SEX"]//用户性别

如需使用这些系统变量,程序需要包含auth.inc.php,如下代码:

include_once("inc/auth.inc.php");

echo"我的登录用户ID是".$_SESSION["LOGIN_USER_ID"];//本句中的.表示字符串连接

?

>

3.4.2PHP代码样例

以下是一段样例代码index.php,可放置于abc目录下,可作为开发OA应用程序的模版。

//或/*…*/是PHP的注释语句。

include_once("inc/auth.inc.php");//如需登录验证则包含,未登录将退出

//include_once("inc/conn.php");//如需要连接数据库则包含

//include_once("inc/utility_all.php");//如需要使用公用函数则包含

//include_once("inc/check_type.php");//如需要使用类型检验函数则包含

$HTML_PAGE_TITLE=_("功能模块名称");

include_once("inc/header.inc.php");//如有HTML代码输出则包含

//如已包含auth.inc.php,则无须包含conn.php

?

>

echo"当前登录的用户为:

".$_SESSION["LOGIN_USER_NAME"].",用户名为:

".$_SESSION["LOGIN_USER_ID"];

?

>

程序运行结果如下:

3.4.3连接数据库代码

以下程序代码为读取admin用户所属部门的示例:

include_once("inc/auth.inc.php");//如需登录验证则包含,未登录将退出

include_once("inc/utility_all.php");//如需要使用公用函数则包含

$HTML_PAGE_TITLE=_("功能模块名称");

include_once

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1