下述的步驟只是按照通用流程進行說明,如果與插件安裝說明中的描述不符,請以插件提供者的描述為準。
舉例插件名稱為打工插件,唯一ID為work,那麼插件的文件夾名稱應該跟唯一ID保持一致,其所有文件應該存放在 hack/work目錄下,以下內容將以此插件為例說明。
1、插件根目錄 hack/work目錄
存放插件主要文件,包括在根目錄下的文件內容如下:2、圖片目錄 hack/work/image
此目錄存放插件文件中所使用到的圖片文件,強烈要求在文件中使用$hkimg變量來指定此目錄,這樣指定目錄將會讓文件有極大的靈活性。3、插件包含文件 hack/work/require
倘若插件比較大,可以把一些常用的函數寫成文件放入到require文件夾。4、插件模板文件夾 hack/work/template
不同於5.0之前的版本,所有模板均放置到template下,前台放置於template/wind 後台放置於template/admin,而現有的插件體系規定所有的插件模板均放置在這一個目錄下,不再需要分別放到兩個文件夾中。5、緩存文件
出於文件777屬性考慮,以及緩存文件的統一部署,建議插件開發者將緩存文件存儲為data/bbscache 目錄下(此目錄已經可寫,否則無法使用), 同時,出於進一步的為插件使用者著想,建議緩存文件使用程序生成,來避免第一次使用插件時,因為沒有緩存文件或者緩存文件不可寫而導致的錯誤--我們必須 考慮到,部分用戶不熟悉電腦操作,並不瞭解如何設置文件777屬性,所以建議並不附帶默認的緩存文件,而默認的緩存文件,在插件使用者第一次使用的時候, 自動生成到data/bbscache目錄下,這樣將避免插件安裝中頻繁出現的777問題。 備註提示:一般附帶緩存的文件,可內置某些默認值,然後插件 完成安裝之後,使用者應該進行一次設置提交來保存它所需要的設置,在這個時候設置再生成緩存文件到data/bbscache目錄下一個緩存文件,能夠有 效的避免需要設置777的問題]1、數據過濾
$_GET、$_POST的變量通過InitGP() or GetGP() 來獲取。確認為數值為變量要(int) or (float)強制轉換,如:$tid = (int)GetGP('tid'); 。字符串變量要經過Char_cv()過濾,如:$subject = Char_cv($GetGP('subject'));。在PW7中,InitGP() 默認開啟Char_cv()過濾,因此不能版本間的兼容問題得處理好,避免有效內容出錯。2、SQL注入
SQL語句中的變量,在phpwind7中,保證最後經過過濾函數pwEscape() pwImplode()、pwSqlSingle()、wSqlMulti() 。如:$tbid = $db->get_value('SELECT ptable FROM pw_threads WHERE tid='.pwEscape($tid,false));3、跨站腳本
輸出到模板HTML的字符串變量,保證都是經過Char_cv().4、文件包含
include() or require() 文件路徑包含變量時,必需經過Pcv()的過濾,如include_once Pcv(D_P.'data/bbscache/'.$filename);