:::
主內容區域
10-6 讓老師可以審核學生文章
- 由於需要知道這個投稿主題有哪些獎項,所以,顯示文章時,必須取得投稿主題的設定。因此,修改
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}>
10-5 顯示學生的投稿文章