登入  |  English
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
技術專欄 CMS 優質新秀-Joomla!(上)

CMS 優質新秀-Joomla!(上)

兼具高度開發彈性、客製化功能、操作簡易、外觀優美等特性的 CMS 系統 Joomla!,於 2006 年 9 月剛滿一週年,在短短的時間內,吸引全世界數以萬計的網站以此作為核心架構,並在 2006 年於知名出版商 Packt 所舉辦的開放源碼 CMS 比賽(註一),以第一名的優秀成績勝出。筆者將以網站開發者及網站維護者的角度,引領讀者入門至 Joomla! 的秘密花園一探究竟。

◎ 關於 Joomla!

Joomla! 是一套開放原始碼的內容管理系統 (Content Management System, CMS) 系統(註二),其名稱來自非洲斯瓦希里語的方言 "Jumla",語意是 "all together" 或 "as a whole"。原始碼版權宣告採用 GNU GPL(註三)方式釋出,因此使用者可隨意下載散布使用。

過去 Joomla! 的前身是另一套 CMS 系統 Membo,由於原公司 Miro 將改以商業化的方式發展,與核心開發小組之間的意見相左,因此近八成的原開發小組成員,於 2005 年 8 月離開 Membo 開發團隊,另成立新的開放源碼計劃 Joomla! 目前是由Open Source Matters 這個開放源碼組織進行開發及支援。

Joomla! 在版本上,目前共有兩個分支 1.0.X 及 1.5,其中 1.0.X 的版本與 Membo 4.5.3 的架構差異不大,而最新釋出的 1.5 版為了提升使用者運用上的操作效能,開發團隊做了不少努力,除了在內部程式結構做了大幅度調整,讓網站開發者能更便捷的操作運用,在外觀上也下了不少功 夫,並加入目前最熱門的 AJAX 技術,讓使用者操作上更為方便、簡單。兩者目前皆有中文化支援 UTF-8 的版本釋出,也提供了詳細的中文手冊,讀者可至 TaiwanJoomla 繁體中文支援社群下載,或是 Joomla! 官方網站下載英文版。

◎ 依使用者的角度來看Joomla!

對於網站維護者而言,Joomla! 使用 PHP 語言加上 MySQL 資料庫系統,在台灣擁有廣大的社群與使用者,開發、維護上的任職或外包上較不成問題,而隨著組織發展需要將內容轉移至其他平台,也有其相對應的程式或模組 可用。在建置過程上,過去建置一個全方位的 Web 服務系統,需顧及其他功能的需求,額外建置如電子報、論壇、照片管理等相關的軟體。同時維護這麼多軟體,如發生狀況,對於維護者來說,實在是件很麻煩的 事。此外,不同的軟體在畫面呈現上,較少能整合成有一致性的外觀,常讓網頁使用者身處於在不同網站的錯覺感,而專業的 Web 服務網站,為了整合這些軟體,並達到一致性的效果,常需花費不少的功夫及成本。

因此對於網站維護者來說,一套能快速整合這些軟體,並擁有強而有力的後盾支援,將有莫大的幫助。於此,以開放源碼釋出的 Joomla!,在廣大的社群熱心服務下,提供了相當多元的擴充套件及支援,甚至由於開發 Joomla! 相關套件非常的簡便,有不少自行開發的套件已發展成熟,並以商業化的模式出售,讀者可依個人需求下載免費的套件或是自行購買,筆者建議購買以 GPL 釋出的套件較佳。此外台灣 Joomla! 社群也提供了不少中文化的版本套件,供使用者參考下載。

在使用套件前,讀者需先行了解套件的種類。Joomla! 擴充套件區分為元件、模組、自動化程式及網頁版型,筆者於下列做個簡單的說明。

類別

說明

元件(Components)

一個擁有完整功能的獨立軟體,如電子報、照片管理、論壇等等。

模組(Modules)

模組是元件的延伸小功能或Joomla!內建小功能,它能控制一些簡單的功能 項目及網頁版型的位置。

自動化程式(Mambots)

處理一些網站作業任務的功能。例如Email Cloaking :掩蓋所有在內容中的Email,用於防堵灌水程式 (spambots)。

網頁版型(Templates)

網頁外觀,以CSS 控制版型位置。

了解套件的類別後,針對不同的特性,筆者試用了一些覺得還不錯的項目,於下列列舉供讀者參考。

類別

名稱

說明

UTF-8

手冊/說明

元件

Joom!Fish

多國語言

元件

eventCal

行事曆

元件

Letterman

電子報

元件

Docman

檔案管理

元件

RSgallery

照片管理

元件

JoomlaXplorer

系統檔案管理工具

元件

Joomap

網站地圖

自動化程式

lightThumb

看圖程式

(註四)

此外,對於網站開發者而言, Joomla! 雖提供了相當多元的擴充套件,但對於不同類型網站案例來說,不管是針對現有的套件進行修正,或是自行開發,仍然需要進行客製化的調整。而採用程式與內容分 開管理模式的 Joomla!,對於需自行開發擴充套件的開發者,提供相當大的發展空間。

Joomla! 所有的功能請求皆導向由 index.php 處理(管理端為 index2.php),主程式所會運用到的function,讀者可在安裝目錄下的includes/ frontend.php 找到。如果欲自行開發元件或模組的話,需先了解一些簡單的依循規則,筆者簡單的列舉在開發元件、模組時,所需注意的事項及基礎知識,供讀者參考。

一、元件 (components)

  1. 所有的元件皆建置於 components/ 這個目錄下,每一個目錄皆視為一個元件。
  2. 其目錄的命名原則以 "com_"+元件名稱,如:com_hello。
  3. 元件目錄內的檔案共分三種,其命名原則如下列表:

元件名稱.php

: hello.php

元件名稱.class.php

: hello.class.php

元件名稱.html.php

: hello.html.php

(註五)

基本上,依此命名格式所建置下來的目錄及檔案,主程式語言寫在元件名稱+ ".php" 這個檔案下,該元件即立即生效,可以運作。

在運作方式,皆透過 joomla! 主程式 index.php 來處理即可,因此寫好的元件,只要於瀏覽器上輸入 https://127.0.0.1/joomla/index.php?option=com_元件名稱,即可看到您寫的元件程式顯示結果。建置過程是不 是相當的容易呢!

(下期待續)

(如讀者針對本文有任何的想法及意見,可來信至 allywang at iis.sinica.edu.tw)

註一:請參考 PACKT比賽內容
註二:內容管理系統 (Content Management System,CMS) 是一套電腦軟體系統,協助使用者進行內容管理的過程,運用於網頁內容呈現的部分,其系統功能優於組織、控制龐大的內容文件或其他內容,如圖片、多媒體等等。
註三:請參考自由軟體鑄造場->自由軟體授權與政策->授權條款介紹
註四:下載網址,筆者在此列舉一些不錯的網站,供讀者參考:

  1. TaiwanJoomla中文支援社群
  2. Joomla!
  3. Joomla!R esource
  4. WhichWorkStation

註五:元件目錄上的元件名稱及檔案的元件名稱需相同,否則將無法執行。



您也許有興趣閱讀以下文章:




自由軟體鑄造場電子報 : 第 73 期 CMS

分類: 技術專欄