WeCenter 二次开发基础说明(模块开发)

jat
jat This guy is lazy,Introduction has not been set

52 People liked this article · 15925 views

WeCenter组件,活动模块,工单模块等都是一个独立的模块,升级覆盖不影响功能使用,可以理解成一个需要执行sql的插件。  一. 组件文件目录结构说明 一般来说,一个模块需要下面几个文件,假设模块名为AA,则

app/AA – 应用目录 models/AA.php – 模型目录 static/css/default/AA.css – 静态文件 views/default/AA – 模板目录

二. URL 路由 WeCenter 有一个解析能力强大的 URL 路由,模块AA的访问设置如下 1. 动作访问:

/模块名/控制器/动作/ID ID 为 id 查询, 例: 模块名/login/123, 则在 login 控制器中 $_GET['id'] 的值为 123 (*) 如果使用 /模块名/控制器/动作/ID 格式 Query string 的使用可以参照 兼容性的支持 (*) 如果动作在 main 控制器中可以省略, 例: 模块名/main/login/ 等同于 account/login/ (*) 如果动作名为 index 可以省略,  例: 模块名/login/index/ 等同于 account/login/

2. Query string WeCenter 的查询字符串为使用 __ 分隔参数, 使用 – 为参数赋值, 在程序中直接使用 $_GET 取出内容

常规的: account/login/?return_url=1&callback=2 WeCenter 的: account/login/return_url-1__callback-2 (*) 在程序中输出 URL 请使用 get_js_url 函数, 因为这样会兼容 Rewrite 是否开启两种情况

3. 兼容性的支持 下面的几种 URL 形式在程序中都是被支持的:

http://domian/index.php?/question/id-320__column-log__source-doc http://domian/index.php?/question/320?column=log&source=doc http://domian/index.php?/question/?id=320&column=log&source=doc http://domian/index.php?/question/320?column-log__source-doc http://domian/index.php?/question/320&column-log__source-doc

三. 模板命名规则 程序中所有模板的存放规则为 模块/控制器/动作, 如果控制器为 main 则省略

如 account/main/login/ 对应的模板为 views/模板集/account/login.tpl.htm 如 account/setting/profile/ 对应的模板为 views/模板集/account/setting/profile.tpl.htm

  四. 自动引入机制 WeCenter 类库, Model 的使用都是不需要事先引入文件的, 这使得在编程过程中变得方便快捷, 也避免了类库重复实例化的问题, 但是使用自动引入机制需要遵循下面的规则. (*) 所有自动引入的类库都不需要事先实例化, 直接使用即可. 1. Model

放在 model 目录下, 文件名: name.inc.php 文件中需要有继承 AWS_MODEL 的 name_class (*) 在程序中使用方法: $this->model('name')->action(); (*) 可用范围: CONTROLLER, Model

2. System 类库

放在 system 目录之下, 类名相对于 system 目录, 将 / 换成 _ 例: Zend_Mail 路径: system/Zend/Mail.php 类名: Zend_Mail (*) 在程序中使用方法: new, 静态调用, load_class('class_name'); (*) 可用范围: 任意, 不需要带参数实例化建议使用 load_class

3. 配置文件

放在 system/config 目录之下, 文件内容为一个 $config 数组, 命名为 配置名.php (*) 在程序中使用方法: AWS_APP::config()->get('配置名')->数组下标 (*) 可用范围: 任意, 不需要带参数实例化建议使用 load_class 如需添加后台菜单,请在 system/config 目录下新建 admin_menu.extension.php 文件,格式与 admin_menu.php 一致。

五. 模板机制 WeCenter 的模板采用继承机制, 系统的 default 为主模板, 用户的自定义模板只需要更改很少的文件即可实现程序界面的定制.继承机制原理:

当管理员设定了一个 newstyle 模板, 用户访问首页 ⬇ 系统开始查找 views/newstyle/home/index.tpl.htm ⬇ 找到相应文件                                               找不到文件 ⬇                                                                   ⬇ 读取内容并 解析后显示                ⬅        读取 views/default/home/index.tpl.htm

建立模板集的方法: 1. 在 views 下面建立模板集目录 2. 在 static/css/ 下建立与模板集相同的目录, 我们建议从 static/css/default/ 拷贝一份内容到新建的模板集中, 然后开始修改工作. 六. 常用开发指导 JavaScript: 我们使用 jQuery 作为主要 framework, 载入的插件有: jQuery Form ( http://malsup.com/jquery/form/ ) AJAX Upload ( http://valums.com/ajax-upload/ ) Valums file Uploader (修改过) jQuery.ScrollTo (*) 在 Javascript 中判断用户是否登录判断全局变量 G_USER_ID 是否大于 0 即可 (*) 全局变量在 header 模板中 (*) 所有 JS 请求 URL 需要加上 G_BASE_URL 前缀 (*) 全局 ajax 列表函数使用 bp_load_more PHP: 关于 Zend Framwork 类库的使用方法请参考官方文档 (*) 在控制器中判断用户是否登录判断 $this->user_id 是否大于 0 即可 (*) 控制器与模板中始终可用 $this->user_id 和 $this->user_info (*) 控制器与 Model 中禁止使用构造函数, 可以用 setup() 函数替代 (*) 程序已经提供了两个中文处理函数 cjk_substr 和 cjk_strlen Access Rule:
public function get_access_rule()
{
// 规则类型
// white: actions 里的 action 全部用户可见, 其余 action 需要登录
// black: actions 里的 action 需要登录, 其余 action 全部用户可见
$rule_action["rule_type"] = 'white';
$rule_action["actions"] = array(
'check_username',
'check_email',
'register_process',
'login_process',
'register_agreement',
'send_valid_mail',
'valid_email_active',
'request_find_password',
'find_password_modify'
);
return $rule_action;
}
(*) 控制器中不加此函数, 则所有 action 必需登录可见 模板: (*) 在模板可以使用 PHP 代码, 全部静态类与 function, 但是不能使用 Model (*) 模板中 $this-> 中的内容是全局通用变量, 可以在模板中引入的模板使用, 模板内部产生的变量则不能 (*) TPL::output 方法第二个参数为 false 时, 内容会返回给变量不会输出, 可以利用此方法做 JS 调用或者代码重用

Published on 2015-02-05 12:23

Disclaimers:

This document is written by jat Original published on WeCenter ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister

随便换一个名字
2018-05-03 20:52
希望wecenter能火起来。
qqwsw
2017-03-02 09:45
很不错!!!!!!!!!!!!!!!
jtjing
2016-04-03 16:10
作者功力不够呀。写这个个几乎不可维护,还是以前那种cms 的时代。二次开发和官方升级几乎很难融合。
boshi
2015-11-12 14:34
怎么做模板,看不懂啊?
wx918
2015-11-09 17:22
很好,真是辛苦了!club.wiudnscom
逗比
2015-10-19 17:49
好 不知道开发团队能坚持多久
JIAOde
2015-07-31 12:11
厉害,挺你
qqsang
2015-06-09 11:12
能写出来就要支持,辛苦了
abcalmas
2015-05-19 13:21
写的不错
Lazy_girl
2015-05-19 10:58
看了两遍竟然都没看懂!