4.
XOOPS的表單Class

一、 物件的基本動作
- PHP的Class(類)是一個物件藍圖
- 要讓Class有作用需要經過實體化(new)的動作:$物件 = new PHP_Class();
- 物件會有所謂的方法(method)其實就是函數,讓您對此物件進行設、取值或執行特定物件功能:$物件->方法();
- XOOPS的表單物件設定完,最後都需要進行$物件->render();以產生程式碼。
- 詳細的XOOPS Class請參考:http://dev.xoofoo.org/dev_xoops254/classes.html#letter_X
二、 XOOPS內建表單Class
- 要使用內建表單需先引入此行:
include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php");
- 建立一個表單:
$form = new XoopsThemeForm('表單標題', 'name', 'action.php', 'post', '使用token' , '摘要');
- 標籤元件:
$元件變數 =new XoopsFormLabel('標題', '內容');
- 文字輸入:
$元件變數 =new XoopsFormText('標題', 'name', 大小 , 最大長度 , '值');
- 隱藏欄位:
$元件變數 =new XoopsFormHidden('name', '值');
- 安全檢查:
$元件變數=new XoopsFormHiddenToken('XOOPS_TOKEN_REQUEST',360);
- 上傳欄位:
$form->setExtra("enctype='multipart/form-data'");
$元件變數 =new XoopsFormFile('標題', 'name', '2048');
- 密碼欄位:
$元件變數=new XoopsFormPassword('標題', 'name', 大小, 最大長度, '值');
- 大量文字:
$元件變數=new XoopsFormTextArea('標題', 'name', '值' , 欄寬 , 列高 , 'id');
- XOOPS編輯器:
$元件變數=new XoopsFormDhtmlTextArea('標題' , 'name', '值' , 欄寬 , 列高);
- 複選方塊:
$元件變數 = new XoopsFormCheckBox('標題', 'name', '值','id');
- (1) $元件變數->setValue($多重預設值陣列);
- (2) $元件變數->addOption('選單值1', '顯示值1', false);
- (3) $options['選單值2']='顯示值2';
$options['選單值3']='顯示值3';
$元件變數->addOptionArray($options);
- 單選鈕:(選項及預設值設法同複選)
$元件變數 = new XoopsFormRadio('標題', 'name', '值');
- 是否單選:
$元件變數=new XoopsFormRadioYN('標題', 'name', '值');
- 下拉選單:(選項及預設值設法同複選,多選預設false)
$元件變數=new XoopsFormSelect('標題', 'name', '預設值', 大小, 多選);
- 群組核選:(多選預設false)
$元件變數=new XoopsFormSelectCheckGroup('標題', 'name', '值', 大小 ,多選);
- 國家選單:(值:TW)
$元件變數=new XoopsFormSelectCountry('標題', 'name', '值', 大小);
- 編輯器選單:(使用HTML預設false )
$元件變數=new XoopsFormSelectEditor(&$form, 'name', '值', 使用HTML , 可選編輯器陣列);
- 群組選單:(含訪客預設false,多選預設false)
$元件變數=new XoopsFormSelectGroup('標題', 'name', 含訪客, '值', 大小 ,多選);
- 語系選單:(值tchinese_utf8,多選預設false)
$元件變數=new XoopsFormSelectLang('標題', 'name', '值', 大小);
- 比對選單:
$元件變數=new XoopsFormSelectMatchOption('標題', 'name', '值', 大小);
- 佈景選單:
$元件變數=new XoopsFormSelectTheme('標題', 'name', '值', 大小);
- 時區選單:
$元件變數=new XoopsFormSelectTimezone('標題', 'name', '值', 大小);
- 使用者選單:(含訪客預設false,多選預設false)
$元件變數=new XoopsFormSelectUser('標題', 'name', 含訪客, '值', 大小 ,多選);
- 按鈕:(類型:submit或reset)
$元件變數 =new XoopsFormButton('標題', 'name', '值', '類型');
- 把元件加入表單中:
$form->addElement($元件變數);
- 把幾個元件組合在一起,並放到表單中:
1 | $Tray1 = new XoopsFormElementTray( '標題' , ' ' , 'name' ); |
2 | $Tray1 ->addElement( new XoopsFormButton( '' , 'name' , '送出' , 'submit' )); |
3 | $Tray1 ->addElement( new XoopsFormButton( '' , 'name' , '清除' , 'reset' )); |
4 | $form ->addElement( $Tray1 ); |
- 產生表單程式碼:
$f=$form->render();
三、 寫入資料庫
- PHP的寫法:
1 | $sql = "insert into `xx_tad_note_cate` (`cate_title` , `cate_sort` , `cate_enable`) values('$cate_title' , '$cate_sort' , '$cate_enable')" ; |
2 | mysql_query( $sql ) or die (mysql_error()); |
- XOOPS的寫法:
1 | $sql = "insert into " . $xoopsDB ->prefix( "tad_note_cate" ). " (`cate_title` , `cate_sort` , `cate_enable`) values('$cate_title' , '$cate_sort' , '$cate_enable')" ; |
2 | $xoopsDB ->queryF( $sql ) or redirect_header( 'cate.php' , 3, mysql_error()); |