:::

10-6 讓老師可以審核學生文章

  1. 由於需要知道這個投稿主題有哪些獎項,所以,顯示文章時,必須取得投稿主題的設定。因此,修改 index.php 流程,show()$other_arr 加入自定義的 ['submission']
    //顯示某筆資料
    case 'submission_data_show':
        $where_arr['id'] = $id;
        Submission_data::show($where_arr, ['submission']);
        break;
  2. 修改 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']]);
    }
  3. 在 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}>
  4. 由於設了一個新的 op,其值為 submission_data_update_review,所以,index.php 先能接收 $award 變數
    /*-----------變數過濾----------*/
    ...略...
    $award         = Request::getString('award');
  5. 然後必須多一組流程
    //更新資料
    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;
  6. 這樣寫也可以
    //審核文章
    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;

     

  7. 再次修改 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>
  8. 看起來像這樣
    img
  9. 整個 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}>

     


:::

書籍目錄

展開 | 闔起

快速登入


https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D2089%26tbsn%3D56

計數器

今天: 812812812
昨天: 1856185618561856
總計: 8776736877673687767368776736877673687767368776736