MVC in Joomla! -- Component

創建一個最基本的組件需要5個文件

site/hello.php             這個是組件的入口

site/controller.php      控制器

site/views/hello/view.html.php             視圖,它將接受顯示所需要的數據,並把數據傳遞給模板文件

site/views/hello/tmpl/default.php         模板文件

hello.xml   這個文件將告訴 Joomla! 如何安裝這個組件

 

PS:site在這裏是固定寫法,在組建安裝後,他會被自動替換爲對應的組件名,比如:如果我們的組件叫hello,那麼site在安裝後就會被替換爲com_hello。

 

我們總是通過一個入口訪問Joomla!——在頁面這邊是index.php,在後臺管理端是administrator/index.php。這裏這個index.php是Joomla!的文件,而不是組件的一部分,我們通過這個文件來訪問我們的組件,形如:

 

index.php?option=com_hello&view=hello

 

在地址欄裏輸入這個地址就會訪問我們組件的入口components/com_hello/hello.php

下面是入口文件樣例(代碼來自Joomla!官方網站)

 

第一句是安全檢查,如果不符合當前安全要求的,比如沒有訪問權限,頁面不能訪問

JPATH_COMPONENT 是當前組件的路徑,在這個例子中是components/com_hello。如果是管理端,則用JPATH_COMPONENT_ADMINISTRATOR。

 

在controller創建文成後,就要使用它來執行任務了。可以通過在地址欄輸入地址來制定要執行的任務,形如:URL: index.php?option=com_hello&task=sometask,如果並沒有指定任務,那麼將默認執行任務display。

注意:文件結束部分並沒有使用標籤 ?>來結束文件。從Joomla!1.5以後,所有的純php文件都將如此。這樣做的目的是爲了避免生產不必要的空格(希望有一天能明白爲啥會這樣)

 

創建控制器  site/controller.php

由於這個例子要求的非常簡單,所以只有一個任務——說hello

 

除非制定了別的任務,JController總是會在構造函數中註冊display任務。display是JController的默認任務。

 

創建視圖

視圖的任務非常簡單——獲取到要被現實的數據,並把數據傳送給顯示模板。傳送數據的方法是JView::assignRef。(注意:assignRef的第一個參數不能以下劃線開頭,例如:$this->assignRef('_greeting',$greeting),如果這樣做了,那麼assignRef將會返回false或者數據不能被傳送到模板中去。)

示例代碼:(site/views/hello/view.html.php)

 

 

創建模板

在Joomla!裏,模板是把從試圖傳送過來的數據按照模板規定的樣式顯示出來。模板就是一個php文件。在模板裏使用$this->{propertyname}來訪問從視圖傳送過來的數據變量。

在本示例中,模板非常簡單

site/views/hello/tmpl/default.php

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章