都有一段時間忙得要死,沒有更新這個 blog 了
這次的 project 總算順利完成,穩定進入維護階段的同時
花點時間寫一寫這次使用 Drupal 的經驗好了
這個在三月中開始版面設計的網站,當然是使用 Drupal7 開發
結構上不算太複雜,只有首頁,文章內頁,用戶頁,「著名博主」頁
但因為用戶可以自行編寫文章,node edit form 都需要使用客製化的 theme
而且那個 form 需要一定程度的簡化,令一般使用者可以比較容易上手
而比較特別的是一般的文章在首頁是使用日期分類的
信報編輯和「特選的博主」會出現在頁面上半部份
其餘一般使用者的文章會出現在頁面下半部份
而除了特定的文章之外,首頁只會出現當日的文章
而昨日,以至七日之前的文章可以使用 dropdown 瀏覽
我們客製了數個 views 的 arguments 來處理這種有時效性的頁面設定
而整個 project 比較大的挑戰有三個方面:論壇文章管理,資料轉移和使用者 single sign on
論壇文章管理
因為一般的注冊使用者可以和信報編輯一樣建立文章
所以信報編輯在文章排序方面需要很大的權力
而每一天都有上下兩半部份的排序,而且經常會因為文章的突發性而修改排序
第二是編輯刪除,博主刪除的功能
在遇到離題,人身攻擊或誹謗的時候編輯需要隱藏文章
但原作者需要看到已經被刪除的字眼,並保留證據
而文章的回應更可以由該文章的原作者管理
所以不可以使用 "未發表" 這種 Drupal 原有的控製
我們在實作的時候大量使用 flags 和 draggable views
flags module 本身提供一個可靠的 API
可以客製 flag 時後續的權限處理
檢舉的功能也是 flag module 的延伸
加上 rules 就可以發出警示的電郵給編輯
資料轉移
這個論壇是一個 revamp ,論壇原有的文章可以追溯到零八年
零八年至今五年的使用者,發表的文章,回應等等資料的數量超過一百二十萬
而資料轉移的工作其間必須下線,直到資料轉移的過程完美的完成才可以上線
最後資料由舊系統匯出,匯入到新系統總共使用了九個小時
由黄昏六時開始,一直到第二日的淩晨三時完成
為了確保轉移的工作不會在最後一刻的淩晨出現錯誤
我們花了大量的時間開發了一個基於 migrate 的 module
透過一個
Attachment | Size |
---|---|
hkej forum revamp date based frontpage.png | 68.7 KB |