2024年4月16日发(作者:)
Anwsion二次开发基础说明
一.文件目录结构说明
app-
应用目录
account-用户账户
controller
c_openid_-
微博登录相关
c_ajax_
c_qq_-
腾讯微博相关
c_find_password_-找回密码
c_setting_-设置
c_main_-
综合
c_sina_-
新浪微博相关
model
account_-用户账户
qq_weibo_-
腾讯微薄
active_-账号激活
reputation_-威望计算
sina_weibo_-
新浪微薄
draft_-草稿
system_-系统功能
education_-教育
ucenter_-UCenter
work_-
工作
online_-在线时长
file-
文件下载
inbox-
站内信
people-用户资料
search-搜索
admin-
后台
follow-
关注相关
invitation-邀请
publish-
发布
topic-话题
crond-计划任务
model
crond_-
计划任务配置
home-主页
model
index_-首页调用计算
module_-
模板
Block
调用
notifications-
通知
model
notify_-通知功能
question-
问题
upgrade-升级脚本
二.URL路由
Anwsion有一个解析能力强大的URL路由
1.动作访问:
/
模块名
/
控制器
/
动作
/ID
ID为id查询,例:account/login/123,则在login控制器中$_GET[‘id’]的值为
123
(*)如果使用/模块名/控制器/动作/ID格式Querystring的使用可以参照兼容性的
支持
(*)如果动作在main控制器中可以省略,例:account/main/login/等同于
account/login/
(*)
如果动作名为
index
可以省略
,
例
:account/login/index/
等同于
account/login/
tring
Anwsion
的查询字符串为使用
__
分隔参数
,
使用
-
为参数赋值
,
在程序中直接使
用$_GET取出内容
常规的
:account/login/?return_url=1&callback=2
Anwsion的:account/login/return_url-1__callback-2
(*)在程序中输出URL请使用get_js_url函数,因为这样会兼容Rewrite是否开启
两种情况
3.
兼容性的支持
下面的几种URL形式在程序中都是被支持的:
domian/?/question/id-320__column-log__source-doc
domian/?/question/320?column=log&source=doc
domian/?/question/?id=320&column=log&source=doc
domian/?/question/320?column-log__source-doc
domian/?/question/320&column-log__source-doc
三.模板命名规则
程序中所有模板的存放规则为模块
/
控制器
/
动作
,
如果控制器为
main
则省略
如account/main/login/对应的模板为views/模板集/account/
如account/setting/profile/对应的模板为views/模板集/account/setting/
四
.
自动引入机制
Anwsion类库,Model的使用都是不需要事先引入文件的,这使得在编程过程中变得方便快
捷,也避免了类库重复实例化的问题,但是使用自动引入机制需要遵循下面的规则.
(*)
所有自动引入的类库都不需要事先实例化
,
直接使用即可
.
放在每一个模块的model目录下,文件名:name_
文件中需要有继承AWS_MODEL的name_class
(*)在程序中使用方法:$this->model(‘name’)->action();
(*)可用范围:控制器,Model
类库
放在
system
目录之下
,
类名相对于
system
目录
,
将
/
换成
_
例
:Zend_Mail
路径:system/Zend/
类名
:Zend_Mail
(*)在程序中使用方法:new,静态调用,load_class(‘class_name’);
(*)可用范围:任意,不需要带参数实例化建议使用load_class
3.配置文件
放在
system/config
目录之下
,
文件内容为一个
$config
数组
,
命名为配置
名.php
(*)在程序中使用方法:AWS_APP::config()->get(‘配置名’)->数组下标
(*)
可用范围
:
任意
,
不需要带参数实例化建议使用
load_class
五.模板机制
Anwsion
的模板采用继承机制
,
系统的
default
为主模板
,
用户的自定义模板只需要更改很
少的文件即可实现程序界面的定制.
继承机制原理:
当管理员设定了一个
newstyle
模板
,
用户访问首页
⬇
系统开始查找views/newstyle/home/
⬇
找到相应文件
⬇
读取内容并
解析后显示
找不到文件
⬇
⬅读取views/default/home/
建立模板集的方法:
1.在views下面建立模板集目录
2.
在
static/css/
下建立与模板集相同的目录
,
我们建议从
static/css/default/
拷贝一
份内容到新建的模板集中,然后开始修改工作.
六
.
常用开发指导
JavaScript:
我们使用jQuery作为主要framework,载入的插件有:
jQueryForm(/jquery/form/)
AJAXUpload(/ajax-upload/)
jQueryDateInput
ValumsfileUploader(修改过)
To
(*)
在
Javascript
中判断用户是否登录判断全局变量
G_USER_ID
是否大于
0
即
可
(*)全局变量在header模板中
(*)所有JS请求URL需要加上G_BASE_URL前缀
(*)
全局
ajax
列表函数使用
bp_load_more
PHP:
关于ZendFramwork类库的使用方法请参考官方文档
(*)
在控制器中判断用户是否登录判断
$this->user_id
是否大于
0
即可
(*)控制器与模板中始终可用$this->user_id和$this->user_info
(*)控制器与Model中禁止使用构造函数,可以用setup()函数替代
(*)
程序已经提供了两个中文处理函数
cjk_substr
和
cjk_strlen
AccessRule:
publicfunctionget_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->中的内容是全局通用变量,可以在模板中引入的模板使用,模板内
部产生的变量则不能


发布评论