理解Joomla的component、module和plugin之間的關系

 

理解組件(component)

在Joomla中,組件都有明確的功能定義,用來實現復雜的前臺功能,如:新聞組件用來發布新聞。組件將頁面中的mainbody區域作為顯示結果的區域。在組件中,Joomla采用MVC架構編寫代碼。

 

Joomla的MVC架構的說明:


Model          應用所操作的相關信息。在Joomla中,模型是指Mysql數據表和模型類的集合。

View          把模型轉化為一種適合用戶交互的形式。一般是用戶的界面元素。在Joomla中,是指視圖類的集合以及模板的集合;

Controller    針對事件的回應和過程,一般指用戶的動作,可以引起模型的改變。在Joomla中,一般是觸發器任務,需要在控制器類中創建與任務同名的方法函數。

組件(Component)的文件架構

controllers 控制器類的文件夾;

models 模型類的文件夾;

views 視圖類和模板;如果視圖類有多個模板,模板則分別存放在tmpl文件夾中;

metadata.xml 組件加載文件;

組件名稱.php      組件的入口文件,該文件的名稱要跟組件名稱相同,如:com_content的為:content.php

 

理解模塊(Module)

Joomla的模塊是指前臺除了mainbody之外某個指定位置的程序。由于mainbody是前臺頁面的中心,占的面積也是最大的,模塊只是以小方塊顯示。

模塊的文件結構(以mod_search為例):

tmpl 模塊對應的模板文件;

mod_search.php 模板的主文件,通過主文件調用模板;文件名稱的前部分以模塊名稱相同;

helper.php 包含模塊的幫助類;

mod_search.xml 模塊加載的XML文件;文件名稱的前部分以模塊名稱相同;

 

理解插件(Plugin)

插件是一種簡單的程序,每個插件都是一個獨立的功能,只有當網頁被打開的時候,插件的功能才被觸發,如果多個插件,則遵守觸發的順序。