Joomla! 套件開發的線上 xml 更新機制

Written by Simon Asika on

Joomla! 1.6 之後,便提供了開發者與使用者方變得套件更新機制。但由於相關更新機制都是由 xml manifest 檔來判斷的,在官方教學資源不夠完善的情況下,剛開始開發很難入門。

首先,在套件原始安裝檔中的xml,就要先寫上直這段 update 資訊。

<updateservers>
    <server type="extension" priority="1" name="Extension Update Site">http://your-domain.com/update/extension.xml</server>
</updateservers>

type 可以是 extension, language 或 template 等,可以去官方查看所有的 type 種類。而 <server> 標籤內的資訊就是你的更新訊息 xml 網址。

接下來,你在要在 http://your-domain.com/update/ 下再放一個 extension.xml 檔案,內容請參考:

<?xml version="1.0" encoding="utf-8"?> 
<updates>
<update>
<name>Extension</name>
<version>2.4.4</version>
<infourl title="Asikart Easyset">http://yoursite.com</infourl>
<downloads>
<downloadurl type="upgrade" format="zip">http://yoursite.com/update/extension_244.zip</downloadurl>
</downloads>
<targetplatform name="joomla" version="1.7"/>
<element>extension</element>
<folder>system</folder>
<type>plugin</type>
<client_id>0</client_id>
</update>
<update>
<name>Extension</name>
<version>2.4.4</version>
<infourl title="Asikart Easyset">http://yoursite.com</infourl>
<downloads>
<downloadurl type="upgrade" format="zip">http://yoursite.com/update/extension_244.zip</downloadurl>
</downloads>
<targetplatform name="joomla" version="2.5"/>
<element>extension</element>
<folder>system</folder>
<type>plugin</type>
<client_id>0</client_id>
</update>
</updates>

 downloadurl 就是你要讓 joomla 更新的套件網址,程式會自動去抓下來安裝,覆蓋舊的檔案。

而更新程式就是用裡面的verson版本號來判斷是否需要更新的。

要注意對同版本號的Joomla!發行版需要有對應的 targetplatform,而element, client_id, type, folder等標籤需要對應至#__extensions,具體xml可用參數請參考官方文件:

Deploying an Update Server

如此,解決,記得每次套件更新後要把檔案放上主機,再更改 xml 檔即可。

Control Tools

WS-logo