Office Anywhere 网络智能办公系统 二次开发手册

前 言

 

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

 

 

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

 

 

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

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

第一章 软件开发环境简介

 

 

1.1 编程环境

 

 

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

 

 

在 Windows 平台下,通达 OA 主要注册了 11 个系统服务,可以通过控制面板-〉管理工具-〉服务,查看这 11 项服务,服务名分别是 Office_Web、MySQL5_OA、Office_Redis、 OfficeDaemon 、 OfficeIm 、 OfficeIndex 、 OfficeMail 、 OfficePOP3 、 OfficeTask 、OfficeDbProxy、OfficeMQ,Office_Web 是管理 ngnix 进程的服务,Office_Web 是通达 OA 所使用的 Web Server,通达 OA 也可以支持 IIS 作为 Web Server,具体配置方法参见通达网站 OA 知识库相关文档。

 

 

关于 PHP 语言的使用,可参阅 http://www.php.net,下载 PHP 手册,作为开发指导, PHP 版本已升级至 5.3,该版本中许多函数或方法有调整,使用时需要注意;关于 MySQL 数据库的管理与使用,将在第二章进行详细介绍。

 

1.2 目录层次结构

 

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

 

MYOA

 

├─attach

OA 附件文件存放目录

├─bin

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

├─data5

MySQL 数据库文件目录

├─BUS

公交线路查询数据库

├─TD_OA

通达 OA 主数据库

├─crscell

报表数据库

├─MySQL

MySQL 系统数据库

│  ├─TD_OA_ARCHIVE

通达 OA 归档数据库

├─ib_logfile0

InnoDB 引擎使用的日志文件

├─ib_logfile1

InnoDB 引擎使用的日志文件

└─ibdata1

InnoDB 引擎存储数据与索引的数据文件

├─logs

OA 服务等的日志文件目录

├─MyAdmin

通达 OA 的 MySQL 管理工具

├─mysql5

MySQL 主程序文件

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

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

 

├─tmp                                                 临时文件目录

 

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

 

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

 

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

 

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

 

├─new_sms

新短消息提醒状态文件

│  ├─……

部分附件目录(略)

├─rss

今日资讯信息缓存文件

├─update

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

├─weather

天气预报缓存文件

└─wm

外部邮件存储目录

├─general

主要模块目录

│  ├─ ……

一般模块目录(略)

├─appbuilder

Yii 框架目录

├─ipanel

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

├─mytable

桌面模块程序

└─system

系统功能模块,下级目录略

├─inc

系统通用程序及函数目录

├─ispirit

OA 精灵页面

├─mobile

OA 移动界面

├─module

系统组件

 

  • ├─dept_select部门选择组件

 

├─editor

简易 HTML 编辑器组件

├─OC

Office 文档在线编辑与阅读

├─OC_NETDISK

文档在线编辑与阅读-仅适用于网络硬盘

├─save_file

文件转存组件

 

  • ├─user_select用户多选组件

 

  • └─user_select_single用户单选组件

 

├─portal门户界面

 

└─static系统通用程序及静态文件目录

 

├─common                       通用 css 文件及其引用的图片文件

 

├─images                        所有代码中的<img>标签 src 引用的图片文件

 

├─templates                   登录界面模版

 

├─theme                          界面主题

 

├─wav                             微讯提醒声音

 

├─js                                  界面主题

 

├─templates                   登录界面模版

 

└─modules                     所有模块非通用的 css 文件及其引用的图片文件等的目录

 

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

 

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

 

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

 

 

 

 

 

3

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

 

1.3 参数配置

 

 

1.3.1 OfficeFPM 配置(MYOA\bin\service.ini)

 

Listen = 8266                                                //监听端口

 

ProcessNumber = 10                                   //fastcgi 进程数

 

1.3.2 OfficWeb 配置(MYOA\bin\service.ini)

 

Listen = 2367                                                //监听端口

 

MemoryWarning= 100                               //  非工作时间 OfficeNginx.exe 占用内存的最大值,

 

单位为兆字节(MB)

 

MemoryMax= 200                                       //  工作时间 OfficeNginx.exe 占用内存的最大值,

 

单位为兆字节(MB)

 

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

 

 

display_errors = Off

 

log_errors = Off

 

error_log = filename

 

max_execution_time = 1200

 

memory_limit = 256M

 

post_max_size = 1000M

 

upload_max_filesize = 200M

 

 

 

//是否显示 PHP 程序错误

 

//是否记录错误日志

 

//错误日志记录文件

 

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

 

//单个程序占用内存上限

 

//表单提交最大数据量,单位 MB

 

//上传单个附件大小,单位 MB

 

 

