Etable/開發:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
由工作函式定義之函數
第 3 行: 第 3 行:
  
 
可參考[http://blog.roodo.com/rocksaying/archives/2884871.html 混成]
 
可參考[http://blog.roodo.com/rocksaying/archives/2884871.html 混成]
==由工作函式定義之函數==
+
==使用由工作函式定義之函數==
 
===batch===
 
===batch===
 
*batch屬性為陣列,每一元素之索引為按鈕提示,每一元素之名函式名。
 
*batch屬性為陣列,每一元素之索引為按鈕提示,每一元素之名函式名。
 
*諸函式在前置處理時執行。
 
*諸函式在前置處理時執行。
 +
===banE===
 +
*範例:
 +
*#設 $物件->banE='banE';
 +
*#<pre>function banE($row){
 +
if($row[幾]!=$_SESSION['login_user']){
 +
$row['banEdit']=1;
 +
$row['banErase']=1;
 +
}
 +
return $row;
 +
}</pre>
  
 
+
===banV===
  
 
==對編刪連結產生限制==
 
==對編刪連結產生限制==

2015年3月12日 (四) 07:55的修訂版本

PHP是否允許已在的類別或物件再增添新方法,待查。

可參考混成

使用由工作函式定義之函數

batch

  • batch屬性為陣列,每一元素之索引為按鈕提示,每一元素之名函式名。
  • 諸函式在前置處理時執行。

banE

  • 範例:
    1. 設 $物件->banE='banE';
    2. function banE($row){
      
if($row[幾]!=$_SESSION['login_user']){ $row['banEdit']=1; $row['banErase']=1; } return $row; }

banV

對編刪連結產生限制

  • 在工作程式中定義一個函式ban,引數為 $row 及 $session ,return 回來 兩個判別變數。
  • 在 mk_rows 方法中,引用上面的函式,利用一維陣列諸值及 session 變數,去算出兩個判別變數,抑制編和抑制刪,放入 $this->tbl
  • 各種顯示方法要抽出編和刪的部分,一般化成某函式
  • 由判別變數去決定某函式中要不要抑制編和抑制刪。

求欄值

以欄序逐一處理。

  1. text欄或bolb欄
    • 欄值為二進位內容,並不秀出內容,而是秀出提示
    • wiki 語法欄,轉成 HTML 顯示
    • flag未帶binary或演算式者為text欄,進一步判讀是否為HTML格式
  2. unix_time欄依格式指示顯示
  3. oneWaySwitch秀按鈕
  4. 連動選單的第二選單:秀提示或'------'
  5. 交代要轉成提示者轉成提示
  6. 轉換數學公式

欄位種類

派值範例:
  $formType=array('長欄名'=>array('select',array('值'=>'提示文字','值'=>'提示文字','值'=>'提示文字',…)),
                  '長欄名'=>array('select2',第一選單陣列,第二選單長欄名,第二選單二維陣列,第二選單以提示代表欄值),
                  '長欄名'=>array('select22',array(0=>'===請選擇===')),
                  '長欄名'=>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('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('searchSelect',array(''=>'===輸入提示===')),
                  '長欄名'=>array('function',函式名),
                  );

函式欄

表示法如派值範例。

函式寫在工作程式中,以欄值為唯一引數。

若未設定翻譯,秀原欄值;若設定翻譯,秀函式返回值。

searchSelect 欄

配合的表單元件

  • formcatchtext.php:產生文字輸入區,沒name沒id,但可決定回應要從那一個id當中冒出來。
  • formselect-et.php:產生span包select或單純的select
    1. XoopsFormSelect方法增加最後一個引數:$asSpan,預設為0
    2. render方法依$asSpan的值決定select外面要不要加span,以及id要派給外層span還是內層的select
    3. 如果沒有設 id ,以name為id。