$xoopsOption['template_main']來指定,需註冊到xoops_version.php中的$modversion['templates']中,如此,XOOPS會自動將之存入資料庫,提供線上編輯樣板或模組自訂樣板功能。$xoopsTpl,在php檔中套用變數到樣板的語法為:
$xoopsTpl->assign('樣板變數名稱' , $PHP變數);
<{$樣板變數名稱}>
$xoops_rootpath 是XOOPS實際安裝路徑):
<{includeq db="$xoops_rootpath/modules/模組名稱/templates/有註冊的樣板檔.tpl"}>
<{includeq file="$xoops_rootpath/modules/模組名稱/templates/op_`$op`.tpl"}>
$op = 'snews_list'; 就執行 snews_list() 函數,並套用 op_snews_list.tpl樣板$物件 = new PHP_Class();
$物件->方法();
$物件->render();以產生程式碼。include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php");
$form = new XoopsThemeForm('標題', 'name', 'main.php', 'post', '使用token' , '摘要');
$form->addElement($元件變數, $是否必填);
$標籤元件 =new XoopsFormLabel('標題', '內容');
$文字輸入=new XoopsFormText('標題', 'name', 大小 , 最大長度 , '值');
$隱藏欄位 =new XoopsFormHidden('name', '值');
$安全檢查 =new XoopsFormHiddenToken('XOOPS_TOKEN',360);
//上傳欄位
$form->setExtra("enctype='multipart/form-data'");
$File =new XoopsFormFile('標題', 'name', '2048');
$密碼欄位=new XoopsFormPassword('標題', 'name', 大小, 最大長度, '值');
$大量文字=new XoopsFormTextArea('標題', 'name', '值' , 列高 , 欄寬);
$文字日期=new XoopsFormTextDateSelect('標題', 'name', 大小, '值');
$日期時間=new XoopsFormDateTime('標題', 'name', 大小, '值');
$XOOPS編輯器=new XoopsFormDhtmlTextArea('標題' , 'name', '值' , 欄寬 , 列高);
$按鈕 =new XoopsFormButton('標題', 'name', '值', '類型');
$複選方塊 = new XoopsFormCheckBox('標題', 'name', '值','id');
$單選鈕 = new XoopsFormRadio('標題', 'name', '值');
$是否單選=new XoopsFormRadioYN('標題', 'name', '值');
$下拉選單=new XoopsFormSelect('標題', 'name', '預設值', 大小, 多選);
$群組核選=new XoopsFormSelectCheckGroup('標題', 'name', '值', 大小 ,多選);
$國家選單=new XoopsFormSelectCountry('標題', 'name', 'TW', 大小);
$編輯器選單=new XoopsFormSelectEditor(&$form, 'name', '值', 使用HTML , 可選編輯器陣列);
$群組選單=new XoopsFormSelectGroup('標題', 'name', 含訪客, '值', 大小 ,多選);
$語系選單=new XoopsFormSelectLang('標題', 'name', '值', 大小);
$比對選單=new XoopsFormSelectMatchOption('標題', 'name', '值', 大小);
$佈景選單=new XoopsFormSelectTheme('標題', 'name', '值', 大小);
$時區選單=new XoopsFormSelectTimezone('標題', 'name', '值', 大小);
$使用者選單=new XoopsFormSelectUser('標題', 'name', 含訪客, '值', 大小 ,多選);
$表單元件->addOption('選單值1', '顯示值1', false);
$options['選單值2']='顯示值2'; $options['選單值3']='顯示值3'; $表單元件->addOptionArray($options);
$snews_form=$form->render();
include_once XOOPS_ROOT_PATH . "/class/xoopseditor/tinymce/formtinymce.php"; $options['caption'] = "文章內容"; $options['name'] = 'content'; $options['value'] = $content; $options['width'] = '100%'; $options['height'] = '400px'; $form->addElement(new XoopsFormTinymce($options));
include_once XOOPS_ROOT_PATH . "/modules/tadtools/ck.php";
$ck = new CKEditor("snews", "content", $content);
$ck->setHeight(350);
$editor = $ck->render();
$form->addElement(new XoopsFormLabel('文章內容', $editor));
$ck->setToolbarSet('tadSimple');
有四個值可用:my、myBasic、mySimple、tadSimple
MyTextSanitizer 文字過濾工具來處理
$myts = MyTextSanitizer::getInstance(); $過濾後的文字=$myts->addSlashes($過濾前文字);
addSlashes()會針對文字中的特殊符號加入脫逸斜線,以順利存入資料庫中,非常常用。
foreach ($_POST as $k => $v) {
$$k = $myts->addSlashes($v);
}
$xoopsDB$xoopsDB 已經內建,無須自行實體化,直接用即可。$xoopsDB樣板物件,記得用global $xoopsDB,才能使用。
$tbl = $xoopsDB->prefix('資料表名稱'); //自動加上資料表前置字串
$xoopsDB->query($sql); //執行SQL語法(較安全)
$xoopsDB->queryF($sql); //強制執行SQL語法
$sn=$xoopsDB->getInsertId(); //取得最後新增的編號
$data=$xoopsDB->fetchRow($result);
//抓回以數字為索引的資料陣列,得到的結果會像:$data[0]、$data[1]、$data[2]...這樣的,可搭配list($sn,$title,$content)=$data 來將內容指派到變數中。
$data=$xoopsDB->fetchArray($result);
//抓回以欄名為索引的資料陣列,得到的結果會像:$data['sn']、$data['title']、$data['content']...這樣的
$xoopsUser 物件,若沒有該物件表示未登入。$xoopsUser物件方法:
$使用者編號 = $xoopsUser->uid(); $真實姓名 = $xoopsUser->name(); $登入帳號= $xoopsUser->uname(); $Email= $xoopsUser->email(); $個人網站= $xoopsUser->url(); $使用者頭像= $xoopsUser->user_avatar(); //會傳回如:avatars/cavt50877193c9788.png
$xoopsUser物件導致錯誤:
$uid = ($xoopsUser)?$xoopsUser->uid():0;
$uid_name = XoopsUser::getUnameFromId($uid,1); if(empty($uid_name))$uid_name=XoopsUser::getUnameFromId($uid,0);
/modules/tadtools/TadUpFiles.php來觀看使用,說明寫在裡面xx_snews_files_center,並將該表結構加入mysql.sql
CREATE TABLE `模組名稱_files_center` (
`files_sn` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '檔案流水號',
`col_name` varchar(255) NOT NULL default '' COMMENT '欄位名稱',
`col_sn` smallint(5) unsigned NOT NULL default 0 COMMENT '欄位編號',
`sort` smallint(5) unsigned NOT NULL default 0 COMMENT '排序',
`kind` enum('img','file') NOT NULL default 'img' COMMENT '檔案種類',
`file_name` varchar(255) NOT NULL default '' COMMENT '檔案名稱',
`file_type` varchar(255) NOT NULL default '' COMMENT '檔案類型',
`file_size` int(10) unsigned NOT NULL default 0 COMMENT '檔案大小',
`description` text NOT NULL COMMENT '檔案說明',
`counter` mediumint(8) unsigned NOT NULL default 0 COMMENT '下載人次',
`original_filename` varchar(255) NOT NULL default '' COMMENT '檔案名稱',
`hash_filename` varchar(255) NOT NULL default '' COMMENT '加密檔案名稱',
`sub_dir` varchar(255) NOT NULL default '' COMMENT '檔案子路徑',
PRIMARY KEY (`files_sn`)
) ENGINE=MyISAM;
function.php中
include_once XOOPS_ROOT_PATH . "/modules/tadtools/TadUpFiles.php";
$TadUpFiles = new TadUpFiles("snews");
$允許格式,如:.jpg,.png)
$form->setExtra("enctype='multipart/form-data'");
$TadUpFiles->set_col('sn', $sn);
$upform=$TadUpFiles->upform($顯示編輯, $名稱, $數量, $顯示列表, $允許格式, $顯示縮圖);
$form->addElement(new XoopsFormLabel('上傳封面圖', $upform));
$TadUpFiles->set_col($sn, $sn);
$TadUpFiles->upload_file('$名稱', $圖寬, $縮圖寬, $更新編號 , $圖說, $安全檔名, $檔名加密, $指定傳回值, $允許格式);