index.php
變數過濾部份,使之可以接收到投稿主題編號 $submission_id
/*-----------變數過濾----------*/
$op = Request::getString('op');
$id = Request::getInt('id');
$files_sn = Request::getInt('files_sn');
$submission_id = Request::getInt('submission_id');
Submission_data::create()
的流程,將之加入 $submission_id
參數
//新增用表單
case 'submission_data_create':
Submission_data::create($submission_id);
break;
//修改用表單
case 'submission_data_edit':
Submission_data::create($submission_id, $id);
$op = 'submission_data_create';
break;
class/Submission_data.php
use XoopsModules\Submission\Submission;
class/Submission_data.php
的 create()
,多加入一個 $submission_id
參數,並將判斷身份的那一行註解掉,這樣學生才有權限進入表單。
public static function create($submission_id, $id = '')
{
global $xoopsTpl, $xoopsUser;
// Tools::chk_is_adm('', '', __FILE__, __LINE__);
Submission::show(['id' => $submission_id], [], 'assign_all');
//抓取預設值
$submission_data = (!empty($id)) ? self::get(['id' => $id]) : [];
//預設值設定
$def['id'] = $id;
$def['review_time'] = date("Y-m-d H:i:s");
Submission::show()
來取得該投稿主題的完整設定,第三個參數用 assign_all
以便將 $submission
用陣列方式將送至樣板。Submission::show()
放至submission_data_create
或submission_data_edit
流程中,這樣會更清楚,物件也更單純class/Submission_data.php
的 create()
在CK編輯器部份,可以用$ck->setToolbarSet('tadSimple');
簡化其工具列
//投稿內容
$ck = new CkEditor("submission", "content", $content);
$ck->setHeight(200);
$ck->setVar('placeholder', '');
$ck->setToolbarSet('tadSimple');
$editor = $ck->render();
templates/op_submission_data_create.tpl
,將標題及說明加到最上面
<h1 class="my text-center">
<a href="<{$smarty.server.PHP_SELF}>" class="text-black-50" data-bs-toggle="tooltip" title="回投稿管理列表">
<i class="fa-solid fa-turn-up fa-rotate-270"></i>
</a>
<{$submission.title}>
</h1>
<h4 class="my text-center"><i class="fa-solid fa-calendar-check"></i> 投稿開始:<{$submission.start}></h4>
<h4 class="my text-center"><i class="fa-solid fa-calendar-xmark"></i> 投稿截止:<{$submission.end}></h4>
<div class="text-center">
<div class="alert alert-warning d-inline-block text-center py-1 px-4 my-3 mx-auto">
<i class="fa fa-user"></i> <{$submission.uid_name}> 發布於 <{$submission.create_time}>
</div>
</div>
<div class="my-border">
<{$submission.content}>
<{$submission.files}>
</div>
class/Submission.php
的 show()
,其中在抓取使用者姓名時,有沒有多加一個: $all['uid_name'] =
//將 uid 編號轉換成使用者姓名(或帳號)
$uid_name = $all['uid_name'] = Utility::get_name_by_uid($uid);
<div class="form-group row mb-3">
<!--投稿姓名-->
<label class="col-md-2 control-label col-form-label text-md-right text-md-end">
<{$smarty.const._MD_SUBMISSION_DATA_NAME}>
</label>
<div class="col-md-2">
<input type="text" name="name" id="name" class="form-control " value="<{$name}>" placeholder="<{$smarty.const._MD_SUBMISSION_DATA_NAME}>">
</div>
<!--年級-->
<div class="col-md-4">
<div class="input-group">
<span class="input-group-text">班級:</span>
<select name="grade" id="grade" class="form-control form-select validate[required]" size=1>
<option value=""></option>
<{foreach from=$submission.info.grade item=submission_grade}>
<option value="<{$submission_grade}>" <{if $grade == $submission_grade}>selected<{/if}>><{$submission_grade}></option>
<{/foreach}>
</select>
<span class="input-group-text">年</span>
<input type="text" name="info[class]" class="form-control validate[required]" value="<{$info.class}>">
<span class="input-group-text">班</span>
</div>
</div>
<!--指導老師-->
<label class="col-md-2 control-label col-form-label text-md-right text-md-end">
<{$smarty.const._MD_SUBMISSION_DATA_TEACHER}>
</label>
<div class="col-md-2">
<input type="text" name="teacher" id="teacher" class="form-control " value="<{$teacher}>" placeholder="<{$smarty.const._MD_SUBMISSION_DATA_TEACHER}>">
</div>
</div>
<!--投稿密碼-->
<{if $submission.info.pass_code}>
<div class="form-group row mb-3">
<label class="col-md-2 control-label col-form-label text-md-right text-md-end">
投稿密碼
</label>
<div class="col-md-10">
<input type="text" name="pass_code" id="pass_code" class="form-control validate[required]" placeholder="請輸入投稿密碼(若不曉得密碼,可以詢問「<{$submission.uid_name}>」老師)">
</div>
</div>
<{/if}>
submission_id
及op
,submission_id
欄位的值可以從 $submission
陣列取得,亦即 $submission.id
,並且各自都有值即可
<div class="bar text-center">
<input type='hidden' name="submission_id" value="<{$submission.id}>">
<{$token_form|default:''}>
<input type="hidden" name="op" value="<{$next_op|default:''}>">
<input type="hidden" name="id" value="<{$id}>">
<button type="submit" class="btn btn-primary"><i class="fa fa-floppy-disk" aria-hidden="true"></i> <{$smarty.const._TAD_SAVE}>(日後的修改密碼為:<code style="background:white"><{$info.code}></code> 請牢記)</button>
</div>