引子
這幾天一直在做DNT的二次開發,產生 了一些經驗,跟大家分享下。
客戶需要匯入舊論壇資料和開發一個新活動功能。
所以詳細研究DNT的文章相關表(dnt_topics,dnt_postid, dnt_posts1)。
向園子裡的代兄和戲水請教,代兄反應極快,他說戲水是做資料轉換的,比他更有經驗!汗,並要我去官方論壇發貼。
我去發了,點擊量很高,至今0回複。
而給戲水的訊息,有去無回。
看來,得自已動手。花了些時間,終於明白:
dnt_topics 儲存主題相關資訊,注意沒儲存本文。主鍵為自動成長。
dnt_posts1 系統儲存主題本文,和回帖。主鍵卻來源於dnt_postid.
這樣做可以提高查詢主題列表的速度。
但如果站長需要從主題本文提取部分做為摘要顯示,那就得不償失了。
用dnt_postid 單獨產生文章主鍵,不太理解,反正是增加了匯入其它論壇資料的難度。
或者增加了將資料匯出到其它論壇的難度。
反正匯入舊資料,花了好長時間,才弄明白。
人為製造門檻?
資料匯入完成。
開發活動功能,還是比較順利和快速的。基本可以借用DNT的通用類和方法。
經驗
- 匯入資料後,dnt_topics 和dnt_posts1 的 lastposterid,posterid 必須大於0,不然主題和回帖不能翻頁或不顯示。花了好久時間還找此原因。
- 需要手工改變dnt_postid的pid的初始值,不然回複貼會出現在前面,pid也會重複。
BUG
- 如果修改表情組名稱和表情檔案夾名稱不同,發貼時將不能轉換表情。修改預設表情名將出現圖片出現紅叉叉.
- 在預設安裝下沒有相簿和空間,尋找查看使用者的所有發貼時。如/search.aspx?posterid=2988,出現"對象名 'dnt_albums' 無效。對象名 'dnt_spaceposts' 無效。"
- 修改廣告時沒有綁定原狀態,展現方式每次都變成預設。
- 有時登陸時提示你已登陸,不用重複登陸,返回首頁看不到登陸資訊,查看本機COOKIE卻又COOKIE記錄。
- 使用者分組的問題。現在分為積分組,管理組,系統組,特殊組。不明白特殊組存在的意義。而且還有問題。添加一個特殊組,修改時關聯管理組,就變成了管理組,再修改時取消關聯管理組,就變成了積分組。變不回特殊組了。
- 無緣無故出現錯誤,重新整理一下又好了。如: 無法在“Discuz.Plugin.Spread”已存在的情況下建立/影像複製該檔案。
- ...
不足(個人看法)
- 添加分表後,不能撤銷,或刪除,估計有些站長喜歡抱著試試看的心態。
- 太龐大,剛安裝,就佔用了二三十MB的空間了.asp.net 較asp 佔資源,特別是記憶體,不太適合虛擬機器主機,VPS也比較懸。
- 還要N多操作上的不便。 比例添加表情要將相應檔案夾拷到相應目錄,然後重新整理頁面。但我在後台頁面上始終找不到相應的協助,或者說明。
- 上傳頭像時路徑前加了"/",而選擇系統頭像時沒"/";完全可以統一的。給二次開發人員造成不變.
- 表太多了,越來越不像論壇了。
- ...
總結
- 套用一名話,革命尚未成功,DNT仍需努力。
- ...