moodle架構分析 表現層的設計(一)

2021-08-27 15:03:26 字數 4054 閱讀 5210

moodle在表現層的實現有多種機制,分別針對頁面、表單、導航條、頁面頭部、頁面底部等。

1、針對頁面的實現,直接編輯html頁面,然後在業務邏輯處理完畢之後,include編輯好的html頁面即可。這種機制的實現可以看login/index.php和 login/index_form.php頁面。

2、針對表單的實現,一般是建立乙個父類為moodleform的類,如

class test_form extends moodleform 

//定義過濾

function definition_after_data(){}

//定義驗證邏輯

function validation($data, $files) {}

}

然後,業務邏輯層中宣告test_form物件,即

$test = new test _form();
最後呼叫test_form物件的display方法,即可把表單物件顯示出來。

$test ->display();
表單元素的型別和規則如下:

$globals['html_quickform_element_types'] =

array(

'group' =>array('html/quickform/group.php','html_quickform_group'),

'hidden' =>array('html/quickform/hidden.php','html_quickform_hidden'),

'reset' =>array('html/quickform/reset.php','html_quickform_reset'),

'checkbox' =>array('html/quickform/checkbox.php','html_quickform_checkbox'),

'file' =>array('html/quickform/file.php','html_quickform_file'),

'image' =>array('html/quickform/image.php','html_quickform_image'),

'password' =>array('html/quickform/password.php','html_quickform_password'),

'radio' =>array('html/quickform/radio.php','html_quickform_radio'),

'button' =>array('html/quickform/button.php','html_quickform_button'),

'submit' =>array('html/quickform/submit.php','html_quickform_submit'),

'select' =>array('html/quickform/select.php','html_quickform_select'),

'hiddenselect' =>array('html/quickform/hiddenselect.php','html_quickform_hiddenselect'),

'text' =>array('html/quickform/text.php','html_quickform_text'),

'textarea' =>array('html/quickform/textarea.php','html_quickform_textarea'),

'link' =>array('html/quickform/link.php','html_quickform_link'),

'advcheckbox' =>array('html/quickform/advcheckbox.php','html_quickform_advcheckbox'),

'date' =>array('html/quickform/date.php','html_quickform_date'),

'static' =>array('html/quickform/static.php','html_quickform_static'),

'header' =>array('html/quickform/header.php', 'html_quickform_header'),

'html' =>array('html/quickform/html.php', 'html_quickform_html'),

'hierselect' =>array('html/quickform/hierselect.php', 'html_quickform_hierselect'),

'autocomplete' =>array('html/quickform/autocomplete.php', 'html_quickform_autocomplete'),

'xbutton' =>array('html/quickform/xbutton.php','html_quickform_xbutton')

);$globals['_html_quickform_registered_rules'] = array(

'required' => array('html_quickform_rule_required', 'html/quickform/rule/required.php'),

'maxlength' => array('html_quickform_rule_range', 'html/quickform/rule/range.php'),

'minlength' => array('html_quickform_rule_range', 'html/quickform/rule/range.php'),

'rangelength' => array('html_quickform_rule_range', 'html/quickform/rule/range.php'),

'email' => array('html_quickform_rule_email', 'html/quickform/rule/email.php'),

'regex' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'lettersonly' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'alphanumeric' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'numeric' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'nopunctuation' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'nonzero' => array('html_quickform_rule_regex', 'html/quickform/rule/regex.php'),

'callback' => array('html_quickform_rule_callback', 'html/quickform/rule/callback.php'),

'compare' => array('html_quickform_rule_compare', 'html/quickform/rule/compare.php')

);

具體可以檢視lib/pear/html/quickform.php,和各個表單元素和規則的實現檔案。

物件導向 三層架構(表現層 業務層 持久層)

持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層的目的就是,完成物件資料和關係資料的轉換。業務層 採用事務指令碼模式。將乙個業務中所有的操作封裝成乙個方法,同時保證方法中所有的資料庫更新操作,即保證同時成或同時失敗。避免部分成功部分失敗...

物件導向 三層架構(表現層 業務層 持久層)

三層架構 即表現層 業務層 持久層。持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層 的目的就是,完成物件資料和關係資料的轉換。業務層 採用事務指令碼模式。將乙個業務中所有的操作封裝成乙個方法,同時保證方法中所有的資料庫更新操作,即保證...

物件導向 三層架構(表現層 業務層 持久層)

三層架構 即表現層 業務層 持久層。持久層 採用dao模式,建立實體類和資料庫表對映 orm對映 也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層的目的就是,完成物件資料和關係資料的轉換。dao設計模式一般分為幾個類 1.vo value object 乙個用於存放網頁的一行資料即一條記錄的類,比...