第一章 Joomla!扩展开发:概况
Joomla!擴(kuò)展開(kāi)發(fā):概況
你以前開(kāi)發(fā)過(guò)動(dòng)態(tài)網(wǎng)站但你的朋友告訴你有關(guān)Joomla!的事,所以你決定試一試。從食物網(wǎng)上那些出名的廚師中得到靈感后,你想建立一個(gè)簡(jiǎn)單的關(guān)于餐廳的網(wǎng)站。這個(gè)網(wǎng)站的安裝比你期望要建立的內(nèi)容管理系統(tǒng)要快速和平穩(wěn)。
當(dāng)你找到一個(gè)精美的模板并添加了一些菜單和一些內(nèi)容后,你開(kāi)始考慮增加一些新的特性可以給你帶來(lái)更多的訪問(wèn)量,甚至一些錢。之后,你安裝了購(gòu)物車來(lái)買書(shū),一個(gè)論壇來(lái)收集意見(jiàn)和一些邊欄廣告。
為什么擴(kuò)展Joomla
Joomla!不但能夠處理內(nèi)容文章,而且允許你干凈地綜合各種復(fù)雜的應(yīng)用。開(kāi)發(fā)者為Joomla!開(kāi)發(fā)各種擴(kuò)展,如購(gòu)物車、論壇、職位發(fā)布等。所有這些擴(kuò)展能夠運(yùn)行在單個(gè)數(shù)據(jù)庫(kù)、模板和核心。我們開(kāi)發(fā)出來(lái)的擴(kuò)展,界面是完全統(tǒng)一的。
當(dāng)你正確地開(kāi)發(fā)擴(kuò)展時(shí),你就不用登錄數(shù)據(jù)庫(kù)和做其他基本的配置。另外,你也可以分發(fā)你自己開(kāi)發(fā)的擴(kuò)展給別人和別人分享,不需要另外的編程和數(shù)據(jù)庫(kù)操作。
自定義 VS 擴(kuò)展
Joomla!的代碼是設(shè)計(jì)成可擴(kuò)展的而不是直接修改它的核心代碼。當(dāng)有升級(jí)版本或者有補(bǔ)丁的時(shí)候,Joomla!會(huì)升級(jí)它本身的核心代碼,而你的擴(kuò)展你不會(huì)被覆蓋的。
如何擴(kuò)展Joomla
Joomla!支持三類擴(kuò)展,每一類都有特殊的用途。
1. 組件
組件是最基本的,組件就是你所看到的頁(yè)面的主要部分。Joomla!的設(shè)計(jì)是來(lái)為每個(gè)頁(yè)面加載和運(yùn)行一個(gè)組件。因此,Joomla!核心的內(nèi)容管理功能本身也是一個(gè)組件。
組件經(jīng)常會(huì)有強(qiáng)大的后端管理。后端通常用來(lái)創(chuàng)建和更新數(shù)據(jù)庫(kù)記錄。你也可以用它來(lái)允許網(wǎng)站管理員來(lái)上傳圖片或者視頻。
2. 模塊
相對(duì)組件,一個(gè)頁(yè)面可以有很多的模塊。模塊一般由邊欄的元素或者是內(nèi)容菜單組成,模塊顯示組件的內(nèi)容,它們不是頁(yè)面的主要內(nèi)容。Joomla! 也支持不需要編程的內(nèi)容模塊。模塊后端的控制是有限制的,一般由基本的格式組成。
3. 插件
當(dāng)網(wǎng)站需要插入一些代碼來(lái)實(shí)現(xiàn)某些邏輯,它可以由插件實(shí)現(xiàn)(以前叫做Mambot)。插件一般用來(lái)格式化頁(yè)面的組件或者模塊的輸出。例如有這樣的組件,關(guān)鍵字高亮顯示、文章評(píng)論表單、基于JavaScript的HTML編輯器等。后端的控制與模塊相似。
主題概況
創(chuàng)建工具欄和列表
Joomla!的后端提供了一套標(biāo)準(zhǔn)的工具欄按鈕。它們使得界面可以保持一致的風(fēng)格,所以使用者可以很快地熟悉相應(yīng)的功能。如果有必要的話,這些按鈕可以修改和添加。和標(biāo)準(zhǔn)的工具欄一樣,數(shù)據(jù)庫(kù)記錄的列表也有統(tǒng)一的顯示風(fēng)格。這些列表通常會(huì)包括編輯單條記錄的鏈接,改變發(fā)布狀態(tài)的鏈接和提供自動(dòng)分頁(yè)功能。
使用HTML函數(shù)來(lái)維護(hù)一致的外觀和減少重復(fù)的代碼
在你的擴(kuò)展里,有各種標(biāo)準(zhǔn)的CSS類名可以用來(lái)格式化內(nèi)容和HTML元素。另外,Joomla!包含很多函數(shù)可以自動(dòng)生成復(fù)選框、下拉框和其他通用的元素。
訪問(wèn)數(shù)據(jù)庫(kù)和管理記錄
Joomla!提供了一個(gè)公用的數(shù)據(jù)庫(kù)對(duì)象,可以讓每個(gè)頁(yè)面的請(qǐng)求只適用一個(gè)連接。這個(gè)對(duì)象提供了一組函數(shù)用來(lái)查詢數(shù)據(jù)和返回結(jié)果。這些函數(shù)是獨(dú)立數(shù)據(jù)庫(kù)的,他們被設(shè)計(jì)成支持一個(gè)數(shù)據(jù)庫(kù)多Joomla!。除了一個(gè)公用的數(shù)據(jù)庫(kù)對(duì)象,Joomla!還提供了標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)表類。使用它核心的函數(shù)可以創(chuàng)建、讀取、更新和刪除記錄。也可以添加這樣的邏輯,當(dāng)父記錄被刪除,其他表的子記錄也會(huì)被刪除。
安全和獲取請(qǐng)求變量的首選方法
既然Joomla!是一個(gè)公開(kāi)的web 應(yīng)用,有必要保護(hù)他免受攻擊。Joomla!提供了只有在框架里被調(diào)用的保險(xiǎn)的腳本方法,也不會(huì)隨便地執(zhí)行。除非是未明的腳本行為,黑客能故意地提交數(shù)據(jù)來(lái)訪問(wèn)你的數(shù)據(jù)庫(kù),Joomla!提供了阻止這類攻擊的功能。
菜單項(xiàng)控制
Joomla!的一個(gè)顯著的特性是導(dǎo)航與內(nèi)容分離。然而,如果一個(gè)組件創(chuàng)建時(shí)沒(méi)有考慮到這一點(diǎn),網(wǎng)站管理員可能會(huì)不能選擇他們的模板和模塊。為了利用這給系統(tǒng),有必要在產(chǎn)生連接時(shí)使用既定的菜單項(xiàng)ID數(shù)字。組件的鏈接可以有多個(gè)選項(xiàng),允許在前端顯示不同的選擇而不用手工去構(gòu)建長(zhǎng)長(zhǎng)的URL。
控制組件的邏輯流
當(dāng)某一個(gè)組件被加載時(shí)同一個(gè)文件被調(diào)用,但是執(zhí)行不同的函數(shù)。Joomla!使用標(biāo)準(zhǔn)的變量來(lái)決定每個(gè)請(qǐng)求要執(zhí)行的函數(shù)。對(duì)于比較小的組件,可以用來(lái)從數(shù)據(jù)庫(kù)和其它處理函數(shù)直接處理輸出,比較大的組件會(huì)使用controller來(lái)處理邏輯流,用model來(lái)處理數(shù)據(jù)訪問(wèn),用views來(lái)控制輸出。這樣的約定使得維護(hù)代碼更加容易和幫助組件以更可靠的方式執(zhí)行。
通過(guò)XML進(jìn)行參數(shù)配置
Joomla!不是通過(guò)創(chuàng)建單獨(dú)的表來(lái)處理擴(kuò)展的配置信息,而是預(yù)留了一個(gè)字段來(lái)處理。變量通過(guò)擴(kuò)展中的XML文件定義。XML文件也提供了默認(rèn)值和約束這些參數(shù)。而且會(huì)自動(dòng)地保存和返回這些值,而不需要手寫(xiě)查詢語(yǔ)句。
打包和分發(fā)
一旦所有的代碼都編寫(xiě)完成,它是很容易打包給其他人使用的。所有文件的一個(gè)列表會(huì)被加入到XML文件中。任何需要建立數(shù)據(jù)表的查詢語(yǔ)句也會(huì)包含在里面。所有文件被壓縮成一個(gè)文件,然后這個(gè)擴(kuò)展就可以被任何基于Joomla!的網(wǎng)站安裝和使用。
轉(zhuǎn)載于:https://www.cnblogs.com/vicenteforever/articles/1629953.html
總結(jié)
以上是生活随笔為你收集整理的第一章 Joomla!扩展开发:概况的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 成功秘诀
- 下一篇: 利用PIX来搭建×××