一. 文件目錄結構說明

app - 應用目錄

models – 模型目錄

plugins – 插件目錄

static – 靜態文件

system – 系統目錄

views – 模板目錄


. URL 路由

WeCenter 有一個解析能力強大的 URL 路由

1. 動作訪問:

/模塊名/控制器/動作/ID

ID 為 id 查詢, 例: account/login/123, 則在 login 控制器中 $_GET[‘id’] 的值為 123

(*) 如果使用 /模塊名/控制器/動作/ID 格式 Query string 的使用可以參照 兼容性的支持

(*) 如果動作在 main 控制器中可以省略, 例: account/main/login/ 等同于 account/login/

(*) 如果動作名為 index 可以省略,? 例: account/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


. 模板機制

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 調用或者代碼重用

官方電話400-0800-558
400-0800-558
官方郵箱business@simpotech.net
business@simpotech.net
server@wecenter.com(技術)
WeCenter客服電話
WeCenter官方微信
返回頂部
亚洲AV片不卡无码一