:::
主內容區域
10-4 列出某主題下的所有文章
- 修改
templates/op_submission_show.tpl在「我要投稿」下方引入op_submission_data_index.tpl樣板檔:<div class="text-center my-3"> <{if $now > $start_ts and $now < $end_ts}> <a href="index.php?op=submission_data_create&submission_id=<{$id}>" class="btn btn-lg btn-primary my-3"><i class="fa-solid fa-pen-to-square"></i> 我要投稿</a> <{/if}> </div> <{include file="$xoops_rootpath/modules/submission/templates/op_submission_data_index.tpl"}> - 修改
index.php以及setup.php的switch()流程,在default中的show()加入第二個自訂的參數['all_submission_data'],用來取得該主題下所有投稿文章//預設動作 default: if (empty($id)) { ...略... } else { $where_arr['id'] = $id; Submission::show($where_arr, ['all_submission_data']); $op = 'submission_show'; } break; - 接著修改
class/Submission.php先加入:use XoopsModules\Submission\Submission_data; - 接著便可在
class/Submission.php的show()中加入撈取該主題的文章語法,非管理者只能撈取已經審核,而且除了「不通過」以外的所有文章,順便加入BootstrapTable功能:// if (in_array('xxx', $other_arr) || in_array('all', $other_arr)) { // $data['xxx'] = ooo::get_all(); // } if (in_array('all_submission_data', $other_arr) || in_array('all', $other_arr)) { if (Tools::chk_is_adm('', '', __FILE__, __LINE__, 'return')) { $data_where_arr['submission_id'] = $data['id']; } else { $data_where_arr = ['submission_id' => $data['id'], "review_time != '0000-00-00 00:00:00'", "award != 'x' "]; } Submission_data::index($data_where_arr); } - 修改
class/Submission_data.php的index()中,刪除確認的語法,加上submission_id的參數,以利刪除後,轉向到某個投稿主題下的頁面//刪除確認的JS $SweetAlert = new SweetAlert(); $SweetAlert->render('submission_data_destroy_func', "{$_SERVER['PHP_SELF']}?op=submission_data_destroy&submission_id={$where_arr['submission_id']}&id=", "id"); - index.php中的刪除流程,其轉向就可以加入投稿主題的編號了
//刪除資料 case 'submission_data_destroy': Submission_data::destroy($id); header("location: {$_SERVER['PHP_SELF']}?id=$submission_id"); exit; - 最後,整理一下
templates/op_submission_data_index.tpl就差不多大功告成了。<{if $all_submission_data|default:false}> <table data-toggle="table" data-pagination="true" data-search="true" data-mobile-responsive="true" class="table table-sm table-striped table-hover"> <thead> <tr> <!--投稿主題--> <th data-field="title" data-sortable="true" class="nowrap"><{$smarty.const._MD_SUBMISSION_DATA_TITLE}></th> <!--年級--> <th data-field="grade" data-sortable="true" class="nowrap c">班級</th> <!--投稿姓名--> <th data-field="name" data-sortable="true" class="nowrap c"><{$smarty.const._MD_SUBMISSION_DATA_NAME}></th> <!--指導老師--> <th data-field="teacher" data-sortable="true" class="nowrap c"><{$smarty.const._MD_SUBMISSION_DATA_TEACHER}></th> <!--審查時間--> <th data-field="review_time" data-sortable="true" class="nowrap c"><{$smarty.const._MD_SUBMISSION_DATA_REVIEW_TIME}></th> <!--獎項--> <th data-field="award" data-sortable="true" class="nowrap c"><{$smarty.const._MD_SUBMISSION_DATA_AWARD}></th> <{if $smarty.session.submission_adm|default:false}> <th><{$smarty.const._TAD_FUNCTION}></th> <{/if}> </tr> </thead> <{foreach from=$all_submission_data key=k item=data name=all_submission_data}> <tr> <!--投稿主題--> <td><a href="<{$xoops_url}>/modules/submission/index.php?op=submission_data_show&id=<{$data.id}>"><{$data.title}></a><{$data.files}></td> <!--班級--> <td><{$data.grade}>年<{$data.info.class}>班</td> <!--投稿姓名--> <td><{$data.name}></td> <!--指導老師--> <td><{$data.teacher}></td> <!--審查時間--> <td><{$data.review_time}></td> <!--獎項--> <td><{if $data.award=="x"}>不通過<{else}><{$data.award}><{/if}></td> <{if $smarty.session.submission_adm|default:false}> <td> <a href="javascript:submission_data_destroy_func(<{$data.id}>);" class="btn btn-sm btn-xs btn-danger" title="<{$smarty.const._TAD_DEL}>"><i class="fa fa-trash"></i></a> <a href="<{$xoops_url}>/modules/submission/index.php?op=submission_data_edit&submission_id=<{$data.submission_id}>&id=<{$data.id}>" class="btn btn-sm btn-xs btn-warning" title="<{$smarty.const._TAD_EDIT}>"><i class="fa fa-pencil"></i></a> </td> <{/if}> </tr> <{/foreach}> </table> <{/if}>
10-3 儲存學生投稿稿件