外掛製作方法
如果你懂英文建議你下載官方提供的 Package SDK. 檔案可以在這下載:
http://www.simplemachines.org/community/index.php?topic=20319.0首先一個最簡單的外掛必須包括兩的檔案, "package-info.xml" 和 "modification.xml". 你只可以改變 "modification.xml" 的檔名. 因為 SMF 的外掛程式是官方人員自己寫的, 而且是用 XML, 所以你必須學一點 XML 的語法. 但是不用擔心, 它的寫法非常簡單.
首先要注意的是任何開始標籤必須要有關閉標籤, 例如 <test> </test>.
package-info.xmlpackage-info.xml 的內容大概是這樣:
<?xml verision="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>username:modname</id>
<name>Test Mod</name>
<version>1.00</version>
<type>modification</type>
<install for="1.0">
<readme type="inline">This is a test mod</readme>
<modification>modtest.xml</modification>
</install>
<uninstall>
<readme type="file">uninstall_readme.txt</readme>
<modification reverse="true">modtest.xml</modification>
</uninstall>
</package-info>
<?xml>, <!DOCTYPE>, <package-info>首先你看到的是檔案的標題, 這些標誌的內容是不能改變的.
<id>你可以在這裡輸入你的名字, 然後 :, 然後外掛名稱, 但是不能有空格.
<name>這是是外掛的名稱, 它會顯示在 SMF 的外掛管理裡面.
<version>然後是外掛的版本. 最好是用數字代表以便 PHP 區分它的版本大小.
<type>這是外掛的類型, 可以用 "modification", "avatar", 和 "language".
<install>裡面是輸入你的外掛檔案. 你也可以提供一些屬性像, for="1.0" 表示安裝於 SMF 1.0 的版本.
你也可以用逗點來區分多個版本, for="1.0 Beta 5 Public, 1.0 Beta 5+, 1.0 - 1.1".
<readme>在上面你可以看到我用了兩種屬性, inline 和 file. inline 表示你提供的訊息會出現在外掛程式裡面,
file 表示訊息會出現在檔案內. 所以如果你用的是 <readme type="file"> 你只需要輸入檔案名稱.
<modification>modification 標誌是告訴外掛程式你的外掛檔是什麼. 如果你的外掛檔的名稱是 modtext.xml,
在這裡就是輸入 <modification>modtest.xml</modification>.
<uninstall>最後是反安裝的程序. 跟上面描述的 <readme> 和 <modification> 使用方法相同, 除了在這裡你要把
<modification> 改成 <modification reverse="true">. 這表示反安裝任何 modtest.xml 所做的修改.
這個檔案寫好之後你就可以準備寫 modification.xml 了 (或是你的外掛檔, 不一定得叫 modification.xml).
modification.xmlmodification.xml 的內容大概是:
<?xml version="1.0"?>
<!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/modification">
<modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
<!-- 必須跟 package-info.xml 的一樣 -->
<id>username:modname</id>
<version>1.00</version>
<file name="$sourcedir/Subs-Post.php">
<operation>
<search position="before"><![CDATA[codes]]>
</search>
<add><![CDATA[codes]]>
</add>
</operation>
<operation>
<search position="replace"><![CDATA[codes]]>
</search>
<add><![CDATA[codes]]>
</add>
<operation>
</file>
</modification>
首先看到的 <xml>, <!DOCTYPE>, <modification> 一樣不能改.
在來是跟 package-info.xml 裡面一樣的 <id> 和 <version>.
接下來是開始你的外掛程式.
<file>在這裡提供你要編輯的檔案. 外掛檔案內允許多個 <file> 標籤.
如果你要改 Sources/Post.php 檔, 在 <file> 裡面輸入 file="$sourcedir/Post.php".
請不要用 Sources/檔案名, 最好是用提供的變數像 $sourcedir.
一些可以用的變數是:
- $boarddir...... ./
- $sourcedir..... ./Sources
- $avatardir..... ./avatars
- $themedir...... ./Themes/default
- $languagedir... ./Themes/default/languages
- $smileysdir.... ./Smileys
<operation>這個是操作標籤. 你可以用多個 <operation> 標籤.
<search>在來是搜尋動作. 你可以用 position="before", position="after", position="replace" 來標示位址.
- before...... 在找到的程式碼之前
- after....... 在找到的程式碼之後
- replace..... 覆蓋找到的程式碼
<![CDATA[]]>這個是用來翻譯特殊字元的工具. 這樣在你的程式碼裡就可以用 <, >, ", & 等等而不需知道 html/xml 所用的字元.
<add>這個標籤是出現在 <search> 後面, 裡面是讓你輸入要改的程式碼.
當你的外掛寫完之後可以用官方提供的 test_modification.php 來檢查有沒有問題.
到上面的連結然後下載 Package SDK, 將裡面的 test_modification.php 上傳到主機內, 或在你的電腦裡試.
都沒問題之後將 package-info.xml 和 modification.xml 壓縮在 tar.gz 或 zip 檔案.
最後請先測試你的外掛都沒問題在提供下載, 像安裝/反安裝等等.
製作外掛大概就是這樣, 如果有什麼問題請到論壇發問. 你也可以看看中文語系的安裝檔案是怎麼寫的.
如果有發現新的語法請跟我連絡, 我會在這裡更新.