歷史績效儲存撰寫完成

歷史績效記錄已經撰寫完成。達成率也直接在撈出資料的時候就算好,所以也可以直接按達成率來做排序。先前是把資料先抓出來,再透過抓出來的相關資料取得像是lid,pt的值來計算,所以不能再排序後來計算的值,現在改成直接在資料庫裡計算就彈性許多。 閱讀全文〈歷史績效儲存撰寫完成〉

用xoops_version.php來判定模組

每一個xoops的模組,其資料夾下一定要有一個xoops_version.php的檔案,必須要有這個檔案xoops才會把它當成模組來對待。

因為每一個模組都要引入mainfile.php,而mailfile會再引入common.php,在common.php裡就有一段程式是在判斷被引入時所在檔案的同一資料夾下有沒有xoops_version.php,如果有就會產生$xoopsModule物件。

關於時間處理的相容性

在時間的處理上目前仍然沒有辦法兼顧相容性,只能單純的使用本地時間。

一般作法應該是以gmt時間存到資料庫,顯示的時間再以locale時區來顯示時間。不過,因為想在資料庫select的時候就可以判斷時間,若存成時間戳記(TS)這樣一來似乎得在php做處理才能判斷。

看了一下piCal的資料表,裡面有start,end這兩個以時間戳記存放的欄位,也有start_date,end_date以date格式存放的欄位,不過,後者是null值。看起來好像沒有作用,不過,是一個可供參考的作法。

200906230324補充==

以時間戳記存入,那就以時間戳記來比較就好了,因為時間戳記就是累計的秒數,不同的時間就是累計秒數多寡而已,所以只要改個比較習慣,這樣就可以直接在資料庫裡篩選出所要的資料了。以前怎麼沒想到?老想直接比較年啊,月啊,日啊。

有查詢字串就要使用queryF

用xoops寫人資室的回報績效模組有一段時間了,今天第一次遇到要使用$xoopsDB->queryF()的狀況。觀察的結果是,如果在有查詢字串的頁面裡要使用select以外的動作,一定要使用queryF()才能成功。所謂有查詢字串的頁面就是透過Get method傳遞變數過來的頁面,這時網址上會有一串查詢字串(query string)。

開發前的分析要更清楚

現在又覺得點數的設定應該在月份的時候才區分新舊生,而不是在開課班系就決定,因為是點數區分新舊生,而點數是跟著月份,所以應該在月份的時候才區分,同時點數的資料表應該改成單純的資料表,而不是現在這種集合字串(註)。這種事顯然可以在更早的時候就發現,那時候分析應該做得更深入一點,雖然那時候腦筋真的不太清楚。總之流程的分析值得多花一些心力、時間來進行,不然事後的修改會更麻煩。

註:就是把一個班系的單一課程的所有月份點數,包括區分新舊生的點數全部放在一筆記錄,然後使用:,;符號來判別是月份、新舊生,處理起來複雜得多。