1.3.4 MySQL 配置(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 数据压缩

 

 

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

 

1.3.5 OfficWebOfficeFPM PHP 的关系

 

OfficeWeb 服务守护 OfficeFPM 进程和 OfficeNginx 。 OfficeFPM 进程启动多个(ProcessNumber)FastCGI 进程。OfficeWeb 根据配置参数(MemoryWarning 和 MemoryMax)定时检测 OfficeNginx 的内存占用情况,保证 OfficeNginx 时刻处于正常响应状态。

 

1.4 核心文件

 

 

1.4.1 auth.inc.php (MYOA\webroot\inc\)

 

通达 OA 为满足用户数据安全,原则上所有的 php 页面执行都将包含 auth.inc.php 权限验证程序,其中包含 session 合法性验证、访问路径授权验证等;

 

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

 

1.4.2 header.inc.php (MYOA\webroot\inc\)

 

为保证通达 OA 功能显示标准统一,需要使用标准统一的 HTML 解析模式对页面进行解析和渲染,在所有包含 HTML 代码输出的页面都需要包含 header.inc.php 程序,其中包括采用的 HTML 标准、页面字符集、页面标题、标准界面样式表(style.css)等;

 

例:$HTML_PAGE_TITLE = _("页面标题");

 

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

 

1.4.3 common.inc.php (MYOA\webroot\inc\)

 

为了防止用户输入不安全数据等,通达 OA 为您提供了用户输入数据($_GET、$_POST、

 

$_COOKIE)过滤和校验程序,原则上所有 php 页面文件都需要包含,但如果页面已经包含过

 

 

auth.inc.php、header.inc.php 或 conn.php,则无需再单独包含。

 

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

 

1.4.4 conn.php (MYOA\webroot\inc\)

 

为方便用户快速连接操作数据库,且对 SQL 语句安全验证,原则上在进行数据库操作的所有 php 页面都需要包含 conn.php 程序,但如果页面已经包含 auth.inc.php 程序,则无需再单独包含;

 

例:include_once("inc/conn.php");

 

 

第二章 数据库管理

 

 

2.1 phpMyAdmin 的安装

 

 

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

 

第一步、下载程序包

 

phpMyAdmin 程序可以从其官方网站 http://www.phpmyadmin.net 下载,建议下载最新的 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,注意,进入后先选择中文界面(中文 -Chinese simplified )。该管理工具的使用需具有一定数据库基础,请勿进行危险操作,以免导致数据丢失。

 

 

2.2 phpMyAdmin 的使用

 

 

phpMyAdmin 主界面如下

 

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

 

 

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

phpMyAdmin 的具体使用教程方法可以参考 通达网站/OA 知识库/Office Anywhere 高级

 

 

 

应用技巧/OA 数据库管理工具/mysql 网页方式管理工具/phpMyAdmin 的安装和使用.wmv

 

 

 

 

 

 

 

 

第三章 如何创建一个模块

 

 

创建一个模块一般需要经过以下几个步骤:根据功能建立程序存放目录、创建菜单、分

 

配菜单权限、编码、测试等。

 

 

3.1 建立模块目录

 

 

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

 

 

3.2 创建菜单

 

 

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

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

 

子菜单项 ID:系统自动生成,无须调整

 

上级菜单:根据自己的实际应用情况调整

 

子菜单项代码:两位的数字或字母,作为排序之用子菜单项名称:根据自己的实际应用自行填写

 

子菜单模块路径:该菜单对应的程序目录,应为上一个步骤创建的目录名称。如果为new_module,则该菜单对应的菜单图片名称为 MYOA\webroot\static\images\menu\new_mod ule.gif,需要自己创建或拷贝 new_module.gif 拷贝至 MYOA\webroot\static\images\menu 下。

 

 

 

3.3 分配菜单权限

 


用系统管理员账号,在菜单创建完成后跳转界面直接可以给指定菜单分配权限(首次分配菜单权限时需要验证超级密码,与系统管理->组织机构设置->角色与权限管理中超级密码一致),如下图所示:

也可以使用传统方式给新建菜单分配权限,用管理员帐

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

 

 

3.4 编码和测试

 

 

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

 

用户自行开发 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 系统提供了多个通过 SESSION 保存的当前用户的系统变量,分别是

 

 

$_SESSION["LOGIN_UID"]

 

$_SESSION["LOGIN_USER_ID"]

 

$_SESSION["LOGIN_BYNAME"]

 

$_SESSION["LOGIN_USER_NAME"]

 

$_SESSION["LOGIN_USER_PRIV"]

 

$_SESSION["LOGIN_USER_PRIV_OTHER"]

 

$_SESSION["LOGIN_SYS_ADMIN"]

 

$_SESSION["LOGIN_DEPT_ID"]

 

$_SESSION["LOGIN_DEPT_ID_OTHER"]

 

$_SESSION["LOGIN_AVATAR"]

 

$_SESSION["LOGIN_THEME"]

 

$_SESSION["LOGIN_FUNC_STR"]

 

$_SESSION["LOGIN_NOT_VIEW_USER"]

 

$_SESSION["LOGIN_DEPT_ID_JUNIOR"]

 

$_SESSION["LOGIN_CLIENT"]

 

$_SESSION["LOGIN_USER_SEX"]

 

 

 

//用户数字 ID

 

//用户名,无意义

 

//用户名,又叫用户别名,登录使用

 

//用户真实姓名

 

//用户角色 ID

 

//用户辅助角色 ID

 

//用户是否有系统管理员权限

 

//用户部门 ID

 

//用户辅助部门 ID

 

//用户头像

 

//用户界面主题

 

//用户模块权限

 

//用户禁止查看用户列表

 

//用户所在部门和所属部门合集字符串//用户登录 OA 的设备类型//用户性别

 

 

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

 

<?

 

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

 

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

 

?>

 

 

3.4.2 PHP 代码样例

 

 

以下是一段样例代码 index.php,可放置于 new_module 目录下,可作为开发 OA 应用程

 

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

 

<?

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

?>

 

<body class="bodycolor">

 

<?

 

echo    " 当 前 登 录 的 用 户 为 : ".$_SESSION["LOGIN_USER_NAME"]." , 用 户 名 为 :

 

".$_SESSION["LOGIN_BYNAME"];

 

?>

 

</body>

 

</html>

 

程序运行结果如下:

 

 

3.4.3 连接数据库代码

 

 

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

 

<?

 

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

 

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

 

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

 

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

 

?>

 

<body class="bodycolor">

 

<?

 

$query = "SELECT * from USER where USER_ID='admin'"; $cursor= exequery(TD::conn(),$query); /*

 

exequery 是 OA 系统 inc/conn.php 包装的 SQL 语句执行函数,TD::conn()是数据库的连接

 

标识符

 

*/

 

if($ROW=MySQL_fetch_array($cursor))

 

$DEPT_ID=$ROW["DEPT_ID"];

 

echo "admin 用户所在部门为:<u>".dept_long_name($DEPT_ID)."</u>";

 

?>

 

</body>

 

</html>

 

 

从这段程序可以看出,使用 OA 系统提供的系统头文件和函数,访问数据库将是一件很轻松的事,不用操心数据库的连接参数等问题,只需简单的写下 SQL 语句,执行它。

 

MySQL 数据库的连接参数在 MYOA\webroot\inc\oa_config.php 文件中配置,如果自己安装 MySQL 数据库,可自行修改连接参数。

 

 

 

 

第四章 内置类库参考

 

 

4.1 TD

 

 

4.1.1 成员函数

 

 

  • conn()

 

函数说明:

 

获取数据库连接。

 

参数:

 

 

返回值:

 

数据库连接

 

  • get_cache($id)

 

函数说明:

 

获取缓存内容。

 

参数:

 

$id                                          缓存 id 键值

 

返回值:

 

缓存内容

 

  • set_cache($id, $data, $ttl = 60)

 

函数说明:

 

更新缓存内容。

 

 

14

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

参数:

 

$id

//缓存 id 键值

$data

//缓存内容

$ttl

//更新时间

返回值:

 

 

 

  • delete_cache($id)

 

函数说明:

 

删除指定缓存。

 

参数:

 

$id                                                                                                //缓存 id 键值

 

返回值:

 

 

 

4.2 PortalData

 

 

4.2.1 成员函数

 

 

  • get_portal_info()

 

函数说明:

 

获取门户的基本信息。

 

参数:

 

 

返回值:

 

门户的基本信息数组

 

  • get_nav_list()

 

函数说明:

 

获取门户导航栏的基本信息。

 

参数:

 

 

 

Office Anywhere 网络智能

 

返回值:

 

导航栏的基本信息数组,二维数组,$column_id 为一级数组键值

 

  • get_columns_info($column_id_str)

 

函数说明:

 

获取指定栏目的基本信息。

 

参数:

 

$column_id_str                                        //栏目 ID 串

 

返回值:

 

栏目的基本信息,二维数组,$column_id 为一级数组键值

 

  • get_column_page($column_id)

 

函数说明:

 

获取指定栏目的页面信息。

 

参数:

 

$column_id                                        //栏目 ID

 

返回值:

 

栏目的页面信息,数组

 

  • get_child_columns($column_id)

 

函数说明:

 

获取指定栏目的子栏目。

 

参数:

 

$column_id                                        //栏目 ID

 

返回值:

 

子栏目数组

 

  • get_contents_list($column_id, $start = 0, $limit = 10, $order_by = '')

 

函数说明:

 

获取指定栏目的内容列表。

 

参数:

 

$column_id                                        //栏目 ID

 

$start                                                  //开始条数

 

$limit                                                  //返回内容条数

 

$order_by                                          //内容列表排序

 

返回值:

 

内容列表,二维数组

 

  • get_contents_info($content_id_str)

 

函数说明:

 

根据内容 ID 串获取多条内容的详细信息。

 

参数:

 

$content_id_str                                        //内容 ID 串

 

返回值:

 

内容的详细信息二维数组,键值为 content_id

 

  • get_unit_name()

 

函数说明:

 

获取单位名称。

 

参数:

 

 

返回值:

 

单位名称

 

  • get_miitbeian_no()

 

函数说明:

 

获取网站备案号。

 

参数:

 

 

返回值:

 

网站备案号

 

 

4.3 ExcelReader

 

 

4.3.1 成员函数

 

 

  • getHead()

 

函数说明:

 

获取 Excel 内容头数据信息。

 

参数:

 

 

返回值:

 

头数据信息数组

 

  • getFirstRow()

 

函数说明:

 

获取 Excel 内容第一行数据信息。

 

参数:

 

 

返回值:

 

Excel 内容第一行数据信息数组

 

  • getFirstRow()

 

函数说明:

 

获取 Excel 内容第一行数据信息。

 

参数:

 

 

返回值:

 

Excel 内容第一行数据信息数组

 

 

4.4 Workflow 相关类

 

 

4.4.1 TworkForm 类的成员函数

 

 

  • get_all_supported_ctrls()

 

函数说明:

 

public,获取所有支持的控件信息数组。

 

参数:

 

 

返回值:

 

数组,表单支持的控件类型数组

 

Array(

 

1 => Array(    //系统内置控件

 

‘Text’ => array(

 

‘control_name’ => ‘单行输入框’ ‘control_type’ => ‘0’ //系统保留 ‘diag_width’ => ‘260’ //对话框宽度 ‘diag_height’ => ‘300’ //对话框高度) )

 

0 => Array(    //用户自定义控件

 

)

 

  • get_form_info()

 

函数说明:

 

获取表单 ID、名称等基本信息。

 

参数:

 

 

返回值:

 

表单基本信息数组

 

  • get_all_fields()

 

函数说明:

 

 

获取表单所有的字段数组。

 

参数:

 

 

返回值:

 

表单所有字段数组

 

 

4.4.2 TworkRun 类的成员函数

 

 

  • get_form_html()

 

函数说明:

 

获取当前工作的表单 HTML 代码。

 

参数:

 

 

返回值:

 

字符串,表单 HTML 代码

 

  • get_public_attach_html()

 

函数说明:

 

获取公共附件区 HTML 代码。

 

参数:

 

 

返回值:

 

公共附件区 HTML 代码

 

  • get_flow_graph_html()

 

函数说明:

 

获取流程图区的 HTML 代码。

 

参数:

 

 

返回值:

 

流程图区的 HTML 代码

 

  • get_view_user_html()

 

函数说明:

 

获得查阅信息的 HTML 代码。

 

参数:

 

 

返回值:

 

查阅信息的 HTML 代码

 

  • get_flow_id()

 

函数说明:

 

获取当前工作的 FLOW_ID。

 

参数:

 

 

返回值:

 

当前工作的 FLOW_ID

 

  • get_run_id()

 

函数说明:

 

获取当前工作的 RUN_ID。

 

参数:

 

 

返回值:

 

当前工作的 RUN_ID

 

  • get_prcs_id()

 

函数说明:

 

获取当前工作的步骤 ID。

 

参数:

 

 

返回值:

 

当前工作的步骤 ID

 

  • get_flow_info()

 

函数说明:

 

 

获取当前流程的基本信息,FLOW_TYPE 中的数据。

 

参数:

 

 

返回值:

 

当前流程的基本信息数组

 

  • get_flow_process_info()

 

函数说明:

 

获取流程当前步骤对应设计步骤的基本信息,FLOW_PROCESS 中的数据。

 

参数:

 

 

返回值:

 

流程步骤的基本信息数组

 

  • get_run_info()

 

函数说明:

 

获取当前工作的基本信息,FLOW_RUN 中的数据。

 

参数:

 

 

返回值:

 

当前工作的基本信息数组

 

  • get_run_data()

 

函数说明:

 

获取当前工作的表单数据,FLOW_DATA_xxx 中的数据。

 

参数:

 

 

返回值:

 

表单数据数组

 

  • get_cur_prcs_info()

 

函数说明:

 

获取当前步骤的基本信息(FLOW_RUN_PRCS 表中对应$run_id 和$prcs_id 的记录)。

 

参数:

 

 

返回值:

 

当前步骤的基本信息数组

 

  • get_public_attach()

 

函数说明:

 

获取当前工作的公共附件。

 

参数:

 

 

返回值:

 

当前工作的公共附件信息

 

  • get_run_feedback()

 

函数说明:

 

获取当前工作的会签意见信息。

 

参数:

 

 

返回值:

 

当前工作的会签意见信息数组

 

  • get_writable_fields()

 

函数说明:

 

获取当前工作的表单可写字段。

 

参数:

 

 

返回值:

 

可写字段 title 字符串,逗号分隔

 

  • get_secret_fields()

 

函数说明:

 

获取当前工作的表单保密字段。

 

参数:

 

 

返回值:

 

保密字段 title 字符串,逗号分隔

 

 

第五章 内置函数参考

 

 

5.1 utility.php

 

 

5.1.1 Message

 

 

函数原型:

 

Message($TITLE, $CONTENT, $STYLE="" , $BUTTONS=array())

 

功能描述:

 

输出一个信息提示框的 HTML 代码

 

参数:

 

$TITLE              //信息框标题

 

$CONTENT         //信息框提示信息

 

$STYLE              //信息框样式,可选的值有 error、warning、stop、forbidden、help、

 

info

 

$BUTTONS         //操作按钮数组

 

返回值:

 

 

 

5.1.2 Button_Back

 

 

函数原型:

 

Button_Back($HTML_CHARSET = '')

 

功能描述:

 

输出一个返回按钮的 HTML 代码

 

参数:

 

$HTML_CHARSET                //解析编码

 

返回值:

 

 

5.1.3 find_id

 

 

函数原型:

 

find_id($STRING, $ID)

 

功能描述:

 

在字符串$STRING 中查找子串$ID

 

参数:

 

$STRING           //以英文逗号(,)连接的 N 个 ID 值的一个字符串,如 a,b,c,d

 

$ID                     //要查找的子符串,如 c

 

返回值:

 

找到则返回 true,否则返回 false,布尔值

 

 

5.1.4 get_client_ip

 

 

函数原型:

 

get_client_ip()

 

功能描述:

 

获取用户的客户端 IP 地址

 

参数:

 

 

返回值:

 

用户的客户端 IP 地址字符串

 

 

5.2 utility_all.php

 

 

5.2.1 csubstr

 

 

函数原型:

 

csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2)

 

功能描述:

 

截取中文字符串

 

参数:

 

 

 

26

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

$str

//要截取的字符串

$start

//截取起始位置,默认从头开始

$long

//要截取的长度

$ltor

//系统保留

$cn_len

//系统保留

返回值:

 

 

截取后的中文字符串。

 

 

5.2.2 is_ip

 

 

函数原型:

 

is_ip($IP)

 

功能描述:

 

判断一个字符串是否是一个合法的 IP 地址

 

参数:

 

$IP                     //IP 地址字符串

 

返回值:

 

如果$IP 是一个 IP 地址则返回 true,否则返回 false。

 

 

5.2.3 add_log

 

 

函数原型:

 

add_log($TYPE,$REMARK,$OPERATOR)

 

功能描述:

 

添加系统日志

 

参数:

 

$TYPE                //日志类型代码,参考系统代码设置下的“系统日志类型”

 

$REMARK           //备注

 

$OPERATOR //产生日志的用户的用户名,一般为当前用户返回值:

 

 

5.2.4 get_code_name

 

 

函数原型:

 

get_code_name($CODE_NO,$PARENT_NO)

 

功能描述:

 

获取系统代码的描述

 

参数:

 

$CODE_NO                  //系统代码的代码值,如果多个代码则用英文逗号串起来

 

$PARENT_NO              //父类型代码值

 

返回值:

 

对应代码值的文字描述

 

示例代码:

 

echo get_code_name('0','SMS_REMIND');       //输出“个人短信”

 

echo get_code_name('0,1','SMS_REMIND'); //输出“个人短信,公告通知”

 

 

5.2.5 dept_long_name

 

 

函数原型:

 

dept_long_name($DEPT_ID)

 

功能描述:

 

获取部门 ID 为$DEPT_ID 的多级部门名称

 

参数:

 

$DEPT_ID         //部门 ID

 

返回值:

 

$DEPT_ID 对应的部门长名称,如“系统处/OA 开发组”

 

 

5.2.6 get_sys_para

 

 

函数原型:

 

get_sys_para($PARA_NAME_STR, $USE_CACHE = true)

 

功能描述:

 

获取系统参数设置的参数值并返回一个数组

 

 

参数:

 

$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");

 

 

5.2.7 set_sys_para

 

 

函数原型:

 

set_sys_para($PARA_ARRAY)

 

功能描述:

 

批量设置系统参数

 

参数:

 

$PARA_ARRAY //系统参数数组,数组键值为参数名,如 array("MENU_DISPLAY"=>"1")

 

返回值:

 

 

 

5.3 utility_org.php

 

 

5.3.1 is_dept_parent

 

 

函数原型:

 

is_dept_parent($DEPT_ID,$PARENT_ID)

 

功能描述:

 

判断一个部门是否是另外一个部门的上级部门

 

参数:

 

$DEPT_ID         //要判断的部门 ID

 

$PARENT_ID    //上级部门 ID

 

返回值:

 

是则返回 true,否则返回 false。

 

 

5.3.2 top_dept

 

 

函数原型:

 

top_dept($DEPT_ID)

 

功能描述:

 

获取部门 ID 为$DEPT_ID 的部门的最上级部门的 ID。

 

参数:

 

$DEPT_ID         //部门 ID

 

返回值:

 

最上级部门的 ID。

 

 

5.3.3 GetDeptNameById

 

 

函数原型:

 

GetDeptNameById($ID_STR)

 

功能描述:

 

获取 N 个部门的部门名称。

 

参数:

 

$ID_STR //N 个部门的 ID,用逗号串起来,如“1,2,”返回值:

 

  1. 个部门名称字符串,用逗号串起来,如“系统部,OA 开发组”。

 

 

5.3.4 GetPrivNameById

 

 

函数原型:

 

GetPrivNameById($ID_STR)

 

功能描述:

 

获取 N 个角色的角色名称。

 

参数:

 

$ID_STR //N 个角色的 ID,用逗号串起来,如“1,2,”

 

返回值:

 

  1. 个角色名称字符串,用逗号串起来,如“OA 管理员,职员”。

 

 

5.3.5 GetUserNameById

 

 

函数原型:

 

GetUserNameById($ID_STR)

 

功能描述:

 

获取 N 个用户的用户姓名。

 

参数:

 

$ID_STR //N 个用户的用户名,用逗号串起来,如“admin,lqh,”返回值:

 

  1. 个用户的真实姓名字符串,用逗号串起来,如“系统管理员,刘清华”。

 

 

5.3.6 GetUserNameByUid

 

 

函数原型:

 

GetUserNameByUid($ID_STR)

 

功能描述:

 

获取 N 个用户的用户姓名。

 

参数:

 

$ID_STR //N 个用户的数字,用逗号串起来,如“1,2,”返回值:

 

  1. 个用户的真实姓名字符串,用逗号串起来,如“系统管理员,刘清华”。

 

 

5.3.7 my_exclude_uid

 

 

函数原型:

 

my_exclude_uid()

 

功能描述:

 

获取当前用户不能与之通讯的用户的数字 ID(UID)。

 

参数:

 

 

 

返回值:

 

当前用户不能与之通讯的用户的数字 ID(UID)。

 

 

5.3.8 GetUnionSetOfChildDeptId

 

 

函数原型:

 

GetUnionSetOfChildDeptId($DEPT_ID_STR)

 

功能描述:

 

获得下级部门的并集。

 

参数:

 

$DEPT_ID_STR                  //部门 ID 的字符串

 

返回值:

 

查询部门的下级部门 ID 的并集

 

 

5.3.9 GetfunmenuByuserID

 

 

函数原型:

 

GetfunmenuByuserID ($USER_ID)

 

功能描述:

 

获取用户拥有的菜单权限。

 

参数:

 

$USER_ID                  //用户的 USER_ID

 

返回值:

 

有权限的菜单 ID 的集合

 

 

5.3.10 is_module_manager

 

 

函数原型:

 

is_module_manager($module_id)

 

功能描述:

 

判断当前用户是否有指定模块的管理员角色。

 

参数:

$module_id              //指定功能模块代号

 

1-email,2-diary,3-notify,4-knowledge,5-hr,6-workflow 返回值:

 

True 或 false

 

 

5.3.11 set_priv_menu_priv

 

 

函数原型:

 

set_priv_menu_priv ($priv_id_str, $user_id_str="")

 

功能描述:

 

菜单权限设置,设置角色菜单权限时更新 user_function 表中菜单权限信息,批量修改

 

用户辅助角色时也更新。

 

参数:

 

$priv_id_str                  //设置菜单的角色 id 串

 

$user_id_str                  //设置菜单的用户名串

 

 

返回值:

 

 

 

5.3.12 set_uid_menu_priv

 

 

函数原型:

 

set_uid_menu_priv ($uid, $user_id, $priv_id_str)

 

功能描述:

 

新建/修改用户时角色变动时更新菜单权限设置 user_function

 

参数:

 

$uid                                     //用户 uid

 

$user_id                            //用户 user_id

 

$priv_id_str                  //用户角色 id 与辅助角色 id 合集串

 

 

返回值:

 

 

5.3.12 del_user_menu_priv

 

 

函数原型:

 

del_user_menu_priv ($user_id_str)

 

功能描述:

 

删除用户时删除菜单权限设置 user_function 表中对应数据

 

参数:

 

$ user_id_str                //删除的用户名串

 

返回值:

 

 

 

5.3.13 GetUidByOther

 

 

函数原型:

 

GetUidByOther ($user_id_str="", $priv_id_str="", $dept_id_str="")

 

功能描述:

 

根据用户名串/角色 ID 串/部门 ID 串获取对应 UID

 

参数:

 

$ user_id_str                //用户 user_id 串

 

$ priv_id_str                //用户角色 id 与辅助角色 id 合集串

 

$ dept_id_str                //用户部门 id 与辅助部门 id 合集串

 

 

返回值:

 

对应的用户 uid 串

 

 

5.4 utility_sms1.php

 

 

5.4.1 send_sms

 

 

函数原型:

 

send_sms($SEND_TIME,$FROM_ID,$TO_ID,$SMS_TYPE,$CONTENT,$REMIND_URL="",$WORK

 

_ID="0",$MOBILE_REMIND_URL="")

 

功能描述:

 

发送内部短消息。

 

参数:

 

$SEND_TIME                       //发送时间字符串,如“2013-11-20 09:00:00”

 

$FROM_ID                            //发送人用户名,如“admin”

 

$TO_ID                                //接收人用户名用逗号串起来的字符串,如“lqh,lxq”

 

$SMS_TYPE                         //短信类型代码,参考系统代码设置下的“内部短消息类型”

 

$CONTENT                            //短信内容

 

$REMIND_URL                     //点击短信提醒弹出窗口的“查看详情”打开的地址

 

$WORK_ID                            //业务 ID,如电子邮件传参$BODY_ID

 

$MOBILE_REMIND_URL //移动端打开事务提醒的 URL 地址返回值:

 

 

 

5.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 删除发送的短信

 

返回值:

 

 

 

5.5 utility_sms2.php

 

 

5.5.1 send_mobile_sms_user

 

 

函数原型:

 

send_mobile_sms_user($SEND_TIME,$FROM_ID,$TO_ID,$CONTENT,$TYPE)

 

功能描述:

 

  • OA 用户发送手机短信。

 

参数:

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

$SEND_TIME

//发送时间字符串,如“2013-11-20 09:00:00”

$FROM_ID

//发送人用户名,如“admin”

$TO_ID

//接收人用户名用逗号串起来的字符串,如“lqh,lxq”

$CONTENT

//短信内容

$TYPE

//短信类型代码,参考系统代码设置下的“内部短消息类型”

返回值:

 

 

 

 

5.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                  //短信内容

 

返回值:

 

 

 

5.6 utility_file.php

 

 

5.6.1 upload

 

 

函数原型:

 

upload($PREFIX="ATTACHMENT",$MODULE="" , $OUTPUT=true)

 

功能描述:

 

上传附件,可以一次上传多个附件。

 

参数:

 

$PREFIX           //表单 File 控件名称的前缀,一般为默认即可

 

$MODULE           //模块代码,如内部邮件为 email,为空则根据程序路径自动判断

 

$OUTPUT           //参数判断

 

返回值:

 

 

5.6.2 delete_attach

 

 

函数原型:

 

delete_attach($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE="")

 

功能描述:

 

删除附件,可以一次删除多个附件。

 

参数:

 

$ATTACHMENT_ID              //附件 ID,多个附件 ID 用逗号隔开

 

$ATTACHMENT_NAME         //附件名称,多个附件名称用*号隔开

 

$MODULE                     //模块代码,如内部邮件为 email,为空则根据程序路径自动判断断

 

返回值:

 

 

 

5.6.3 attach_size

 

 

函数原型:

 

attach_size($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE="")

 

功能描述:

 

获取附件大小。

 

参数:

 

$ATTACHMENT_ID              //附件 ID

 

$ATTACHMENT_NAME         //附件名称

 

$MODULE                     //模块代码,如内部邮件为 email,为空则根据程序路径自动判断断

 

返回值:

 

附件大小,单位字节。

 

 

5.6.4 copy_attach

 

 

函数原型:

 

copy_attach($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE_SRC="",$MODULE_DESC="",

 

$ID_IS_REAL = true)

 

功能描述:

 

拷贝一个或多个附件。

 

参数:

 

$ATTACHMENT_ID              //附件 ID,多个附件 ID 用逗号隔开

 

$ATTACHMENT_NAME         //附件名称,多个附件名称用*号隔开

 

$MODULE_SRC           //原附件所属模块代码,为空则根据程序路径自动判断断

 

$MODULE_DESC         //新附件所属模块代码,为空则根据程序路径自动判断断

 

$ID_IS_REAL           //$ATTACHMENT_ID 是文件的真实 ID,还是 attach_id_decode 过之后

 

的,数据库中存的一般是真实的

 

返回值:

 

新附件的附件 ID 串,多个附件的话用逗号隔开。

 

 

5.6.5 is_uploadable

 

 

函数原型:

 

is_uploadable($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否允许上传。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

允许上传则返回 true,否则返回 false。

 

 

5.6.6 is_text

 

 

函数原型:

 

is_text($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是文本文件。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是文本文件则返回 true,否则返回 false。

 

5.6.7 is_office

 

 

函数原型:

 

is_office($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是 Office 文档。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是 Office 文档则返回 true,否则返回 false。

 

 

5.6.8 is_image

 

 

函数原型:

 

is_image($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是图片。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是图片则返回 true,否则返回 false。

 

 

5.6.9 is_viewable

 

 

函数原型:

 

is_viewable($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否可以直接浏览,如 htm、pdf、图片等。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

可以直接浏览则返回 true,否则返回 false。

 

5.6.10 is_media

 

 

函数原型:

 

is_media($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是媒体文件,如视频、音频文件等。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

RealPlayer 播放类型返回 1,如 rm、rmvb 等

 

MediaPlayer 播放类型返回 2,如 wmv、mpeg 等

 

可直接在浏览器里打开的类型返回 3,如图片、pdf、html 等 Flash 播放类型返回 4,如 flv,fla 等其它返回 0

 

 

5.6.11 dir_size

 

 

函数原型:

 

dir_size($dir)

 

功能描述:

 

根据目录路径返回其下属子目录和文件的大小。

 

参数:

 

$dir //服务器目录路径,如 D:/MYOA 返回值:

 

目录大小,单位字节。

 

 

5.6.12 delete_dir

 

 

函数原型:

 

delete_dir($DIR, $RECYCLE = true, $MODULE = "")

 

功能描述:

 

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

根据目录路径删除该目录及其所有下属子目录和文件。

参数:

 

$DIR

//服务器目录路径,如 D:/MYOA

$RECYCLE

//删除目录和文件前,是否放到 oa 指定的回收目录,true 放到回收

目录

 

$MODULE

//指定回收目录的模块代码

返回值:

 

 

 

 

5.6.13 attach_sub_dir

 

 

函数原型:

 

attach_sub_dir()

 

功能描述:

 

根据程序路径判断其所属模块。

 

参数:

 

 

返回值:

 

附件所属模块代码,如在/general/email/new/submit.php 中调用该函数则返回 email。

 

 

5.6.14 attach_real_path

 

 

函数原型:

 

attach_real_path($ATTACHMENT_ID,$ATTACHMENT_NAME,$MODULE="")

 

功能描述:

 

根据附件的 ID、名称等获取该附件在服务器上存储的物理路径。

 

参数:

 

$ATTACHMENT_ID              //附件 ID

 

$ATTACHMENT_NAME         //附件名称

 

$MODULE                              //附件所述模块代码

 

返回值:

 

附件在服务器上的物理路径,如 D:/MYOA/attach/email/1311/123456789.二次开发手册.doc。

 

 

5.6.15 attach_id_encode

 

 

函数原型:

 

attach_id_encode($ATTACHMENT_ID,$ATTACHMENT_NAME)

 

功能描述:

 

根据附件的真实 ID 和名称获取在前台代码中显示的 ID。

 

参数:

 

$ATTACHMENT_ID              //附件 ID

 

$ATTACHMENT_NAME         //附件名称

 

返回值:

 

经过加密处理的 ID。

 

 

5.6.16 attach_id_decode

 

 

函数原型:

 

attach_id_decode($ATTACHMENT_ID,$ATTACHMENT_NAME)

 

功能描述:

 

根据附件的加密 ID 和真实名称获取真实 ID。

 

参数:

 

$ATTACHMENT_ID              //附件加密 ID

 

$ATTACHMENT_NAME         //附件真实名称

 

返回值:

 

附件的真实 ID。

 

 

5.6.17 td_copy

 

 

函数原型:

 

td_copy($source, $dest)

 

功能描述:

 

拷贝文件。

 

参数:

$source                     //要复制的文件

 

$dest                         //复制文件的目标路径

 

返回值:

 

成功则返回 true,否则返回 FALSE

 

 

5.6.18 td_rename

 

 

函数原型:

 

td_rename($oldname, $newname)

 

功能描述:

 

重命名文件或目录。

 

参数:

 

$oldname                  //要重命名的文件或目录

 

$newname                  //文件或目录的新名称

 

返回值:

 

成功则返回 true,否则返回 FALSE

 

 

5.6.19 td_move_uploaded_file

 

 

函数原型:

 

td_move_uploaded_file($filename, $destination)

 

功能描述:

 

将上传的文件移动到新位置。

 

参数:

 

$filename                         //要移动的文件

 

$destination                  //文件的新位置

 

返回值:

 

成功则返回 true,否则返回 false

 

 

5.6.20 td_file_put_contents

 

 

函数原型:

 

td_file_put_contents($filename, $data, $flag = FALSE)

 

功能描述:

 

把一个字符串写入文件中。

 

参数:

 

$filename                         //要写入数据的文件

 

$data                                   //要写入的数据

 

$flag                                   //如何打开/写入文件,一般为默认即可

 

返回值:

 

写入到文件内数据的字节数

 

 

5.6.21 add_attach_module

 

 

函数原型:

 

add_attach_module($MODULE , $MODULE_NAME="")

 

功能描述:

 

在数据库 attachment_module 表中增加一条模块记录。

 

参数:

 

$MODULE                        //附件所属模块代码

 

$MODULE_NAME        //附件所属模块名称

 

返回值:

 

 

 

5.6.22 attach_module_id

 

 

函数原型:

 

attach_module_id($MODULE)

 

功能描述:

 

根据模块名称取得 attachment_module 表中模块的 id

 

参数:

 

$MODULE                        //附件所属模块代码

 

返回值:

 

attachment_module 表中模块的 id

 

 

5.6.23 attach_sign_key

 

 

函数原型:

 

attach_sign_key($ATTACHMENT_ID, $ATTACHMENT_NAME, $ID_IS_REAL = false)

 

功能描述:

 

获取 office 文档的签章的密钥

 

参数:

 

$ATTACHMENT_ID                        //附件的 ID

 

$ATTACHMENT_NAME                //附件的名称

 

$ID_IS_REAL                                     //$ATTACHMENT_ID 是否是真实 ID

 

返回值:

 

Office 文档返回签章密钥,其他文件返回 0

 

 

 

5.6.24 attach_sign_key_netdisk

 

 

函数原型:

 

attach_sign_key_netdisk($FILE_PATH)

 

功能描述:

 

通过网络硬盘信息,获取 office 文档的签章的密钥

 

参数:

 

$FILE_PATH                        //通过网路硬盘信息获得的附件在服务器上存储的物理路径

 

返回值:

 

Office 文档返回签章密钥,其他文件返回 0

 

 

5.6.25 attach_real_path_netdisk

 

 

函数原型:

 

attach_real_path_netdisk($DISK_ID, $ATTACH_DIR, $ATTACH_NAME = "")

 

功能描述:

 

通过网络硬盘获取附件在服务器上存储的物理路径

 

参数:

 

$DISK_ID                                //对应网络硬盘表中 DISK_ID 值

 

$ATTACH_DIR                       //附件的路径

 

$ATTACH_NAME                  //附件名称

 

返回值:

 

附件在服务器上存储的物理路径

 

 

5.6.26 cache_attach_para

 

 

函数原型:

 

cache_attach_para ()

 

功能描述:

 

更新附件参数缓存

 

参数:

 

 

返回值:

 

 

 

5.6.27 attach_url

 

 

函数原型:

 

attach_url($ATTACHMENT_ID, $ATTACHMENT_NAME, $MODULE, $OTHER=array())

 

功能描述:

 

根据附件信息获得附件的相关链接地址,如下载、查看、阅读、编辑等

 

参数:

 

$ ATTACHMENT_ID                               //附件 ID

 

$ ATTACHMENT_NAME                      //附件名称

 

$ MODULE                                                   //附件所属模块代码

 

$OTHER                                                        //office 文档操作权限,默认不填

 

返回值:

 

附件链接地址数组,

 

$URL_ARRAY = array(

 

‘down’=> xxx,    //下载

 

‘rename’=> xxx,//重命名 调用 ReNameFile(attachment_id, attachment_name)

 

‘delete’=> xxx,//删除,调用 delete_attach(attachment_id, attachment_name)

 

‘office_read’=> xxx,//阅读

 

‘office_edit’=> xxx,//编辑

 

‘office_preview’=> xxx,//Excel 文件在线预览

 

‘view’=> xxx,//图片等直接查看

 

‘save’=> xxx,//转存,调用 SaveFile(attachment_id, attachment_name)

 

);

 

标准附件显示方式可以直接调用 attach_link 函数实现相关链接输出显示,如果需要直接获取附件的下载路径等信息,可调用 attach_url 函数获取相关链接地址数组。

 

 

5.6.28 attach_url_pda

 

 

函数原型:

 

attach_url_pda($ATTACHMENT_ID, $ATTACHMENT_NAME, $P, $MODULE)

 

功能描述:

 

根据附件信息获得附件操作时的跳转路径,pda 访问时

 

参数:

 

$ ATTACHMENT_ID                                  //附件 ID

 

$ ATTACHMENT_NAME                         //附件名称

 

$ P                                                                     //密钥

 

$ MODULE                                                   //模块所属模块代码

 

返回值:

 

附件链接地址数组,pda 访问时

 

URL_ARRAY = array(

 

‘down’=> xxx,    //下载

 

);

 

 

5.6.29 attach_link

 

 

函数原型:

 

attach_link($ATTACHMENT_ID,$ATTACHMENT_NAME,$SHOW_SIZE=0,$DOWN_PR IV=1,$DOWN_PRIV_OFFICE=1,$EDIT_PRIV=0,$DELETE_PRIV=0,$NEW_LINE=1,$SAVE _FILE=1,$CREATE_IMAGE=0,$MODULE="",$IS_UTF8=false,$FORMAT=0)

 

功能描述:

 

附件的操作权限

 

参数:

 

$ATTACHMENT_ID                        //附件 ID

 

$ATTACHMENT_NAME               //附件名称

 

$SHOW_SIZE                                     //是否显示文件大小

 

$DOWN_PRIV                                   //是否可以下载

 

$DOWN_PRIV_OFFICE                 //office 文档是否可以下载

 

$EDIT_PRIV                                       //是否可以编辑

 

$DELETE_PRIV                                //文件是否可以删除,文件柜中文件时候可以重命名

 

$NEW_LINE                                       //操作按钮是否换行,默认 1

 

$SAVE_FILE                                      //文件是否可以转存

 

$CREATE_IMAGE                           //图片是否可以插入正文

 

$MODULE                                  //原附件所属模块代码,为空则根据程序路径自动判断断

 

$IS_UTF8                                              //是否是 UTF8 编码

 

返回值:

 

文件操作集合组成的按钮

 

 

5.6. 30 attach_link_pda

 

 

函数原型:

 

attach_link_pda($ATTACHMENT_ID,$ATTACHMENT_NAME,$P,$MODULE="",$SHO W_SIZE=1,$DOWN_PRIV=1,$NEW_LINE=0)

功能描述:

 

pda 访问时,附件的操作权限

 

参数:

 

$ATTACHMENT_ID                           //附件 ID

 

$ATTACHMENT_NAME                  //附件名称

 

$P                                                              //

 

$MODULE                                     //原附件所属模块代码,为空则根据程序路径自动判断断

 

$SHOW_SIZE                                       //是否显示文件大小

 

$DOWN_PRIV                                     //文件是否可以下载

 

$NEW_LINE                                       //操作按钮是否换行,默认 0

 

返回值:

 

pda 访问时的文件操作集合组成的按钮

 

 

5.6.31 attach_url_old

 

 

函数原型:

 

attach_url_old($ATTACHMENT_ID, $ATTACHMENT_NAME)

 

功能描述:

 

根据附件信息获得附件操作时的跳转路径

 

参数:

 

$ ATTACHMENT_ID                               //附件 ID

 

$ ATTACHMENT_NAME                      //附件名称

 

返回值:

 

  • attach_url,但只适用于 webroot/attachment 目录下存储的

 

URL_ARRAY = array(

 

‘down’=> xxx,    //下载

 

‘view’=> xxx, //查看

 

);

 

 

5.6.32 upload_old

 

 

函数原型:

 

upload_old($ATTACHMENT,$ATTACHMENT_NAME)

 

功能描述:

 

上传附件。存储在 webroot\attachment 目录下的附件

 

参数:

 

$ ATTACHMENT                                       //表单 File 控件名称的前缀,一般为默认即可

 

$ ATTACHMENT_NAME                      //附件名称

 

返回值:

 

一个随机生成数,即附件的 ID

 

 

5.6.33 add_attach_old

 

 

函数原型:

 

add_attach_old($SOURCE_FILE, $ATTACHMENT_ID, $ATTACHMENT_NAME)

 

功能描述:

 

添加附件(webroot\attachment 目录下的附件)

 

参数:

 

$SOURCE_FILE                                              //附件文件

 

$ATTACHMENT_ID                                          //附件 ID

 

$ATTACHMENT_NAME                                     //附件名称

 

返回值:

 

成功返回 ture,失败返回 false

 

5.6.34 delete_attach_old

 

 

函数原型:

 

delete_attach_old($ATTACHMENT_ID,$ATTACHMENT_NAME)

 

功能描述:

 

删除附件,可以一次删除多个附件。

 

删除的是 webroot\attachment 目录下的附件

 

参数:

 

$ATTACHMENT_ID              //附件 ID,多个附件 ID 用逗号隔开

 

$ATTACHMENT_NAME         //附件名称,多个附件名称用*号隔开

 

返回值:

 

 

 

5.6.35 add_attach

 

 

函数原型:

 

add_attach($SOURCE_FILE, $ATTACH_NAME, $MODULE="", $YM="", $ATTACH_SIGN=0, $ATTACH_ID="")

 

功能描述:

 

将附件转存,返回转存后得到的附件的新 id

 

参数:

 

$SOURCE_FILE                                         //附件文件

 

$ATTACH_NAME                                         //附件名称

 

$MODULE                                                     //附件所属模块代码

 

$YM                                                              //年月信息

 

$ATTACH_SIGN                                         //office 文档签章的密钥

 

$ATTACH_ID                                              //附件 ID

 

返回值:

 

新的附件的新 ID

 

 

5.6.36 copy_attach_netdisk

 

 

函数原型:

 

copy_attach_netdisk($ATTACH_DIR,$ATTACH_NAME,$DISK_ID,$MODULE="")

 

功能描述:

 

 

通过网络硬盘方式复制一个或多个附件

 

 

参数:

 

$ATTACH_DIR

 

$ATTACH_NAME

 

$DISK_ID

 

$MODULE

 

返回值:

 

 

 

 

//附件目录

 

//附件名称

 

//网络硬盘 ID

 

//附件所属模块代码

 

 

新的附件新 ID 组成的串,用逗号连接

 

 

5.6.37 copy_sel_attach

 

 

函数原型:

 

copy_sel_attach($ATTACH_NAME,$ATTACH_DIR,$DISK_ID)

 

功能描述:

 

复制一个或多个附件

 

参数:

 

$ATTACH_NAME                                         //附件名称

 

$ATTACH_DIR                                            //附件目录

 

$DISK_ID                                                   //网络硬盘 ID

 

返回值:

 

新的附件新 ID 组成的串,用逗号连接

 

 

5.6.38 office_attach

 

 

函数原型:

 

office_attach($NEW_TYPE,$NEW_NAME,$MODULE="")

 

功能描述:

 

创建 Office 附件

 

参数:

 

$NEW_TYPE                                            //文档类型

 

$NEW_NAME                                            //文件名称,无后缀

 

$MODULE                                                 //附件所属模块代码

 

返回值:

 

新的附件的新 ID

 

 

 

5.6.39 create_attach

 

 

函数原型:

 

create_attach($NAME,$CONTENT,$MODULE="")

 

功能描述:

 

创建一个附件

 

参数:

 

$NAME                                                   //文件名

 

$CONTENT                                            //文件内容

 

$MODULE                                              //附件所属模块代码

 

返回值:

 

新的附件的新 ID

 

 

5.6.40 is_editable

 

 

函数原型:

 

is_editable($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否可以编辑

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

可以编辑则返回 true,否则返回 false。

 

 

5.6.41 is_wps

 

 

函数原型:

 

is_wps($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是 wps 类型

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是 wps 则返回 true,否则返回 false。

 

 

5.6.42 is_ppt_xls

 

 

函数原型:

 

is_ppt_xls($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否 ppt 或 excel 文档。

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是 ppt 或 excel 文档则返回 true,否则返回 false。

 

 

5.6.43 is_thumbable

 

 

函数原型:

 

is_thumbable($FILE_NAME)

 

功能描述:

 

根据附件名称判断该类型的文件是否是网页图片。(jpg,jpeg,png,gif 中的一种)

 

参数:

 

$FILE_NAME              //要判断的文件名

 

返回值:

 

是网页图片则返回 true,否则返回 false。

 

 

5.6.44 image_mimetype

 

 

函数原型:

 

image_mimetype($fichier)

 

功能描述:

 

根据文件类型取得文件的图标

 

参数:

 

$ fichier                                                   //文件名

 

返回值:

 

对应的图片名称

 

 

5.6.45 Is_SysFile

 

 

函数原型:

 

file_type($file_name)

 

功能描述:

 

判断文件是不是系统文件(.db)

 

参数:

 

$ file_name                                                     //文件名

 

返回值:

 

如果是系统文件返回 true,否则返回 false。

 

 

5.6.46 file_type

 

 

函数原型:

 

file_type($file_name)

 

功能描述:

 

取得文件类型

 

参数:

 

$ file_name                                                     //文件名

 

返回值:

 

文件类型

 

 

5.6.47 mime_type

 

 

函数原型:

 

mime_type($file_name)

 

功能描述:

 

取得文件 HTTP 协议 Content-Type

 

参数:

 

$ file_name                                                     //文件名

 

返回值:

 

文件 HTTP 协议 Content-Type

 

5.6.48 trim_office_attach

 

 

函数原型:

 

trim_office_attach($ATTACHMENT_ID, $ATTACHMENT_NAME)

 

功能描述:

 

从传入的附件中过滤掉 offcie 文档附件

 

参数:

 

$ATTACHMENT_ID                                                     //附件 ID,多个用“,”连接

 

$ATTACHMENT_NAME                                           //附件名称,多个用“*”连接

 

返回值:

 

过滤掉 office 文档之后的附件数组

 

 

5.6.49 dir_file_nums

 

 

函数原型:

 

dir_file_nums($dir)

 

功能描述:

 

取得目录下的文件数量

 

参数:

 

$dir                                       //目录路径

 

返回值:

 

目录下文件数量

 

 

5.6.50 CreateThumb

 

 

函数原型:

 

CreateThumb($file,$maxwdt,$maxhgt, $dest, $quality=1)

 

功能描述:

 

创建图片的缩略图

 

参数:

 

$file                                             //图片文件

 

$maxwdt                                   //最大宽度

 

$maxhgt                                  //最大高度

 

$dest                                          //创建图片的保存位置

 

$quality                                     //图片质量

 

返回值:

 

创建成功返回 true,否则返回 false。

 

 

5.6.51 ReplaceImageSrc

 

 

函数原型:

 

ReplaceImageSrc($CONTENT, $ATTACHMENTS=array(), $MODULE="")

 

功能描述:

 

将附件中的图片显示在正文里

 

参数:

 

$ CONTENT                     //正文内容

 

$ATTACHMENTS         //表单中提交的附件内容

 

$MODULE                       //附件所属模块代码

 

返回值:

 

包含了图片的正文内容

 

 

5.6.52 trim_inserted_image

 

 

函数原型:

 

trim_inserted_image($CONTENT, $ATTACHMENT_ID, $ATTACHMENT_NAME)

 

功能描述:

 

获取排除掉已经插入到正文中的图片,剩下的附件

 

参数:

 

$CONTENT                                //正文内容

 

$ATTACHMENT_ID                  //附件 ID,多个附件 ID 用逗号隔开

 

$ATTACHMENT_NAME             //附件名称,多个附件名称用*号隔开

 

返回值:

 

剩余附件的数量,附件 ID (多个用逗号连接),附件名称(多个用*连接)组成的数组

 

 

5.6.53 backup_file

 

 

函数原型:

 

backup_file($FILE_SRC)

 

功能描述:

 

根据附件在服务器上存储的物理路径备份文件

 

 

参数:

 

$FILE_SRC //附件在服务器上存储的物理路径返回值:

 

由路径,经过处理时间,文件名组成的字符串

 

 

5.6.54 oc_log

 

 

函数原型:

 

oc_log($ATTACH_ID, $ATTACH_NAME, $LOG_TYPE="2", $BACKUP_FILE="")

 

功能描述:

 

记录备份日志

 

参数:

 

$ATTACH_ID                       //附件 ID

 

$ATTACH_NAME             //附件名称

 

$LOG_TYPE                       //普通附件:1 阅读,2 编辑保存,4 编辑,3 下载

 

// 网络硬盘:5 下载(阅读),6 编辑保存

 

$BACKUP_FILE                //经过 backup_file()方法得到的文件名字符串信息

 

返回值:

 

 

 

5.6.55 attach_id_explode

 

 

函数原型:

 

attach_id_explode($ATTACHMENT_ID)

 

功能描述:

 

根据附件 ID,拆分获得附件在附件表中的基本信息

 

参数:

 

$ATTACHMENT_ID           //附件 ID

 

返回值:

 

附件表中 id,附件 id,年月信息,签章的密钥组成的数组

 

 

5.6.56 attach_id_implode

 

 

函数原型:

 

attach_id_implode($AID, $YM, $ATTACHMENT_ID, $SIGN_KEY = 0)

 

功能描述:

 

 

根据附件在附件表中的基本信息,取得附件新 ID

 

参数:

 

$AID                                                //附件表中 id

 

$YM                                                 //年月信息

 

$ATTACHMENT_ID                  //附件表中的附件 id

 

$SIGN_KEY                                  //签章的密钥

 

返回值:

 

返回 id,年月信息,签章的密钥这些组成的附件 id

 

 

 

5.7 utility_email.php

 

 

5.7.1 GetWebMailNumByUid

 

 

函数原型:

 

GetWebMailNumByUid ($UID)

 

功能描述:

 

判断是否禁用 internet 邮箱

 

参数:

 

$UID                                                //用户 UID

 

返回值:

 

返回可使用 Internet 邮箱数量,0 为不限制

 

 

5.7.2 GetSentMailNum

 

 

函数原型:

 

GetSentMailNum ($USER_ID_STR="",$BEGIN_TIME="",$END_TIME="")

 

功能描述:

 

获取发送邮件的数量

 

参数:

 

$ USER_ID_STR                                     //用户 user_id 串

 

$ BEGIN_TIME                                       //开始时间

 

$ END_TIME                                            //结束时间

 

返回值:

 

返回发件人总数数组

 

5.7.3 trim_notlogin

 

 

函数原型:

 

trim_notlogin ($TO_STR)

 

功能描述:

 

过滤掉离职人员

 

参数:

 

$ TO_STR //用户 user_id 串返回值:

 

过滤以后的 user_id 串

 

 

 

5.7.4 insert_to_address

 

 

函数原型:

 

insert_to_address ($TO_WEBMAIL)

 

功能描述:

 

增加 WEB 邮箱联系人到通讯簿

 

参数:

 

$TO_WEBMAIL                                     //外部邮箱地址串

 

返回值:

 

 

 

5.7.5 get_email_data

 

 

函数原型:

 

get_email_data

 

($FIELD,$ASC_DESC,$BOX_ID,$WHERE_STR,$PAGE_ZISE,$TIMESTAMP,$CURNUM,$IS

 

_WEBMAILBOX,$IS_MAIN,$BOXNAME,$list_view)

 

功能描述:

 

获取邮件数据

 

参数:

 

$ FIELD                                                     //排序字段

 

$ ASC_DESC                                            //正序或倒序

 

$ BOX_ID                                                 //邮箱 ID

 

$ WHERE_STR                                       //查询条件

 

 

$ PAGE_ZISE                                         //每页显示数

 

$ TIMESTAMP                                       //当前时间戳

 

$ CURNUM                                               //当前分页数

 

$ IS_WEBMAILBOX                            //是否有有外部邮件权限

 

$ IS_MAIN                                              //主服务查询参数

 

$ BOXNAME                                         //当年邮箱类别(inbox, delbox)

 

$ list_view                                                 //分页参数

 

返回值:

 

邮件数据数组

 

 

5.7.6 remove_email

 

 

函数原型:

 

remove_email($tobox,$email_str)

 

功能描述:

 

移动邮件

 

参数:

 

$ tobox                                     //邮箱主体 ID

 

$ email_str                              //EMAIL 邮件 ID 串

 

返回值:

 

ok 或 error

 

 

5.7.7 get_sentbox_data

 

 

函数原型:

 

get_sentbox_data

 

($FIELD,$ASC_DESC,$WHERE_STR,$PAGE_ZISE,$TIMESTAMP,$CURNUM,$IS_WEBMA

 

ILBOX,$IS_MAIN,$list_view)

 

功能描述:

 

获取已发送中的数据

 

参数:

 

$ FIELD                                                   //排序字段

 

$ ASC_DESC                                         //正序或倒序

 

$ WHERE_STR                                     //查询条件

 

$ PAGE_ZISE                                         //每页显示数

 

$ TIMESTAMP                                       //当前时间戳

 

$ CURNUM                                               //当前分页数

 

$ IS_WEBMAILBOX                            //是否有有外部邮件权限

 

$ IS_MAIN                                              //主服务查询参数

 

 

 

60

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

$ list_view

//分页参数

返回值:

 

邮件数据数组

 

 

 

5.7.8 delete_email

 

 

函数原型:

 

delete_email ($email_str)

 

功能描述:

 

删除邮件

 

参数:

 

$ email_str // EMAIL_ID 串返回值:

 

Ok 或 error

 

 

5.7.9 destroy_email

 

 

函数原型:

 

destroy_email ($email_str)

 

功能描述:

 

删除邮件

 

参数:

 

$ email_str // EMAIL_ID 串返回值:

 

Ok 或 error

 

 

5.7.10 get_time

 

 

函数原型:

 

get_time ($SEND_TIME_U)

 

功能描述:

 

时间转换

 

参数:

 

$ SEND_TIME_U                                                   // 时间戳

 

返回值:

 

与当前时间对比后的字符串

 

 

5.7.11 email_count

 

 

函数原型:

 

email_count ($BOX_NAME,$BOX_ID="")

 

功能描述:

 

查询邮件数量

 

参数:

 

$ BOX_NAME // 邮 箱 主 体 名 称 (inbox, outbox, sentbox, delbox, waitbox, backbox)

 

$ BOX_ID              // 邮箱 ID

 

返回值:

 

返回总数

 

 

5.7.12 get_outbox_data

 

 

函数原型:

 

get_outbox_data

 

($FIELD,$ASC_DESC,$WHERE_STR,$PAGE_ZISE,$TIMESTAMP,$CURNUM,$IS_MAIN)

 

功能描述:

 

获取草稿箱数据

 

参数:

 

$ FIELD                                                     // 排序条件

 

$ ASC_DESC                                            // 正序或倒序

 

$ WHERE_STR                                       // 查询条件

 

$ PAGE_ZISE                                           // 分页显示数

 

$ TIMESTAMP                                         // 当前时间戳

 

$ CURNUM                                                 // 当前分页数

 

$ IS_MAIN                                                // 主服务查询参数

 

返回值:

 

返回数据数组

 

 

5.7.13 delete_outbox_email

 

 

函数原型:

 

delete_outbox_email ($email_str)

 

功能描述:

 

删除草稿箱邮件

 

参数:

 

$ BOX_NAME                                   // 邮箱 ID 串

 

返回值:

 

Ok 或 error

 

 

5.8 utility_msg.php

 

 

5.8.1 send_msg

 

 

函数原型:

 

send_msg($FROM_UID,$TO_UID_STR,$MSG_TYPE,$CONTENT,$SEND_TIME=0,$ME SSAGE_TYPE=1)

功能描述:

 

发送内部微讯

 

参数:

 

$FROM_UID                                       //发送人 UID

 

$TO_UID_STR                                   //接收人 UID 用逗号串起来的字符串

 

$MSG_TYPE                                       //消息类型(0-微讯网页消息,1-即时通讯离线消息,3-

 

微讯移动版,5-微讯移动 iPhone 版,6-微讯移动 Android 版)

 

$CONTENT                                         //消息内容

 

$SEND_TIME                                     //发送时间

 

$MESSAGE_TYPE                           //1 文字;2 附件;3 图片;4 语音;5 位置;6 图文混排;7

 

系统信息

 

返回值:

 

 

 

第六章 公用组件参考

 

 

公用组件为 JavaScript 脚本的前台代码,目的是为了简化前端程序的二次开发,开发出和 OA 结合更紧密、更一致的功能。

 

 

6.1 人员多选

 

 

函数原型:

 

SelectUser(FUNC_ID,MODULE_ID,TO_ID, TO_NAME, MANAGE_FLAG,FORM_NAME,USE_UID)

 

功能描述:

 

弹出一个人员多选窗口

 

加载文件:

 

/static/js/module.js

 

参数:

 

FUNC_ID           //子菜单项 ID

 

MODULE_ID       //模块 ID,系统保留,传递空值即可

 

TO_ID                //存放已选人员用户名的字段名,多个用户名用英文逗号隔开

 

TO_NAME           //存放已选人员用户真实姓名的字段名,多个姓名用英文逗号隔开

 

MANAGE_FLAG //是否显示不允许登录 OA 人员,默认为 0 FORM_NAME //表单名称,默认为“form1”

 

USE_UID           //是否使用 UID,默认为空则使用 USER_ID

 

返回值:

 

 

示例代码:

 

<script src="/static/js/module.js"></script>

 

<form action="add.php" method="post" name="form1"> <input type="hidden" name="TO_ID" value="">

 

<textarea cols=40 name="TO_NAME" rows=2 wrap="yes" readonly></textarea>

 

<a href="javascript:;" onClick="SelectUser('','TO_ID', 'TO_NAME')">添加</a> <a href="javascript:;" onClick="ClearUser('TO_ID', 'TO_NAME')">清空</a> </form>

 

 

6.2 人员单选

 

 

函数原型:

 

SelectUserSingle(FUNC_ID,MODULE_ID,TO_ID, TO_NAME,  MANAGE_FLAG,FORM_NAME ,

 

USE_UID)

 

功能描述:

 

弹出一个人员单选窗口

 

加载文件:

 

/static/js/module.js

 

参数:

 

FUNC_ID           //子菜单项 ID

 

MODULE_ID       //模块 ID,系统保留,传递空值即可

 

TO_ID                //存放已选人员用户名的字段名

 

 

64

 

 

Office Anywhere 网络智能办公系统 二次开发手册

 

 

TO_NAME

//存放已选人员用户真实姓名的字段名

MANAGE_FLAG //是否显示不允许登录 OA 人员,默认为 0

FORM_NAME

//表单名称,默认为“form1”

USE_UID

//是否使用 UID,默认为空则使用 USER_ID

 

返回值:

 

 

示例代码:

 

<script src="/static/js/module.js"></script>

 

<form action="add.php" method="post" name="form1"> <input type="hidden" name="TO_ID" value="">

 

<textarea cols=40 name="TO_NAME" rows=2 wrap="yes" readonly></textarea>

 

<a href="javascript:;" onClick="SelectUserSingle('','TO_ID', 'TO_NAME')">添加</a>

 

<a href="javascript:;" onClick="ClearUser('TO_ID', 'TO_NAME')">清空</a> </form>

 

 

6.3 部门多选

 

 

函数原型:

 

SelectDept(MODULE_ID,TO_ID, TO_NAME, PRIV_OP , FORM_NAME)

 

功能描述:

 

弹出一个部门多选窗口

 

加载文件:

 

/static/js/module.js

 

参数:

 

MODULE_ID       //模块 ID,系统保留,传递空值即可

 

TO_ID                //存放已选部门 ID 的字段名,多个 ID 用英文逗号隔开

 

TO_NAME           //存放已选部门名称的字段名,多个名称用英文逗号隔开

 

PRIV_OP           //选择部门的范围,0 所有部门,1 用户管理范围内的部门

 

FORM_NAME //表单名称,默认为“form1”返回值:

 

 

示例代码:

 

<script src="/static/js/module.js"></script>

 

<form action="add.php" method="post" name="form1"> <input type="hidden" name="TO_ID" value="">

 

<textarea cols=40 name="TO_NAME" rows=2 wrap="yes" readonly></textarea>

 

<a href="javascript:;" onClick="SelectDept('','TO_ID', 'TO_NAME')">添加</a> <a href="javascript:;" onClick="ClearUser('TO_ID', 'TO_NAME')">清空</a> </form>

 

 

6.4 部门单选

 

 

函数原型:

 

SelectDeptSingle(MODULE_ID,TO_ID, TO_NAME, PRIV_OP , FORM_NAME)

 

功能描述:

 

弹出一个部门单选窗口

 

加载文件:

 

/static/js/module.js

 

参数:

 

MODULE_ID       //模块 ID,系统保留,传递空值即可

 

TO_ID                //存放已选部门 ID 的字段名

 

TO_NAME           //存放已选部门名称的字段名

 

PRIV_OP           //选择部门的范围,0 所有部门,1 用户管理范围内的部门

 

FORM_NAME //表单名称,默认为“form1”返回值:

 

 

示例代码:

 

<script src="/static/js/module.js"></script>

 

<form action="add.php" method="post" name="form1"> <input type="hidden" name="TO_ID" value="">

 

<textarea cols=40 name="TO_NAME" rows=2 wrap="yes" readonly></textarea>

 

<a href="javascript:;" onClick="SelectDeptSingle('','TO_ID', 'TO_NAME')">添加</a>

 

<a href="javascript:;" onClick="ClearUser('TO_ID', 'TO_NAME')">清空</a> </form>

 

 

6.5 角色多选

 

 

函数原型:

 

SelectPriv(MODULE_ID,TO_ID, TO_NAME, PRIV_OP , FORM_NAME)

 

功能描述:

 

弹出一个角色多选窗口

 

 

加载文件:

 

/static/js/module.js

 

参数:

 

MODULE_ID       //模块 ID,系统保留,传递空值即可

 

TO_ID                //存放已选角色 ID 的字段名,多个 ID 用英文逗号隔开

 

TO_NAME           //存放已选角色名称的字段名,多个名称用英文逗号隔开

 

PRIV_OP           //默认 0,如果当前用户非 OA 管理员且该参数为 1,则不列出 OA 管理员

 

FORM_NAME //表单名称,默认为“form1”返回值:

 

 

示例代码:

 

<script src="/static/js/module.js"></script>

 

<form action="add.php" method="post" name="form1"> <input type="hidden" name="TO_ID" value="">

 

<textarea cols=40 name="TO_NAME" rows=2 wrap="yes" readonly></textarea>

 

<a href="javascript:;" onClick="SelectPriv('','TO_ID', 'TO_NAME')">添加</a> <a href="javascript:;" onClick="ClearUser('TO_ID', 'TO_NAME')">清空</a>

 

</form>

 

 

第七章 典型功能简析

 

 

主要列举典型功能,目的是为了相关功能程序的二次开发,开发出和 OA 结合更紧密、更一致的功能。

 

 

7.1 用户名相关

 

 

由于之前版本中用户名(USER_ID)字段在新建用户时赋值,可以为任意类型的数据,包括汉字等,且绝大部分模块中直接与用户名(USER_ID)直接关联,直接影响各个模块的效率及可能出现的编码问题。为解决此问题,我们将之前使用比较冷门的别名(BYNAME)在新建/编辑用户时替代之前用户名成为新一代的用户名(BYNAME),在新建/编辑用户及控制面板中均可以进行修改,也可以在系统管理->系统参数设置中设置不允许修改,且作为唯一登陆 OA 的用户名;之前的 USER_ID,我们在新建用户时自动赋值为数字型数据,从而在各个模块的使用过程中效率提升且不存在编码问题。

 

建议开发人员在新增模块/数据库表结构时直接考虑使用 UID 字段进行关联。

 

7.2 登录密码加密

 

 

为进一步保证 OA 登录时账号及密码安全,在 PC 端、精灵、移动版等登录 OA 时,均提供了对密码 base64 加密措施。

 

调用 js 文件:

 

<script src="'.MYOA_JS_SERVER.'/static/js/base64/base64.min.js"></script> 调用文件后即可使用方法对密码加密,如: document.form1.PASSWORD.value = Base64.encode(psw);

 

登录页面提交后,再使用 php 自带 base64 解密方法处理即可,如:

 

$PASSWORD = base64_decode($PASSWORD);

 

为兼容用户历史数据,可以新增字段 encode_type 进行判断,只有当 encode_type=1 时才进行解密,如:

 

$PASSWORD = ($encode_type==1 ? base64_decode($PASSWORD) : $PASSWORD);

 

 

7.3 系统缓存机制

 

 

为避免每次访问页面或用户经常用的数据等,在 OA 系统中采用了缓存机制,很好的解决了由于每次访问都需要重新操作数据库或计算导致系统访问速度慢的问题。比如在新建模块实例中,获取部门信息时,就可以直接从缓存中获取,获取方式如下(以部门 C_DEPT 为

 

例):

 

  • 获取部门缓存内容:

 

$sys_cache = TD::get_cache("C_DEPT");//参考第四章 TD 类

 

  • 更新缓存内容

 

TD::set_cache("C_DEPT", $cache_data, 0); //参考第四章 TD 类

 

  • 删除缓存条目

 

TD::delete_cache("C_DEPT"); //参考第四章 TD 类

 

 

7.4 开启 Redis 缓存

 

 

为了提高缓存的存取效率,增加了 redis 缓存机制,开始时对应修改 oa_config.php 中的

 

参数

 

$MYOA_SESS_SAVE_HANDLER = 'redis';

 

 

 

$MYOA_CACHE_DRIVER = 'redis';

 

注意开启 redis 缓存时,redis 密码不要存在特殊字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值