Moodle 2 檔案處理

Boss說有客戶質疑我們在Moodle2.0檔案處理方面的能力,所以要我測試一個簡單的功能: 使用Moodle2.0的檔案處理機制上傳後,然後再從課程取出.

原來Moodle 1.x只要放一個file 的檔案上傳(Input)就可以在lib.php內用 $_FILES取得PHP上傳的檔案(例如 $_FILES[$elname]['tmp_name'] ), 現在Moodle2完全不行 ?!

先從Moodel 2在檔案機制上的改變說起;

Moodle2為了應付多模的儲存方式,所以推出了Repository的概念(我猜啦),在Repository(先稱作檔案庫)下面有種不同的檔案存取方式,如伺服器檔案庫、最近上傳...等;網路上也有許多外掛可以找到(Repository搜尋),有Evernote甚至還有GitHub的plugin, 請自行參考.

我們在表單內的上傳檔案實作都是呼叫由filemanager及filepicker來完成(這裡有許多php及javascript所串起的功能就不多說了),方便我們管理檔案上傳檔案.如果以最簡單的Upload檔案上傳來看,檔案上傳後是存放在一個暫存區,然後關閉filemanager回到表單後才指定主要檔案,在送出表單後才真正寫入資料庫.

課程取用時也只要再從資料表對應Id到檔案庫內取出檔案即可(過程如同Moodle1.x)

我製作了一個外掛mod_fire(取file諧音)過程如影片

從模組安裝、新增一個檔案;這裡是用傳統方式(Moodle1.x)上傳一個檔案, 但是內部使用Moodle2的機制寫入檔案庫, 後段是從課程Topic內取出檔案.

就這樣了. 我們可以Handle Moodle 2的檔案機制哦 !