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