製作外掛時請先了解下面幾點:
當寫程式時,請注意人數和主機的負荷。有些論壇的負荷非常的大,那些論壇也有可能會使用你做的外掛。
控制動作是出現在函式裡面。譬如說 BoardIndex.php 裡的 BoardIndex 函式。
這個函式會載入和處理些許的顯示資料,但是並不會真的顯示任何東西。
然後控制動作會回到佈景系統。佈景系統會決定要顯示什麼樣的 HTML,哪個層次,
哪個子佈景等等。它會以函式裡面所指定的動作來決定該顯示什麼。
範例可以看 LogInOut.php 檔案。
之後 HTML 會被壓縮送到訪客的瀏覽器裡。最後完成程式的動作,接下來訪客可以瀏覽論壇,
然後 JavaScript 可以被瀏覽器執行等等。
============================
很多人習慣略過 PHP 的 notice 錯誤。這種錯誤是 PHP 認為比較不重要 - 包括拼錯的變數名稱。
雖然這些錯誤不是很重要,但是會造成很多除錯工作上的麻煩。
SMF 論壇在安裝完畢後會自動紀錄 notice 的錯誤,但是不會顯示。
如果要顯示 notice 的錯誤,打開 Settings.php 然後在 ?> 前面加入這行:
$db_show_debug = true;
這會顯示任何查詢或錯誤給任何人,不單只是管理員。
雖然有人不認為 notice 不是真正的錯誤,在開放你的外掛前最好還是先將它們修復。
在完成你的外掛前請先壓縮成外掛套件,包括外掛安裝的程序檔案。
相關資訊請到:
外掛製作為了讓別人能夠了解你的外掛,可以看看官方的程式標準:
http://www.simplemachines.org/community/index.php?topic=7110.0下面提供了一些外掛常用的變數和函式,也可以看看 Subs.php,Sub-Post.php,
Security.php,Errors.php,Load.php,和 ModSettings.php 裡面提供的函式和變數。
db_query("SELECT 'query string'", __FILE__, __LINE__);
- 跑資料庫查詢,會傳回資源結果。
updateSettings(array('modSetting' => 'value'));
- 更新設定表格和新增項目。
log_error('error message');
- 紀錄錯誤但不會顯示。
fatal_error('error message');
- 顯示和紀錄錯誤。如果不想顯示,可以加入 false 參數。
obExit();
- 結束執行動作,進入佈景系統。
doUBBC($message);
- 解析 bbc 語法。
censorText($message);
- 檢查傳入的 string 內容。
updateMemberData($ID_MEMBER, array('column' => 'value'));
- 更新會員資料表的欄位。
loadTemplate('TemplateName');
- 載入佈景檔案和它的子佈景檔案。
loadLanguage('LanguageFile');
- 載入語系檔案和語系字詞。
sendmail('to@example.com', 'Subject', 'Message');
- 用論壇的電子郵件寄送郵件給其他位員,必須先包含 (include) Subs-Post.php。
allowedTo('permission_name');
- 檢查權限。
isAllowedTo('permission_name');
- 需要某個權限,如果權限不夠會顯示錯誤訊息。
is_admin();
- 需要管理員的權限。
$user_info
- 會員資料的陣列。
$context
- 佈景可用的變數內容。
$modSettings
- 設定表內的設定陣列。
上面只是一些論壇可用的函式,和一些製作外掛該注意的事項。
如果有什麼問題可以到論壇發問。
來源