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 乙個用於存放網頁的一行資料即一條記錄的類,比...