深入理解通达OA的目录结构是进行二次开发的基础。通达OA采用了清晰的模块化设计,将服务程序、应用程序、Web页面巧妙整合与组织,便于理解和扩充。本文将详细解析OA的目录层次结构,并深入探讨核心文件的作用和使用方法。
通达OA的根目录为 MYOA,其下包含多个功能明确的子目录:
MYOA
├── attach # OA附件文件存放目录
├── bak # 数据库默认备份目录
├── bin # PHP、Zend等主程序及配置文件
├── data5 # MySQL数据库文件目录
├── logs # OA服务等的日志文件目录
├── MyAdmin # MySQL管理工具
├── mysql5 # MySQL主程序文件
├── nginx # Nginx Web应用服务
├── tmp # 临时文件目录
└── webroot # WEB根目录(PHP程序目录)1. attach目录
2. bak目录
3. bin目录
service.iniphp.ini4. data5目录
TD_OA:通达OA主数据库TD_OA_ARCHIVE:归档数据库BUS:公交线路查询数据库crscell:报表数据库5. webroot目录
webroot 是二次开发最常接触的目录,其结构如下:
webroot
├── attachment # 头像、模块配置文件目录
├── general # 主要模块目录
│ ├── ipanel # 主控面板
│ ├── mytable # 桌面模块程序
│ ├── system # 系统功能模块
│ └── ... # 其他业务模块
├── inc # 系统通用程序及函数目录
├── ispirit # OA精灵页面
├── mobile # OA移动界面
├── module # 系统组件
│ ├── dept_select # 部门选择组件
│ ├── editor # HTML编辑器组件
│ ├── OC # Office文档在线编辑
│ ├── user_select # 用户多选组件
│ └── ... # 其他组件
├── portal # 门户界面
├── static # 静态文件目录
│ ├── common # 通用CSS和图片
│ ├── images # 标签引用的图片
│ ├── js # JavaScript文件
│ └── theme # 界面主题
├── templates # 登录界面模版
└── webservice # WebService接口(不建议使用)general 目录是存放所有应用模块的地方,每个模块拥有独立的子目录。开发新模块时,需要在此目录下创建新文件夹。
常见模块示例:
ipanel:主控面板,集成菜单、短信箱等mytable:桌面模块system:系统管理功能workflow:工作流模块meeting:会议管理模块inc 目录存放系统通用程序及函数,是OA的核心目录之一。所有二次开发都需要频繁引用此目录下的文件。
module 目录存放系统公用组件,如人员选择、部门选择、编辑器等。开发时可以直接调用这些组件,无需重复开发。
通达OA的核心文件位于 webroot\inc 目录下,主要包括以下四个文件:
作用:权限验证程序
功能特点:
使用方法:
include_once("inc/auth.inc.php");使用场景:
注意事项:
作用:页面渲染头部
功能特点:
使用方法:
$HTML_PAGE_TITLE = _("页面标题");
include_once("inc/header.inc.php");使用场景:
注意事项:
$HTML_PAGE_TITLE 变量_() 函数包裹标题作用:通用功能和安全过滤
功能特点:
$_GET、$_POST、$_COOKIE)使用方法:
include_once("inc/common.inc.php");使用场景:
注意事项:
auth.inc.php 或 header.inc.php,无需重复包含作用:数据库操作类
功能特点:
使用方法:
include_once("inc/td.class.php");使用场景:
注意事项:
auth.inc.php,无需重复包含四个核心文件之间存在引用关系,了解这些关系可以避免重复包含:
auth.inc.php
├── common.inc.php (已包含)
└── td.class.php (已包含)
header.inc.php
└── common.inc.php (已包含)
td.class.php
└── db_config.php (数据库配置)推荐引用策略:
页面类型 | 推荐包含 |
|---|---|
需要权限验证的页面 | auth.inc.php |
公开页面但需要标准界面 | header.inc.php |
仅需数据库操作 | td.class.php |
仅需安全过滤 | common.inc.php |
通达OA采用PHP的gettext扩展实现国际化(i18n)。所有中文字符串需要使用 _() 函数包裹:
$HTML_PAGE_TITLE = _("新闻");
echo _("欢迎使用通达OA");国际化目录结构:
webroot\static\lang
├── zh_CN # 简体中文
│ └── LC_MESSAGES
│ └── oa.mo
├── en_US # 英文
│ └── LC_MESSAGES
│ └── oa.mo
└── ... # 其他语言根据官方文档,以下目录在备份时必须包含:
MYOA\attach:附件文件MYOA\data5:数据库文件MYOA\webroot\attachment:头像和配置文件建议定期备份以上目录,确保数据安全。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。