2010年10月7日 星期四

如何開發一個Joomla1.5模組-3

[How to create a Joomla1.5 Module-3]

Joomla1.5, 模組開發, Module

[上一篇]
撰寫安裝註冊檔

上一篇說明了基本的Joomla模組檔案開發結構,在這一篇裡,要說明如何撰寫模組的安裝註冊檔。

在Joomla站台根目錄底下的module資料夾內建立 [mod_MyMod] 子資料夾,並在其中逐一建立上篇提到的基本檔案架構。

首先,以文字編輯器編輯[mod_MyMod.xml]檔案,這是一個讓Joomla的核心系統可以讀取該模組的安裝註冊檔,藉由XML格式的標籤,清楚的記錄的整個模組該有的檔案與參數,同時核心系統更可以根據特殊定義的標籤與屬性直接生成後台管理端介面,開發者不需要額外撰寫後台介面的程式碼,可以說非常方便貼心。

開啟後,key入如下方的程式碼:(當然了你要複製貼上我也不反對^^)


<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
  //該模組的基本資訊,包含模組名稱、作者等。
 <name>MyMod</name>
 <author>The Cave</author>
 <creationDate>Oct 2010</creationDate>
 <copyright>Copyright (C) 2010 - 2013 The Cave. All rights reserved.</copyright>
 <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
 <authorEmail>TheCave@mail</authorEmail>
 <authorUrl>cave-gvee.blogspot.com</authorUrl>
 <version>alpha 1</version>
 <description>我的第一個Joomla模組開發程式</description>
  //該模組所用到的全部檔案清單
 <files>
  <filename>mod_mainmenu.php</filename>
   <filename>mod_mainmenu.xml</filename>
   <filename>helper.php</filename>
   <filename>index.html</filename>
   <filename>tmpl/default.php</filename>
   <filename>tmpl/index.html</filename>>
 </files>
//第一組參數(在後台管理為基本參數)
 <params>    
   <param name="@spacer" type="spacer" default="" label="" description="分隔線" />
 </params>
 //第二組參數(後台管理的進階參數)
 <params group="advanced">  
    <param name="@spacer" type="spacer" default="" label="" description="分隔線" />
 </params>
//第三組參數(後台管理的其他參數)
 <params group="other">    
   <param name="@spacer" type="spacer" default="" label="" description="分隔線" /> 
</params>
</install>

上方程式碼中的註解說明了各區塊的功用,存檔後我們進入後台管理系統看看這個開發中的模組管理介面長什麼樣子。(不用懷疑,到這裡算是完成了簡易的模組安裝檔,不過目前模組是沒有任何作用的。)

執行:[擴充套件]-->[模組管理]-->[新增],然後點選[MyMod]進入該模組的管理介面。

MyMod模組的後台管理介面

各位可以看到,左方的區塊是每一種模組類型都相同的,右方出現的[模組參數]、[進階參數]以及[其他參數]就是我們剛才在xml檔案中所設定的,其中每個參數群組中都有放一條分隔線。

錯誤排除

有時候,進入新建模組的管理介面卻發生下圖的錯誤訊息:

檔案編碼錯誤的訊息

這是因為Joomla核心系統解析安裝註冊的XML時發現編碼錯誤,具體的原因通常是因為我們在儲存該檔案的時候沒有使用UTF-8的編碼格式,且檔案中含有中文字(如:description標籤中的 "我的第一個Joomla模組開發程式")所造成,所以大家在開發Joomla的擴充套件時千萬要記得一律以UTF-8編碼才不會出錯喔。

參數群組

在Joomla核心系統控制模組的部分,預設有三種參數的群組,分別是 [基本]、[進階] 及 [其他](如同後台管理介面看到的那般),而安裝檔中則是包在 params標籤中,這個標籤只有一種屬性group,當不使用的時候為基本,若值為advanced則是進階,other為其他,規則如下:

<params group="advanced | other">   
...
</params>

group為選用屬性,可有可無。

事實上,這三種分類只是方便開發者將參數作一個簡單的區分,並沒有限制哪些類的參數一定要放在特定的群組內。
參數設定

接下來,我們來說明參數如何設定。在XML註冊檔中,參數宣告的標籤必須放在參數群組 <params/>父標籤之內,規則如下:

<params>
   <param name="[參數名稱]" 
          type="[參數類型]" 
          default="[預設值]" 
          label="[標籤說明]" 
          description="[作用描述]" />
</params>

我們來看一個實際的例子,下方代碼宣告了一個名為myName的參數(這個名稱可以當作之後php的變數使用,後面的篇幅會有說明),類型為text,預設值小強,標籤說明為我的名子,詳細描述為請輸入大名,我們把這個參數的宣告放在基本的參數群組中,程式碼與後台管理介面的圖如下:

<params>
   <param name="myName" 
          type="text" 
          default="小強" 
          label="我的名字" 
          description="請輸入大名" />
</params>

圖中可以清楚的看到各屬性所代表的介面顯示位置。

模組參數設定後台介面 模組參數設定的後台介面

到目前為止,我們都只是先宣告參數與後台介面設計,所以設定的值仍然還沒有任何作用喔,請讀者不必著急。

各種不同的參數類型顯示圖例請看:Joomla!1.5擴充套件參數類型

接下來我們將要說明[mod_MyMod.php][helper.php]的設計。

[下一篇]

沒有留言:

張貼留言