create()
,其預設內容如下:
/**
* submission 編輯表單
*
* @param int $id 流水號
*
* @return void
*/
public static function create($id = '')
{
global $xoopsTpl, $xoopsUser;
Tools::chk_is_adm('', '', __FILE__, __LINE__);
//抓取預設值
$submission = (!empty($id)) ? self::get(['id' => $id]) : [];
//預設值設定
$def['id'] = $id;
$def['start'] = date("Y-m-d H:i");
$def['end'] = date("Y-m-d H:i");
$user_uid = $xoopsUser ? $xoopsUser->uid() : "";
$def['uid'] = $user_uid;
$def['create_time'] = date("Y-m-d H:i:s");
if (empty($submission)) {
$submission = $def;
}
foreach ($submission as $key => $value) {
$value = Tools::filter($key, $value, 'edit', self::$filter_arr);
$$key = isset($submission[$key]) ? $submission[$key] : $def[$key];
$xoopsTpl->assign($key, $value);
}
$op = (!empty($id)) ? "submission_update" : "submission_store";
$xoopsTpl->assign('next_op', $op);
//套用formValidator驗證機制
$formValidator = new FormValidator("#myForm", true);
$formValidator->render();
//投稿說明
$ck = new CkEditor("submission", "content", $content);
$ck->setHeight(200);
$ck->setVar('placeholder', '');
$editor = $ck->render();
$xoopsTpl->assign('content_editor', $editor);
My97DatePicker::render();
My97DatePicker::render();
//上傳表單
$TadUpFiles = new TadUpFiles("submission");
if ($id) {
$TadUpFiles->set_col("submission_id",$id);
//$TadUpFiles->set_dir('subdir', "/{$id}");
}
//$TadUpFiles->set_var("require", true); //必填
//$TadUpFiles->set_var("show_tip", false); //不顯示提示
$submission_files_create = $TadUpFiles->upform(true, "submission_files", "");
$xoopsTpl->assign('submission_files_create', $submission_files_create);
//加入Token安全機制
Utility::token_form();
}
Tools::chk_is_adm('', '', __FILE__, __LINE__);
用來檢查身份,預設為管理員,也就是只有管理原有權限,沒權限會被踢出。 $id
,則會根據之抓取預設值,若沒有,也可以視需求手動設定預設值,例如我們希望截止日期 $def['end']
預設是一個星期後,那麼可以這麼寫:
//抓取預設值
$submission = (!empty($id)) ? self::get(['id' => $id]) : [];
//預設值設定
$def['id'] = $id;
$def['start'] = date("Y-m-d 08:00");
$def['end'] = date("Y-m-d 17:00", strtotime('+7 days'));
$user_uid = $xoopsUser ? $xoopsUser->uid() : "";
$def['uid'] = $user_uid;
$def['create_time'] = date("Y-m-d H:i:s");
$def['info']['award'] = '入選;優選;特選';
if (empty($submission)) {
$submission = $def;
}
$xoopsTpl->assign()
將之一一送到樣板:
foreach ($submission as $key => $value) {
$value = Tools::filter($key, $value, 'edit', self::$filter_arr);
$$key = isset($submission[$key]) ? $submission[$key] : $def[$key];
$xoopsTpl->assign($key, $value);
}
$id
,表示是更新,因此,將 $op
設為 submission_update
反之則是新增寫入,其值為 submission_store
,一樣送至樣板,並命名為 $next_op
$op = (!empty($id)) ? "submission_update" : "submission_store";
$xoopsTpl->assign('next_op', $op);
use XoopsModules\Tadtools\FormValidator;
就是使用 XoopsModules\Tadtools
命名空間底下的 FormValidator
類別,接下來只要寫 FormValidator
就可以用了,不用每次都寫那一長串全名。FormValidator 詳細用法可以看這裡
//套用formValidator驗證機制
$formValidator = new FormValidator("#myForm", true);
$formValidator->render();
use XoopsModules\Tadtools\CkEditor;
初始化需填入模組名稱、欄位名稱,調整一下高度以及佔位符即可。CkEditor 詳細用法可以看這裡
$ck = new CkEditor("submission", "content", $content);
$ck->setHeight(200);
$ck->setVar('placeholder', '請填入投稿說明');
$ck->setToolbarSet('tadSimple');
$editor = $ck->render();
$xoopsTpl->assign('content_editor', $editor);
use XoopsModules\Tadtools\My97DatePicker;
就一行即可,不用任何參數。My97DatePicker 詳細用法可以看這裡
My97DatePicker::render();
use XoopsModules\Tadtools\TadUpFiles;
set_col()
比較重要,用來設定這個上傳檔案應該屬於哪一筆資料,其餘的視情況使用,例如。TadUpFiles 詳細用法可以看這裡
$TadUpFiles = new TadUpFiles("submission");
if ($id) {
$TadUpFiles->set_col("submission_id",$id);
$TadUpFiles->set_dir('subdir', "/{$id}");
}
//$TadUpFiles->set_var("require", true); //必填
//$TadUpFiles->set_var("show_tip", false); //不顯示提示
$submission_files_create = $TadUpFiles->upform(true, "submission_files", "");
$xoopsTpl->assign('submission_files_create', $submission_files_create);
set_dir()
也蠻常用,其值要有 / 開頭,例如 $TadUpFiles->set_dir('subdir', "/$id")
,可以設定檔案是否放入到子目錄中。若是要改,記得其他地方也都一併修改(store
、update
、create
)
//加入Token安全機制
Utility::token_form();