森林之原
五月 24, 2012, 05:10:52 am *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.

請輸入帳號, 密碼以及預計登入時間
新聞: 森林之原歡迎您的蒞臨!
森林之原提供自由軟體的支援,包括繁體中文的翻譯。
 
   首頁   說明 搜尋 日曆 登入 註冊  
頁: [1]   向下
  寄送主題  |  列印  
作者 主題: 外掛製作  (閱讀 24171 次)
0 會員 以及 1 訪客 正在閱讀本篇主題.
Andrew::
魔,羯
*
離線 離線

文章: 217



個人網站
« 於: 一月 04, 2005, 02:34:32 am »

外掛製作方法

如果你懂英文建議你下載官方提供的 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.xml
package-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.xml
modification.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 檔案.
最後請先測試你的外掛都沒問題在提供下載, 像安裝/反安裝等等.

製作外掛大概就是這樣, 如果有什麼問題請到論壇發問. 你也可以看看中文語系的安裝檔案是怎麼寫的.
如果有發現新的語法請跟我連絡, 我會在這裡更新.
向版主檢舉   已記錄

basaka
初學者
*
離線 離線

文章: 1


« 回覆文章 #1 於: 一月 23, 2006, 09:36:11 am »

Where Downloads  HuhHuh
 
                                       是咩外掛製作方法,是唔是Online Game外掛製作方法
« 最後編輯時間: 一月 23, 2006, 09:55:28 am 由 basaka » 向版主檢舉   已記錄
訪客
« 回覆文章 #2 於: 四月 09, 2006, 02:07:51 am »

請問這個東西能製作線上遊戲的外掛嗎?Huh?
向版主檢舉   已記錄
calvin
訪客
« 回覆文章 #3 於: 四月 09, 2006, 11:22:23 pm »

請問這個東西能製作線上遊戲的外掛嗎?Huh?

 =.= 這裡是 SMF討論版... 不是天堂II,魔獸世界討論版.... OK? 唉~~
 不過如果你能發揮你高超的程式設計技能或許可以利用此說明做出外掛喔...加油... smiley01_045
向版主檢舉   已記錄
glennnova
初學者
*
離線 離線

文章: 1


« 回覆文章 #4 於: 二月 22, 2008, 03:47:14 am »

感恩,寫的很完整,我試過了,成功
不過只能修改程式碼、樣版,不能用xml的方式修改資料庫就比較可惜
向版主檢舉   已記錄
頁: [1]   向上
  寄送主題  |  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!