index.php
流程,show()
的 $other_arr
加入自定義的 ['submission']
//顯示某筆資料
case 'submission_data_show':
$where_arr['id'] = $id;
Submission_data::show($where_arr, ['submission']);
break;
class/Submission_data.php
的 get()
,一旦偵測 $other_arr
有包含 submission
,就去抓主題資料
// if (in_array('xxx', $other_arr) || in_array('all', $other_arr)) {
// $data['xxx'] = ooo::get_all();
// }
if (in_array('submission', $other_arr) || in_array('all', $other_arr)) {
$data['submission'] = Submission::get(['id' => $data['submission_id']]);
}
templates/op_submission_data_show.tpl
加入管理者可以審核文章的表單,順便加上若是還沒審核才出現修改文章的表單,若已經有審核時間,那麼就不可以再修改文章了。其中不通過的值設成「x
」,如此可以作為辨識。
<{if $smarty.session.submission_adm|default:false}>
...略...
<form action="index.php" method="post" id="myForm" class="d-inline-block">
<div class="input-group" style="width: 26rem;">
<span class="input-group-text">審核結果</span>
<{assign var="award_arr" value=";"|explode:$submission.info.award}>
<select name="award">
<option value="<{$award_item}>">通過</option>
<{foreach from=$award_arr key=i item=award_item name=award_arr}>
<option value="<{$award_item}>" <{if $award==$award_item}>selected<{/if}>><{$award_item}></option>
<{/foreach}>
<option value="x" <{if $award=="x"}>selected<{/if}>>不通過</option>
</select>
<input type="hidden" name="submission_id" value="<{$submission_id}>">
<input type="hidden" name="id" value="<{$id}>">
<input type="hidden" name="op" value="submission_data_update_review">
<button type="submit" class="btn btn-primary">送出</button>
</div>
</form>
<{/if}>
op
,其值為 submission_data_update_review
,所以,index.php
先能接收 $award
變數
/*-----------變數過濾----------*/
...略...
$award = Request::getString('award');
//更新資料
case 'submission_data_update_review':
$where_arr['id'] = $id;
Submission_data::update($where_arr, ['award' => $award, 'review_time' => date("Y-m-d H:i:s", xoops_getUserTimestamp(time()))]);
redirect_header("{$_SERVER['PHP_SELF']}?op=submission_data_show&id=$id", 3, "已完成審核!");
break;
//審核文章
case 'submission_data_update_review':
$where_arr['id'] = $id;
$data_arr['award'] = $award;
$data_arr['review_time'] = date("Y-m-d H:i:s", xoops_getUserTimestamp(time()));
Submission_data::update($where_arr, $data_arr);
redirect_header("{$_SERVER['PHP_SELF']}?op=submission_data_show&id=$id", 3, "已完成審核!");
break;
templates/op_submission_data_show.tpl
的標題部份,若是有得獎,而且其值不是 x
,就加個獎牌。
<h1 class="my text-center"><a href="<{$xoops_url}>/modules/submission/index.php?id=<{$submission_id}>" class="text-black-50" data-bs-toggle="tooltip" title="<{$smarty.const._TAD_BACK_PAGE}>"><i class="fa-solid fa-turn-up fa-rotate-270"></i></a>
<{if $award && $award!='x'}>
<span class="badge bg-success"><i class="fa-solid fa-award" style="color: #FFD43B;"></i> <{$award}></span>
<{/if}>
<{$title}></h1>
op_submission_data_show.tpl
樣板文件的語法:
<h1 class="my text-center">
<a href="<{$smarty.server.PHP_SELF}>?id=<{$submission_id}>" class="text-black-50" data-bs-toggle="tooltip" title="<{$smarty.const._TAD_BACK_PAGE}>">
<i class="fa-solid fa-turn-up fa-rotate-270"></i>
</a>
<{if $award && $award!='x'}>
<span class="badge bg-success"><i class="fa-solid fa-award" style="color: #FFD43B;"></i> <{$award}></span>
<{/if}>
<{$title}>
</h1>
<div class="text-center">
<{if $smarty.session.submission_adm|default:false}>
<a href="javascript:submission_data_destroy_func(<{$id}>);" class="btn btn-sm btn-danger" data-bs-toggle="tooltip" title="<{$smarty.const._TAD_DEL}>"><i class="fa fa-times" aria-hidden="true"></i></a>
<a href="<{$xoops_url}>/modules/submission/index.php?op=submission_data_edit&id=<{$id}>" class="btn btn-sm btn-warning" data-bs-toggle="tooltip" title="<{$smarty.const._TAD_EDIT}>"><i class="fa fa-pencil" aria-hidden="true"></i> <{$smarty.const._TAD_EDIT}></a>
<form action="index.php" method="post" id="myForm" class="d-inline-block">
<div class="input-group" style="width: 26rem;">
<span class="input-group-text">審核結果</span>
<{assign var="award_arr" value=";"|explode:$submission.info.award}>
<select name="award">
<option value="">通過</option>
<{foreach from=$award_arr item=award_item}>
<option value="<{$award_item}>" <{if $award==$award_item}>selected<{/if}>><{$award_item}></option>
<{/foreach}>
<option value="x" <{if $award=="x"}>selected<{/if}>>不通過</option>
</select>
<input type="hidden" name="submission_id" value="<{$submission_id}>">
<input type="hidden" name="id" value="<{$id}>">
<input type="hidden" name="op" value="submission_data_update_review">
<button type="submit" class="btn btn-primary">送出</button>
</div>
</form>
<{/if}>
</div>
<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> <{$grade}>年<{$info.class}>班 <{$name}>
<i class="fa-solid fa-person-chalkboard ms-3"></i> <{$teacher}>
<i class="fa fa-calendar ms-3"></i> <{$info.latest_update}>
</div>
</div>
<{if $content|default:false}>
<div class="my-border">
<{$content}>
</div>
<{/if}>
<{$files}>
<{* QRCode 及修改資訊 *}>
<{if $review_time=="0000-00-00 00:00:00"}>
<div class="row my-3">
<{assign var="url" value="$xoops_url/modules/submission/index.php?op=submission_data_edit&submission_id=$submission_id&id=$id"}>
<{assign var="urlencode" value="$url"|urlencode}>
<div class="col-md-3">
<img src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=<{$urlencode}>">
</div>
<div class="col-md-9">
修改網址:<a href="<{$url}>"><{$url}></a>
</div>
</div>
<{/if}>