Toggle main menu visibility
下載輕鬆架
套件下載
使用手冊
發問討論
網站地圖
:::
登入
登入
帳號
密碼
登入
:::
所有書籍
「XOOPS快速模組開發」目錄
MarkDown
10-1 修改學生看到的所有投稿主題畫面
1. 模組產生器的使用概念
1-1 安裝XOOPS環境
1-2 安裝模組產生器
1-3 安裝 VSCode 開發工具
2. 投稿模組實做
2-1 第 1 步 基本設定
2-2 第 2 步 資料表設定
2-3 第 3 步 後台設定
2-4 第 4 步 前台設定
2-5 第 5 步 區塊設定
2-6 第 6 步 圖示設定
2-7 第 7 步 圖示預覽
2-8 第 8 步 設定欄位
2-9 第 9 步 產生模組
2-10 安裝模組
3. 用VSCode來編輯模組並認識模組結構
3-1 整理 xoops_version.php
3-2 修改 interface.php
3-3 用 Tools::get_session() 來記住登入者身份
3-4 讓 setup.php 只有有權限者才能進入
3-5 用 $op 來自動載入對應的子樣板檔
3-6 系統的七個主要動作
4. create 表單界面
4-1 調整建立投稿主題的表單界面
4-2 create() 建立表單的物件方法
5. store 新增儲存
5-1 store() 儲存資料的物件方法
6. show 顯示一筆資料
6-1 調整顯示單一投稿主題的界面
6-2 show() 顯示某筆資料的物件方法
7. edit 修改功能
8. update 更新資料
8-1 update() 更新資料的物件方法
9. index 顯示所有資料
9-1 調整顯示所有投稿主題的界面
9-2 index() 顯示所有資料的物件方法
10. 開始修改「線上投稿」畫面
10-1 修改學生看到的所有投稿主題畫面
10-2 投稿的 create 表單界面及物件
10-3 儲存學生投稿稿件
10-4 列出某主題下的所有文章
10-5 顯示學生的投稿文章
10-6 讓老師可以審核學生文章
10-7 讓學生可以修改投稿文章
11. 偏好設定、區塊、搜尋等功能
11-1 偏好設定新增「可審核」的群組設定
11-2 建立搜尋工具
11-3 建立區塊
12. XOOPS的各種內建物件
12-1 關於 Xmf\Request 變數過濾物件
12-2 $xoopsUser 使用者物件
12-3 關於 $xoopsDB 資料庫物件
12-4 關於 $xoopsTpl 樣板物件
12-5 關於各種XOOPS會用到超級全域變數,如 $GLOBALS['xoops']
10-3 儲存學生投稿稿件
XOOPS快速模組開發 =========== 1. 修改` index.php` 變數過濾部份,使之可以接收到投稿主題編號 `$submission_id` ```php /*-----------變數過濾----------*/ $op = Request::getString('op'); $id = Request::getInt('id'); $files_sn = Request::getInt('files_sn'); $submission_id = Request::getInt('submission_id'); ``` 2. 修改流程中有用到 `Submission_data::create()`的流程,將之加入 `$submission_id `參數 ```php //新增用表單 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; ``` 3. 接著切換至 `class/Submission_data.php` 4. 為了取得投稿主題的內容,我們在最上方加入 ```php use XoopsModules\Submission\Submission; ``` 5. 接著修改 `class/Submission_data.php` 的 `create()`,多加入一個 `$submission_id` 參數,並將判斷身份的那一行註解掉,這樣學生才有權限進入表單。 ```php 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"); ``` 1. 利用 `Submission::show()` 來取得該投稿主題的完整設定,第三個參數用 `assign_all `以便將` $submission` 用陣列方式將送至樣板。 2. 亦可將 `Submission::show()` 放至`submission_data_create`或`submission_data_edit`流程中,這樣會更清楚,物件也更單純 3. 然後 `class/Submission_data.php` 的 `create()`在CK編輯器部份,可以用`$ck->setToolbarSet('tadSimple');`簡化其工具列 ```php //投稿內容 $ck = new CkEditor("submission", "content", $content); $ck->setHeight(200); $ck->setVar('placeholder', ''); $ck->setToolbarSet('tadSimple'); $editor = $ck->render(); ``` 6. 再來修改 `templates/op_submission_data_create.tpl`,將標題及說明加到最上面 ```markup
<{$submission.title}>
投稿開始:<{$submission.start}>
投稿截止:<{$submission.end}>
<{$submission.uid_name}> 發布於 <{$submission.create_time}>
<{$submission.content}> <{$submission.files}>
``` 7. 若是發布者姓名沒出現,請檢查 `class/Submission.php` 的 `show()`,其中在抓取使用者姓名時,有沒有多加一個: `$all['uid_name'] =` ```php //將 uid 編號轉換成使用者姓名(或帳號) $uid_name = $all['uid_name'] = Utility::get_name_by_uid($uid); ``` 8. 接著再整併姓名、班級(新增班級輸入框)、指導老師 ```markup
<{$smarty.const._MD_SUBMISSION_DATA_NAME}>
班級:
<{foreach from=$submission.info.grade item=submission_grade}>
selected<{/if}>><{$submission_grade}>
<{/foreach}>
年
班
<{$smarty.const._MD_SUBMISSION_DATA_TEACHER}>
``` 9. 接著刪除獎項、其他資訊等這類不該出現在學生投稿界面上的欄位。 10. 然後再加入輸入投稿密碼的欄位: ```markup <{if $submission.info.pass_code}>
投稿密碼
<{/if}> ``` 11. 最後的送出按鈕確定有包含`submission_id`及`op`,`submission_id`欄位的值可以從` $submission` 陣列取得,亦即 `$submission.id`,並且各自都有值即可 ```markup
<{$token_form|default:''}>
<{$smarty.const._TAD_SAVE}>(日後的修改密碼為:<{$info.code}> 請牢記)
``` 12. 最後的畫面會如下: 
:::
書籍目錄
展開
|
闔起
快速登入
所有討論區
Tad Booking 場地設備預約
Tad Search 資料查詢
懶人框架討論區
實戰PHP7+MySQL
XOOPS輕鬆架快速上手
校園網站輕鬆架一般討論區
Booking Helper 預約助手
es_stud_sign 班級報名
es charge 學生收費管理
E-Stud import 學生名冊管理
es_after_school 課後照顧報名
es_exam 學生作業繳交
ES_panel 校務行政面板
es_timetable 課表
ES_youtube 本校影音
info_whats 網路設備記錄
jill booking 場地預約
jill_notice 臨時公告
jill query 簡易查詢
jill receipt 領據填報
kw club 社團報名
kw device 設備借用管理系統
ntpc_oprnid 新北市 OpenID 登入
TinyD嵌入內容模組
ugm contact us 聯絡我們
ugm page 自訂頁面
ugm table 萬用表格
dummy 自訂模組
soone_submit 投稿模組
Tad Adm 站長工具箱
Tad Assignment 作業上傳展示模組
Tad Blocks 進階區塊管理
Tad Book3 線上書籍
Tad Cal 行事曆
Tad Cbox 即時留言簿
Tad Discuss 討論區模組
Tad Embed 崁入模組
Tad Evaluation 評鑑檔案管理
Tad Form 萬用表單模組
Tad FAQ 常見問答
Tad Google 相簿
Tad Gallery 電子相簿
Tad Guide 安裝精靈
Tad Honor 榮譽榜
Tad idioms 背背成語
Tad Link 好站連結
Tad Login 快速登入
Tad Lunch3 午餐資訊
Tad Lunch2 營養午餐公告
Tad Meeting 會議系統
Tad Merage 線上合併套印
Tad News 本站消息
Tad Player 影音播放
Tad RSS 友站新聞
Tad Repair 維修通報
Tad SiteMap網站地圖
Tad Timeline 重要紀事
Tad Themes 佈景管理
Tad Tools 工具包
Tad TV 直播電視
Tad Uploader 檔案上傳模組
Tad Users 大量會員管理
Tad Web 多人網頁模組
MyTabs 我的頁籤
Random Quote 隨機小語
LogCounterX 網站流量統計
Yaoh light 多區塊多層次跑馬燈模組
校園網站輕鬆架功能建議區
佈景討論區
即時留言簿
search
進階搜尋
計數器
今天:
昨天:
總計: