etable手冊
login 載入 DB.php 繼承 DB序 | 引數 | 屬性名 | 資料型態 | 預設值 | MVC | 新增屬性 |
---|---|---|---|---|---|---|
1 | 查詢命令 | sql | 字串或陣列 | 無 | M | |
2 | 顯示「插,編,刪」連結 | editable | 整數 | 0 | V | editable |
3 | 每頁筆數 | perpage | 整數 | 15 | C | |
4 | 欄名代稱 | colAlias | 陣列 | 空陣列 | M | |
5 | 額外欄 | moreCol | 陣列 | 空陣列 | V | |
6 | 顯示型態 | dispType | 字串 | disp_table | V | |
7 | 可「插編刪」諸表 | editables | 陣列 | 空陣列 | M | |
8 | 表單中諸欄描述 | formType | 陣列 | 空陣列 | M | field[$i][formType] |
9 | 是否翻譯 | tran | 布林 | 0 | C | |
10 | 輸入驗證 | formValidate | 布林 | 0 | C | field[$i][formValidate] |
由於多表且各表可能有代稱,所以定義:
表代稱(as_name),例如select * from DVD as d,d即為表DVD之代稱。
長欄名(lc_name),只有一表時為「欄名」,多表時為「表代稱.欄名」。例如select Name from DVD as d,「d.Name」即為長欄名(lc_name)。
一、$sql:查詢命令,須為select,不可帶limit。
可為字串,亦可為陣列。
(一)字串:
(二)陣列:
二、$editable:顯示「插,編,刪」連結。
三、$perpage:每頁筆數。
四、$colAlias:欄名代稱。
五、$moreCol:額外欄。
六、$dispType:顯示型態。
七、$editables:可插諸表,可編諸表,可刪諸表。
八、$formType:指定欄位的表單元件型態。
作用於以下方法:main 中 輸出蒐尋排序表單、javascript之驗證區、相依選單前置處理,ana_fields 之 抄入或製作各欄之 formType 屬性,disp_table_body 中欄數的決定,col_value 中各欄顯示值的決定,form_edit 及 form_ins 中 hidden 及 unix_time之條件處理,addElements 中 hidden外其他欄型處理。給程式產生器用的 search 段處理函式。
$formType=array('長欄名'=>array('select',array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)), '長欄名'=>array('select2',第一選單陣列,第二選單長欄名,第二選單二維陣列,第二選單以提示代表欄值), '長欄名'=>array('select22',array(0=>'===請選擇===')), '長欄名'=>array('searchSelect', array(''=>'===請輸入姓名或公司名稱===')), '長欄名'=>array('radio' ,array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)), '長欄名'=>array('radioyn',array('0之提示','1之提示')), '長欄名'=>array('checkbox',array('勾選後送值'=>'提示')), '長欄名'=>array('date',array('ifFormat'=>'daFormat')),改畢,因欄值'%Y-%m-%d'是小日曆認得的格式,所以預選日期為欄值日期 '長欄名'=>array('auto',array('plain','html','wiki','tex')),改畢,$this->formType中未定義,則$this->fields[$i]["formType"]會自動將該欄定為auto型,如欄型為TEXT則form出textarea,其他出文字欄。第二元素為語法組合陣列,預設為plain(純文本)。 '長欄名'=>array('hidden',函式,表單種類), '長欄名'=>array('function',函式名), '長欄名'=>array('password',array('編碼方式'=>'編碼指示')),編碼方式目前有plain,其指示為1,MD5其指示有 '長欄名'=>array('unix_time',"Y-m-d<bR>H:i:s",表單種類),待改,因欄值'%s'是小日曆不認得的格式,所以預選日期為跑到當天日期,要認得欄值格式須為「年-月-日 [10] 時:分」,用Calendar.setDateFormat('%s');無效。此事無解,參看http://192.168.3.175/et/class/calendar/jstest.htm,不是每一種格式jscalendar都可以認得出日期,如Date #0:的%s會解不出日期,Date #2:的…會解錯日期,Date #4:解不出日期。 '長欄名'=>array('oneWaySwitch',array(0=>'按鈕字',值=>'按完字')), '長欄名'=>array('wrap'), );
型態 | 插表單中 | 編表單中 | body不翻譯時 | body翻譯時 |
---|---|---|---|---|
select | select諸option | 值 | 提示文字 | |
radio | 諸radio | 值 | 提示文字 | |
radioyn | 兩radio | 值 | 提示文字 | |
checkbox | 一checkbox | 值 | 提示文字 | |
date | yy-mm-dd及小日曆 | 值 | 值 | |
unix_time | 小日曆 | 指定的date()樣式 | ||
隱藏欄後送mktime() | ||||
hidden | 隱藏欄後送函式值 | 不顯示 |
九、$tran:是否翻譯。
十、$formValidate:輸入驗證陣列。
'.+' 必填 '^[^\\s]+@[^\\s]+\\.[^\\s]+$' email '^[1-9]\\d*$' 正整數 '^[A-Z]{1}[0-9]{9}$' 身份證號 '^(\\d+|[1-9]\\d*)$' 非負整數 '^(-?(\\d+|[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+))$' 數字 '^(\\d+|[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+)$' 非負數值 '^((19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))$' 合理的日期