Web GUI-MVC-多語系統發展框架

6 篇文章 / 0 new
最新文章
author
Web GUI-MVC-多語系統發展框架
完成一套 MVC 的 Web 開發核心框架
Controller : 使用 apache + php 進行程序控制.
Model : 可選擇使用 PDO 或 Adobe 其中一種模式進行資料庫處理.
View : 完全採用 javascript 進行畫面呈現, 讓操作更貼近一般桌面程式的使用習慣.

主畫面
左方為選單區, 依使用者擁有的權限來呈現.
右方為作業區, 採用 頁次 模式, 不必開啟多個視窗來操作, 再同一視窗即可同時進行多項作業.

資料編輯 : 滑鼠在該筆點選左鍵兩次即可進行(如同一般桌面程式方便)
author
Master/Detail 資料作業型態 - 訂單範例
作業畫面
訂單資料編輯
author
Model 程式撰寫
只要繼承 GridDB 一個單純資料表維護, 只要定義好每個欄位資料, select, insert, update, delete 也就完成
就是如此輕鬆, 讓效率加倍
class PartType extends GridDB {
    public function __construct() {
        parent::__construct();
        $this->connect();
        $this->setTable('parttype');
        $field = 'item_id'; //id
        $id = $this->useIntField($field, TRUE, $field, 60, FALSE, FALSE, FALSE, TRUE);
        $this->setKeyField($id);
        $this->addField($id);
        //
        $field = 'item_name';//名稱
        $this->addField( $this->useTextField($field, false, $field, 150,30, TRUE, TRUE) );
        $field = 'ps';//簡稱
        $this->addField( $this->useTextField($field, true, $field, 300,50) );
        $field = 'edit_user';//異動者
        $this->addField( $this->useTextField($field, true, $field, lang('user width')) );
        $field = 'edit_date';//異動日期
        $this->addField( $this->useDateField($field, TRUE, lang('datetime format'), $field, lang('datetime width'), FALSE, FALSE) );
        //
        $this->setAliasFieldList();
    }
}
author
Controller 程式撰寫
可以說發展整個系統, 流程管控模式幾乎與下列程式碼均相似, 就是這樣簡潔, 明瞭且便於流程維護作業
$action = $_REQUEST['action'];
$handler->loadModel('partdb_m');
$tar = new PartDB;
switch ($action) {
    case 'read':
        echo $tar->read($_POST);
        break;
    case 'create':
        echo $tar->create($_POST);
        break;
    case 'update':
        echo $tar->update($_POST);
        break;
    case 'destroy':
        echo $tar->destroy($_POST);
        break;
    case 'edit':
        echo $tar->edit($_POST['id'], $_POST);
        break;
}
author
View 程式撰寫
整個系統發展 View 算是需要多花些心力的地方, 畢竟是給使用者操作, 總是會有不同的要求出現, 但View 全是使用 javaScript 撰寫, 因此一些元件自然可以早先製作完成, 使用時僅需 new 出來, 然後帶入必要參數就完成, 所以也是相當輕鬆容易,

下為使用一個表格(Grid)來呈現資料, 並提供編輯的範例, 一個使用者GUI介面就完成了, 呈現的就是主畫面中的資料類型維護.
view_script = true;  
partType_url = 'app.view.php?id=' + page;  
 
var editor_PartType = new DefaultGrid({
    border:false,
    remoteSort:true,
    storeUrl:partType_url,
    colStartEdit:1,
    sortInfo:{ field:'item_name', direction:'ASC' },
    //設定功能鍵權限
    tbarDisable:{
        add:!ROLE.ADD_DATA,
        save:!ROLE.SAVE_DATA,
        autosave:!ROLE.SAVE_DATA,
        remove:!ROLE.REMOVE_DATA
    }    
});
 
var main_content = {
    id : id_panel,  
    title: n.text,  
    iconCls:n.attributes.iconCls,  
    items : [editor_PartType]
};
author
多語系維護
1. 系統的多語系維護相當容易且輕鬆套用在程式中使用, 語系增減時不需成重啟系統或更動資料庫, 程式, 僅需將語系檔放置指定目錄或移除, 即可完成語系增減.

2. 程式中有需要使用多語系的文字, 僅需套用 lang("xxx"); 即可依使用者所指定的語系自動替換

3. 多語系維護內容格式如下
return array(
    'execute query error' => 'SQL 執行失敗: {0} \n 錯誤訊息: {1}',
    '_phone' => '電話',
    '_faxphone' => '傳真',
    '_email' => '電子信箱',
    '_ps' =>'備註'
); // array
發表回應前,請先登入
Free Web Hosting