JOOMLA 
Giảng viên hướng dẫn : Thầy Phạm Thanh Hà - Bộ môn Mạng & HTTT 
Sinh viên : Lương Bá Hợp MSSV 1105068 
Lớp : Hệ Thống Thông Tin K52 
1
Mục lục 
Thiết kế web Joomla 
I. Joomla là gì ? 
II. Cài đặt như thế nào ? 
III. Joomla extensions là gì ? 
IV. Xây dựng Template 
V. Xây dựng module 
JOOMLA 
VI. Xây dựng component
I. Joomla là gì ? 
 1 Khái niệm 
- Joomla là một hệ quản trị nội dung mã 
nguồn mở ( Content Management System 
-CMS) 
- Joomla được viết bằng ngôn ngữ PHP và 
kết nối tới cơ sở dữ liệu MySQL . 
3
I. Joomla là gì ? 
 2. Lịch sử ra đời 
- Ngày 16 -9 - 2005 Tổ chức Open Source 
Matters đã cho Joomla 1.0 ra đời . 
- Open Source Matters là tổ chức phi lợi 
nhuận , đứng đầu là Andrew Eddie (người 
Úc). 
4
I. Joomla là gì ? 
 3 . Các dòng phiên bản 
Hiện Joomla đã có các dòng phiên bản chính: 
- Dòng phiên bản 1.0.X (Phiên bản đầu tiên ) hay còn gọi là Joomla 
1.0.0 được phát hành (16 / 9/2005) 
- Dòng phiên bản 1.5.X (thế hệ thứ 2) 
- Dòng phiên bản 2.5.x 
- Dòng phiên bản 3.0.x, đang ở dạng 3.0 alpha-1. 
- Cho tới thời điểm này, Phiên bản 3.2.x đã ra đời, bản mới nhất của 
là 3.2.3 
5
I. Joomla là gì ? 
 4. Kiến trúc của joomla 
Joomla gồm có 3 tầng hệ thống : 
- Tầng dưới cùng là mức nền tảng, chứa các thư viện 
và các plugin 
- Tầng thứ hai là mức ứng dụng và chứa 
lớp JApplication. Hiện tại tầng này gồm 3 lớp 
con: JInstallation, JAdministrator vàJSite. 
- Tầng thứ ba là mức mở rộng, tại tầng này có các 
thành phần (component), mô đun (module) và giao diện 
(template) được thực thi và thể hiện. 
6
I. Joomla là gì ? 
 5 Ứng dụng của joomla 
Joomla được ứng dụng vào: 
- Các cổng thông tin điện tử hoặc các website doanh 
nghiệp 
- Thương mại điện tử trực tuyến 
- Báo điện tử, tạp chí điện tử 
- Website của các doanh nghiệp vừa và nhỏ 
- Website của các cơ quan, tổ chức phi chính phủ 
- Website các trường học 
- Website của gia đình hay cá nhân ... 
7
II. Cài đặt joomla như thế nào ? 
 1. Môi trường và công cụ phát triển 
Để xây dựng và phát triển ứng dụng này ta cần phải cài đặt 
môi trường máy ảo php và có các công cụ cần thiết sau : 
- Server Apache 
- Bộ php 
- Bộ MySQL 
- Phiên bản mã nguồn mở joomla ổn định 
- Các chương trình soạn thảo : phpDesigner 2008 , 
Dreamwear CS6… 
8
II. Cài đặt joomla như thế nào ? 
 1 Môi trường và công cụ phát triển (tiếp) 
=> Để thuận lợi và nhanh chóng hơn , ta có thể cài bộ 
XAMPP tích hợp tất cả server apache php và mysql 
- XAMPP : dùng để giả lập máy tính của bạn thành một 
máy chủ web ( máy tính của bạn khi được giả lập máy 
chủ web sẽ được gọi là : localhost , để phân biệt với các 
máy chủ đang hoạt động trên web là host server ) 
9
II. Cài đặt joomla như thế nào ? 
 1 Môi trường và công cụ phát triển (tiếp) 
Cụ thể như sau : 
- Joomla phiên bản 1.5.25 
(http://www.joomla.org/download.html) 
Đây là phiên bản ổn định , dễ tiếp cận và sử 
dụng cho người mới nghiên cứu về joomla 
- Dreamwear CC 
- XAMPP 1.7.7 
10
II. Cài đặt joomla như thế nào ? 
 2 Tiến hành cài đặt 
Bước 1 : Tạo 1 CSDL trên MySQL 
Bước 2 : Copy folder Joomla đặt vào trong 
folder htdocs của XAMPP 
Bước 3 : Vào trình duyệt truy cập vào địa chỉ 
như sau : http://localhost/ten_folder_joomla 
Bước 4 : Làm theo 7 bước được yêu cầu . 
11
II. Cài đặt joomla như thế nào ? 
 3 Lỗi 
Khi bạn cài đặt gói XAMPP , Joomla 1.5 Bạn thấy dòng lỗi tương 
tự như sau : 
Strict Standards: Declaration of JButtonPopup::fetchId() should be compatible with that of 
JButton::fetchId()inD:LearningJoomla librariesjoomlahtmltoolbarbuttonpopup.php on line 78 
Khắc phục bằng cách : 
Bước 1: vào ổ đĩa cài đặt XAMPP, ở đây mình cài ổ C: nên có 
đường dẫn như sau C:xamppphpphp.ini 
Bước 2: mở tập tin php.ini ra 
Bước 3: thay error_reporting = E_ALL | 
E_STRICT thành error_reporting = E_ALL & ~E_NOTICE 
Tìm và sửa : 
display_errors = On => display_errors = Off 
Bước 4: mở XAMPP Control Panel Application, restart lại Apache 
12
III. Joomla Extensions là gì ? 
 1. Khái niệm 
Joomla Extensions là các thành phần mở 
rộng của Joomla, đó là các gói ứng dụng 
được phát triển bởi Joomla hoặc các hãng 
thứ ba nhằm bổ sung và tăng cường tính 
năng cho Joomla giúp người sử dụng nhanh 
chóng triển khai một hệ thống website phức 
tạp với nhiều chức năng, dịch vụ khác nhau. 
13
III. Joomla Extensions là gì ? 
 1 Khái niệm ( tiếp ) 
Để tìm một Extension đáp ứng yêu cầu của bạn như: Tạo website 
cộng đồng, tạo trang web chia sẻ tài liệu, chia sẻ video/nhạc... 
bạn có thể truy cập vào Website Joomla Extensions Directory (JED). 
Tại đây bạn có thể chọn cho mình một extension phù hợp từ danh 
mục có sẵn hoặc theo từ khóa mà bạn chỉ định. 
Có rất nhiều Extensions được phát hành miễn phí và có mã nguồn 
mở, điều đó có nghĩa là bạn được tự do sử dụng, tự do chỉnh sửa 
mã nguồn theo yêu cầu riêng của bạn. Một số Extension khác thì 
phát hành có phí. Mặc dù vậy mức giá các Extension thương mại 
này đều khá phù hợp 
14
III. Joomla Extensions là gì ? 
 2. Các loại joomla extensions 
Component: Đây là ứng dụng thực hiện một 
chức năng lớn (tương tác với người sử dụng 
ở mức cao). VD như: Quản lý tin bài, quản lý 
quảng cáo, quản lý sản phẩm, quản lý 
download... 
Module: Chủ yếu nhằm mục đích hiển thị 
thông tin (tương tác với người sử dụng ở 
mức thấp). VD như: tin mới nhất, tin đọc 
nhiều nhất, đếm số lượt truy cập... 
15
III. Joomla Extensions là gì ? 
 2. Các loại joomla extensions( tiếp ) 
Plugin: Nhằm thực hiện những chức năng đặc 
biệt hoặc giúp tự động hóa một số quy trình, 
công đoạn. VD như: Cung cấp trình soạn 
thảo, xử lý chứng thực quyền hạn, tự động 
thay thế các đoạn mã chèn video, flash, 
mp3... Template: Gói giao diện tạo nên bố 
cục và hình hài của Website 
Language: Gói ngôn ngữ bản địa 
Tools: Các công cụ hỗ trợ khác 
16
IV. Xây dựng Template 
 1. Tại sao phải thiết kế template ? 
Sau khi tìm hiểu về CMS Joomla và cũng đã biết sức 
mạnh phổ biến và được nhiều người dùng nó đến thế 
nào. Khi đã tin cậy sử dụng 1 CMS cho việc xây dựng 1 
website, hẳn là các bạn đã hài lòng về các tính năng nó 
đem lại hay được nhiều người dùng hỗ trợ . 
Và vấn đề còn lại là giao diện của website, quả thật 
template luôn là vấn đề được quan tâm thứ 2 khi sử 
dụng 1 CMS để xây dưng website, template luôn là bộ 
mặt thể hiện cho Website để thu hút người dùng. 
17
IV. Xây dựng Template 
 2 Cấu trúc của một template như nào ? 
Một template Joomla có thể có nhiều file, tùy tính năng, nhưng cần 
ít nhất có các file sau: 
- index.php: đây là file quan trọng nhất, có nhiệm vụ định dạng cho 
trang web của bạn 
- templateDetails.xml: file này cấu hình thông tin về template của bạn 
như: thông tin về tác giả template, các vị trí (position), các tham số 
(params). 
- template_thumbnail.png: file hình mô tả template của ban (Hình 
này sẽ hiện ra khi bạn vào Template Manager) 
- params.ini: Chứa các tham số được người dùng nhập trong 
template. 
18
IV. Xây dựng Template 
 3 Xây dựng template như nào ? 
Trước khi bắt đầu, Ta sẽ phác thảo trước giao diện template, ví dụ 
template sẽ làm như sau: 
19
IV. Xây dựng Template 
 3 Xây dựng template như nào ? 
a, Tạo file index.php 
<body> 
<div id="all"> 
<div id="header"> 
<jdoc:include type="modules" name="header" style="xhtml" /> 
</div><!--Kết thúc thẻ header--!--> 
<div class="clear"></div> 
<?php if ($this->countModules('menu')): ?> 
<div id="menu"> 
<jdoc:include type="modules" name="menu" style="xhtml" /> 
</div><!--Kết thúc thẻ menu--!--> 
<div class="clear"></div> 
<?php endif; ?> 
<?php if ($this->countModules('slider')): ?> 
<div id="slider"> 
<jdoc:include type="modules" name="slider" style="xhtml" /> 
</div><!--Kết thúc thẻ slider--!--> 
<div class="clear"></div> 
<?php endif; ?> 
(Trích code trong file index.php) 20
IV. Xây dựng Template 
 3 Xây dựng template như nào ? 
a, Tạo file index.php (t) 
Giải thích một vài câu lệnh : 
defined('_JEXEC') or die('Restricted access'); 
Đoạn mã này nó sẽ hiển thị 1 đoạn thông báo hạn chế truy 
cập. Câu lệnh này rất quan trọng đối cho sự an toàn của 
Joomla. 
<?php if ($this->countModules('user1')):?> 
<jdoc:include type="modules" name="user1" style="xhtml" /> 
<?php endif; ?> 
Câu lệnh này kiểm tra tại vị trí user1 có tồn tại module nào 
không ?, nếu có thì hiển thị, và nếu không thì sẽ ẩn đi 21
IV. Xây dựng Template 
 3 Xây dựng template như nào ? 
a, Tạo file index.php (t) 
Giải thích một vài câu lệnh : 
<jdoc:include type="modules" name="left" style="xhtml" /> 
Các position được khai báo bằng thuộc tính name 
của đối tượng jdoc. Ở đây, câu lệnh này sẽ hiển thị 
các module tại vị trí left. 
22
IV. Xây dựng Template 
 3 Xây dựng template như nào ? ( tiếp ) 
b, Cấu hình file style.css 
File style.css sẽ định dạng kích thước , màu sắc … cho các đối tượng html 
*{ margin:0px auto ; padding:0px} 
.clear{ clear:both} 
ul , ol{ list-style:none} 
a{ text-decoration:none} 
body{ background: url(images/nenbody.gif); font-family:Tahoma, Geneva, sans-serif; font-size:12px} 
#all{ width:1000px; min-height:1200px;margin:0px auto; background:#FFF } 
#header{width:1000px; height:83px; float:left; background:url(images/banner.png)} 
#menu{width:1000px; height:50px; float:left; background:#090;} 
#slider{ float:left; width:1000px; height:335px} 
#main{width:1000px; float:left; min-height:1000px } 
#left{width:200px; float:left; text-align:center} 
#content{width:600px; float:left; text-align:center} 
#right{width:200px; float:right} 
#footer{width:1000px; height:150px; float:left; background: #0F3} 
23
IV. Xây dựng Template 
 3 Xây dựng template như nào ? ( tiếp ) 
c, Tạo file templateDetails.xml : 
<?xml version="1.0" encoding="utf-8"?> 
<install version="1.5" type="template"> 
<name>Lương Bá Hợp </name> 
<version>1.0.0</version> 
<creationDate>03/03/2014</creationDate> 
<author>HTTT-K52</author> 
<authorEmail>luonghop.lc@gmail.com</authorEmail> 
<copyright>© copyright 2014</copyright> 
<license>GNU/GPL</license> 
<description>Demo Template </description> 
<files> 
<filename>component.php</filename> 
<filename>css/images/index.html</filename> 
<filename>css/index.html</filename> 
<filename>html/index.html</filename> 
<filename>html/modules.php</filename> 
<filename>html/pagination.php</filename> 
<filename>images/index.html</filename> 
<filename>index.html</filename> 
(Trích code file templateDetails.xml) 
24
IV. Xây dựng Template 
 3 Xây dựng template như nào ? ( tiếp ) 
Kỹ thuật Template Override 
Viết lại template cho các module và component, đây gọi 
là kỹ thuật Template Override, 1 tính năng nâng cao của 
template Joomla 
Mặc định, các template của module hay component được 
đặt trong 1 folder có tên là tmpl, nằm trong folder của com 
hay module đó. Với com thì có thể nó nằm trong 1 thư 
mục view nữa, vì các com của joomla thường viết theo mô 
hình mvc, nên sẽ có các thư mục như controller, model, 
view. 
25
IV. Xây dựng Template 
 3 Xây dựng template như nào ? ( tiếp ) 
Kỹ thuật Template Override (t) 
Tự động , hệ thống của Joomla sẽ nhận diện các template 
được chỉnh sửa trong thư mục html nằm trong thư mục 
template. File default.php khi đặt trong folder html, phải 
được đặt trong 1 folder có tên tương ứng với module hay 
com chúng ta chỉnh sửa. 
Chúng ta sẽ sử dụng kỹ thuật này để thiết kế lại 1 
template của com hay module mà chỉ khi sử dụng 
template của chúng ta, nó mới được thay đổi, còn nếu sử 
dụng các template khác, nó vẫn bình thường 
26
IV. Xây dựng Template 
 3 Xây dựng template như nào ? ( tiếp ) 
Kỹ thuật Template Override (t) 
Một khi không muốn sử dụng chúng nữa ta chỉ cần xóa 
folder file đó trong thư mục html của template. Hệ thống 
Joomla sẽ tự động nhận diện lại file template nằm trong 
thư mục các module hay component 
27
V. Xây dựng Module 
 1 Tại sao phải thiết kế module ? 
Sau khi cài đặt Joomla chỉ có một số Modun 
cơ bản cần thiết cho Web Site hoạt động, 
muốn mở rộng thêm chức năng cho Web 
Site thông thường cần phải cài đặt thêm các 
phần mở rộng (Extensions) khác. Tuy nhiên 
đôi lúc cũng cần phải tự tạo cho riêng Web 
Site của mình một vài Modun để mở rộng 
thêm chức năng riêng cho Web Site. 
28
V. Xây dựng Module 
 2. Cấu trúc của một module ? 
Module gồm 4 file cơ bản được dùng trong mẫu tiêu chuẩn của việc 
phát triển module 
- mod_ten_module.xml - File này chứa thông tin về module . Nó 
định nghĩa ra các files cần thiêt để cài đặt từ trình cài đặt của joomla 
và chỉ ra các tham số cấu hình cho module 
- mod_ten_module.php - File này là điểm vào chính cho module . 
Nó sẽ thực hiện những khởi tạo cần thiết , gọi các helper để thu 
thập mọi dữ liệu cần thiết và include template hiển thị đầu ra của 
module 
- helper.php - File này chứa các lớp helper , được dùng để thực 
hiện các hành động thực sự để lấy về các thông tin mà sẽ được 
hiển thị trên module 
- tmpl/default.php – File này là template của module . Nó sẽ lấy về 
dữ liệu đã được thu thập bởi mod_ten_module.php và sinh ra mã 
html đê hiển thị lên trang web 
29
V. Xây dựng Module 
 3. Xây dựng 1 module như thế nào ? 
Ở đây mình sẽ đặt tên module là mod_chatbox . 
a, Tạo file mod_chatbox.php : File này thực hiện 3 nhiệm vụ : 
- Include file helper.php bằng câu lệnh require_once 
require_once( dirname(__FILE__).DS.'helper.php' ); 
- Triệu gọi phương thức trong lớp helper để lấy về dữ liệu 
$html = modChatboxHelper::getParams(&$params); 
- Include template để hiển thị đầu ra 
require( JModuleHelper::getLayoutPath( 'mod_chatbox' )); 
30
V. Xây dựng Module 
 3 Xây dựng 1 module như thế nào ? (t) 
Ở đây mình sẽ đặt tên module là mod_chatbox . 
b, Tạo file helper.php 
File helper.php chứa các lớp helper dùng để lấy về dữ liệu cho đầu ra 
của module 
class modChatboxHelper 
{ 
function getChatbox(&$params) 
{ 
return ‘hello world ! ’; 
} 
} 
31
V. Xây dựng Module 
 3 Xây dựng 1 module như thế nào ? (t) 
Ở đây mình sẽ đặt tên module là mod_chatbox . 
c, Tạo tmpl/default.php 
File default .php là một template nó sẽ hiển thị đầu ra của module 
<?php 
// Chống truy cập trực tiếp 
defined( '_JEXEC' ) or die( 'Restricted access' ); 
echo $html; 
?> 
32
V. Xây dựng Module 
 3 Xây dựng 1 module như thế nào ? (t) 
Ở đây mình sẽ đặt tên module là mod_chatbox . 
d, Tạo file mod_chatbox.xml 
File mod_chatbox.xml được dùng để chỉ ra những file nào mà trình 
cài đặt cần phải copy và sẽ được sử dụng bởi module maneger để 
xác định tam số nào được dùng để cấu hình cho module 
<?xml version="1.0" encoding="UTF-8"?> 
<install type="module" version="1.5.0"> 
<name>Chát </name> 
<author>Lương Bá Hợp </author> 
<creationDate>March 17 2014</creationDate> 
<copyright>@ COPY</copyright> 
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> 
<version>1.5.0</version> 
<description> Chat box</description> 
<files> 
<filename module="mod_chatbox">mod_chatbox.php</filename> 
<filename>index.html</filename> 
<filename>helper.php</filename> 
<filename>tmpl/default.php</filename> 
<filename>tmpl/index.html</filename> 
<filename>mod_chatbox.xml</filename> 
</files> 
</install> 
33
V. Xây dựng Module 
 3 Xây dựng 1 module như thế nào ? (t) 
Ở đây mình sẽ đặt tên module là mod_chatbox . 
e, Tạo mod_chatbox trên CSDL 
Truy cập : http://localhost/phpmyadmin/ 
Tìm đến bảng jos_modules trong CSDL mà ta đang sử dụng , rồi chèn 
thêm dữ liệu về module chat box 
=> Đến đây việc xây dựng module đã hoàn thành . 
34
VI. Xây dựng Component 
 1 Tại sao phải thiết kế component ? 
- Một component là một trong những thành 
phần mở rộng lớn nhất và phức tạp nhất. 
- Các component có thể xem như các ứng 
dụng mini. Một cách trực quan chúng ta có 
thể hình dung joomla là một hệ điều hành và 
tất cả các component là các ứng dụng 
desktop 
35
VI. Xây dựng Component 
 2 Một component gồm 2 phần : 
Một componet có hai phần chính: phần quản trị và phần trên site : 
+, Phần trên site là phần được sử dụng để tải về các trang khi được 
triệu gọi trong quá trình vận hành site thông thường 
+, Phần quản trị cung cấp giao diện để cấu hình, quản lý các khía 
cạnh khác nhau của component và được truy cập thông qua ứng 
dụng quản trị của joomla. 
36
VI. Xây dựng Component 
 3 Xây dựng 1 component như nào ? 
- Để xây dựng được 1 component khá phức tạp và cần nhiều 
thời gian hơn để nghiên cứu . 
- Bài thực hành chuyên môn của em xin phép được dừng tại 
đây ! 
37
Tài liệu tham khảo 
Trong quá trình tìm hiểu về đề tài joomla , em 
đã tìm hiểu tài liệu tại các diễn đàn và website 
sau : 
http://diendan.joomlaviet.vn/ 
http://forum.joomla.org/ 
http://www.diendan.laptrinhjoomla.com/ 
http://www.thietkewebtop.com/ 
Link tải các phiên bản Joomla 
http://www.joomla.org/download.html 
38

Tìm hiểu về Joomla

  • 1.
    JOOMLA Giảng viênhướng dẫn : Thầy Phạm Thanh Hà - Bộ môn Mạng & HTTT Sinh viên : Lương Bá Hợp MSSV 1105068 Lớp : Hệ Thống Thông Tin K52 1
  • 2.
    Mục lục Thiếtkế web Joomla I. Joomla là gì ? II. Cài đặt như thế nào ? III. Joomla extensions là gì ? IV. Xây dựng Template V. Xây dựng module JOOMLA VI. Xây dựng component
  • 3.
    I. Joomla làgì ?  1 Khái niệm - Joomla là một hệ quản trị nội dung mã nguồn mở ( Content Management System -CMS) - Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL . 3
  • 4.
    I. Joomla làgì ?  2. Lịch sử ra đời - Ngày 16 -9 - 2005 Tổ chức Open Source Matters đã cho Joomla 1.0 ra đời . - Open Source Matters là tổ chức phi lợi nhuận , đứng đầu là Andrew Eddie (người Úc). 4
  • 5.
    I. Joomla làgì ?  3 . Các dòng phiên bản Hiện Joomla đã có các dòng phiên bản chính: - Dòng phiên bản 1.0.X (Phiên bản đầu tiên ) hay còn gọi là Joomla 1.0.0 được phát hành (16 / 9/2005) - Dòng phiên bản 1.5.X (thế hệ thứ 2) - Dòng phiên bản 2.5.x - Dòng phiên bản 3.0.x, đang ở dạng 3.0 alpha-1. - Cho tới thời điểm này, Phiên bản 3.2.x đã ra đời, bản mới nhất của là 3.2.3 5
  • 6.
    I. Joomla làgì ?  4. Kiến trúc của joomla Joomla gồm có 3 tầng hệ thống : - Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin - Tầng thứ hai là mức ứng dụng và chứa lớp JApplication. Hiện tại tầng này gồm 3 lớp con: JInstallation, JAdministrator vàJSite. - Tầng thứ ba là mức mở rộng, tại tầng này có các thành phần (component), mô đun (module) và giao diện (template) được thực thi và thể hiện. 6
  • 7.
    I. Joomla làgì ?  5 Ứng dụng của joomla Joomla được ứng dụng vào: - Các cổng thông tin điện tử hoặc các website doanh nghiệp - Thương mại điện tử trực tuyến - Báo điện tử, tạp chí điện tử - Website của các doanh nghiệp vừa và nhỏ - Website của các cơ quan, tổ chức phi chính phủ - Website các trường học - Website của gia đình hay cá nhân ... 7
  • 8.
    II. Cài đặtjoomla như thế nào ?  1. Môi trường và công cụ phát triển Để xây dựng và phát triển ứng dụng này ta cần phải cài đặt môi trường máy ảo php và có các công cụ cần thiết sau : - Server Apache - Bộ php - Bộ MySQL - Phiên bản mã nguồn mở joomla ổn định - Các chương trình soạn thảo : phpDesigner 2008 , Dreamwear CS6… 8
  • 9.
    II. Cài đặtjoomla như thế nào ?  1 Môi trường và công cụ phát triển (tiếp) => Để thuận lợi và nhanh chóng hơn , ta có thể cài bộ XAMPP tích hợp tất cả server apache php và mysql - XAMPP : dùng để giả lập máy tính của bạn thành một máy chủ web ( máy tính của bạn khi được giả lập máy chủ web sẽ được gọi là : localhost , để phân biệt với các máy chủ đang hoạt động trên web là host server ) 9
  • 10.
    II. Cài đặtjoomla như thế nào ?  1 Môi trường và công cụ phát triển (tiếp) Cụ thể như sau : - Joomla phiên bản 1.5.25 (http://www.joomla.org/download.html) Đây là phiên bản ổn định , dễ tiếp cận và sử dụng cho người mới nghiên cứu về joomla - Dreamwear CC - XAMPP 1.7.7 10
  • 11.
    II. Cài đặtjoomla như thế nào ?  2 Tiến hành cài đặt Bước 1 : Tạo 1 CSDL trên MySQL Bước 2 : Copy folder Joomla đặt vào trong folder htdocs của XAMPP Bước 3 : Vào trình duyệt truy cập vào địa chỉ như sau : http://localhost/ten_folder_joomla Bước 4 : Làm theo 7 bước được yêu cầu . 11
  • 12.
    II. Cài đặtjoomla như thế nào ?  3 Lỗi Khi bạn cài đặt gói XAMPP , Joomla 1.5 Bạn thấy dòng lỗi tương tự như sau : Strict Standards: Declaration of JButtonPopup::fetchId() should be compatible with that of JButton::fetchId()inD:LearningJoomla librariesjoomlahtmltoolbarbuttonpopup.php on line 78 Khắc phục bằng cách : Bước 1: vào ổ đĩa cài đặt XAMPP, ở đây mình cài ổ C: nên có đường dẫn như sau C:xamppphpphp.ini Bước 2: mở tập tin php.ini ra Bước 3: thay error_reporting = E_ALL | E_STRICT thành error_reporting = E_ALL & ~E_NOTICE Tìm và sửa : display_errors = On => display_errors = Off Bước 4: mở XAMPP Control Panel Application, restart lại Apache 12
  • 13.
    III. Joomla Extensionslà gì ?  1. Khái niệm Joomla Extensions là các thành phần mở rộng của Joomla, đó là các gói ứng dụng được phát triển bởi Joomla hoặc các hãng thứ ba nhằm bổ sung và tăng cường tính năng cho Joomla giúp người sử dụng nhanh chóng triển khai một hệ thống website phức tạp với nhiều chức năng, dịch vụ khác nhau. 13
  • 14.
    III. Joomla Extensionslà gì ?  1 Khái niệm ( tiếp ) Để tìm một Extension đáp ứng yêu cầu của bạn như: Tạo website cộng đồng, tạo trang web chia sẻ tài liệu, chia sẻ video/nhạc... bạn có thể truy cập vào Website Joomla Extensions Directory (JED). Tại đây bạn có thể chọn cho mình một extension phù hợp từ danh mục có sẵn hoặc theo từ khóa mà bạn chỉ định. Có rất nhiều Extensions được phát hành miễn phí và có mã nguồn mở, điều đó có nghĩa là bạn được tự do sử dụng, tự do chỉnh sửa mã nguồn theo yêu cầu riêng của bạn. Một số Extension khác thì phát hành có phí. Mặc dù vậy mức giá các Extension thương mại này đều khá phù hợp 14
  • 15.
    III. Joomla Extensionslà gì ?  2. Các loại joomla extensions Component: Đây là ứng dụng thực hiện một chức năng lớn (tương tác với người sử dụng ở mức cao). VD như: Quản lý tin bài, quản lý quảng cáo, quản lý sản phẩm, quản lý download... Module: Chủ yếu nhằm mục đích hiển thị thông tin (tương tác với người sử dụng ở mức thấp). VD như: tin mới nhất, tin đọc nhiều nhất, đếm số lượt truy cập... 15
  • 16.
    III. Joomla Extensionslà gì ?  2. Các loại joomla extensions( tiếp ) Plugin: Nhằm thực hiện những chức năng đặc biệt hoặc giúp tự động hóa một số quy trình, công đoạn. VD như: Cung cấp trình soạn thảo, xử lý chứng thực quyền hạn, tự động thay thế các đoạn mã chèn video, flash, mp3... Template: Gói giao diện tạo nên bố cục và hình hài của Website Language: Gói ngôn ngữ bản địa Tools: Các công cụ hỗ trợ khác 16
  • 17.
    IV. Xây dựngTemplate  1. Tại sao phải thiết kế template ? Sau khi tìm hiểu về CMS Joomla và cũng đã biết sức mạnh phổ biến và được nhiều người dùng nó đến thế nào. Khi đã tin cậy sử dụng 1 CMS cho việc xây dựng 1 website, hẳn là các bạn đã hài lòng về các tính năng nó đem lại hay được nhiều người dùng hỗ trợ . Và vấn đề còn lại là giao diện của website, quả thật template luôn là vấn đề được quan tâm thứ 2 khi sử dụng 1 CMS để xây dưng website, template luôn là bộ mặt thể hiện cho Website để thu hút người dùng. 17
  • 18.
    IV. Xây dựngTemplate  2 Cấu trúc của một template như nào ? Một template Joomla có thể có nhiều file, tùy tính năng, nhưng cần ít nhất có các file sau: - index.php: đây là file quan trọng nhất, có nhiệm vụ định dạng cho trang web của bạn - templateDetails.xml: file này cấu hình thông tin về template của bạn như: thông tin về tác giả template, các vị trí (position), các tham số (params). - template_thumbnail.png: file hình mô tả template của ban (Hình này sẽ hiện ra khi bạn vào Template Manager) - params.ini: Chứa các tham số được người dùng nhập trong template. 18
  • 19.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? Trước khi bắt đầu, Ta sẽ phác thảo trước giao diện template, ví dụ template sẽ làm như sau: 19
  • 20.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? a, Tạo file index.php <body> <div id="all"> <div id="header"> <jdoc:include type="modules" name="header" style="xhtml" /> </div><!--Kết thúc thẻ header--!--> <div class="clear"></div> <?php if ($this->countModules('menu')): ?> <div id="menu"> <jdoc:include type="modules" name="menu" style="xhtml" /> </div><!--Kết thúc thẻ menu--!--> <div class="clear"></div> <?php endif; ?> <?php if ($this->countModules('slider')): ?> <div id="slider"> <jdoc:include type="modules" name="slider" style="xhtml" /> </div><!--Kết thúc thẻ slider--!--> <div class="clear"></div> <?php endif; ?> (Trích code trong file index.php) 20
  • 21.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? a, Tạo file index.php (t) Giải thích một vài câu lệnh : defined('_JEXEC') or die('Restricted access'); Đoạn mã này nó sẽ hiển thị 1 đoạn thông báo hạn chế truy cập. Câu lệnh này rất quan trọng đối cho sự an toàn của Joomla. <?php if ($this->countModules('user1')):?> <jdoc:include type="modules" name="user1" style="xhtml" /> <?php endif; ?> Câu lệnh này kiểm tra tại vị trí user1 có tồn tại module nào không ?, nếu có thì hiển thị, và nếu không thì sẽ ẩn đi 21
  • 22.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? a, Tạo file index.php (t) Giải thích một vài câu lệnh : <jdoc:include type="modules" name="left" style="xhtml" /> Các position được khai báo bằng thuộc tính name của đối tượng jdoc. Ở đây, câu lệnh này sẽ hiển thị các module tại vị trí left. 22
  • 23.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? ( tiếp ) b, Cấu hình file style.css File style.css sẽ định dạng kích thước , màu sắc … cho các đối tượng html *{ margin:0px auto ; padding:0px} .clear{ clear:both} ul , ol{ list-style:none} a{ text-decoration:none} body{ background: url(images/nenbody.gif); font-family:Tahoma, Geneva, sans-serif; font-size:12px} #all{ width:1000px; min-height:1200px;margin:0px auto; background:#FFF } #header{width:1000px; height:83px; float:left; background:url(images/banner.png)} #menu{width:1000px; height:50px; float:left; background:#090;} #slider{ float:left; width:1000px; height:335px} #main{width:1000px; float:left; min-height:1000px } #left{width:200px; float:left; text-align:center} #content{width:600px; float:left; text-align:center} #right{width:200px; float:right} #footer{width:1000px; height:150px; float:left; background: #0F3} 23
  • 24.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? ( tiếp ) c, Tạo file templateDetails.xml : <?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="template"> <name>Lương Bá Hợp </name> <version>1.0.0</version> <creationDate>03/03/2014</creationDate> <author>HTTT-K52</author> <authorEmail>luonghop.lc@gmail.com</authorEmail> <copyright>© copyright 2014</copyright> <license>GNU/GPL</license> <description>Demo Template </description> <files> <filename>component.php</filename> <filename>css/images/index.html</filename> <filename>css/index.html</filename> <filename>html/index.html</filename> <filename>html/modules.php</filename> <filename>html/pagination.php</filename> <filename>images/index.html</filename> <filename>index.html</filename> (Trích code file templateDetails.xml) 24
  • 25.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? ( tiếp ) Kỹ thuật Template Override Viết lại template cho các module và component, đây gọi là kỹ thuật Template Override, 1 tính năng nâng cao của template Joomla Mặc định, các template của module hay component được đặt trong 1 folder có tên là tmpl, nằm trong folder của com hay module đó. Với com thì có thể nó nằm trong 1 thư mục view nữa, vì các com của joomla thường viết theo mô hình mvc, nên sẽ có các thư mục như controller, model, view. 25
  • 26.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? ( tiếp ) Kỹ thuật Template Override (t) Tự động , hệ thống của Joomla sẽ nhận diện các template được chỉnh sửa trong thư mục html nằm trong thư mục template. File default.php khi đặt trong folder html, phải được đặt trong 1 folder có tên tương ứng với module hay com chúng ta chỉnh sửa. Chúng ta sẽ sử dụng kỹ thuật này để thiết kế lại 1 template của com hay module mà chỉ khi sử dụng template của chúng ta, nó mới được thay đổi, còn nếu sử dụng các template khác, nó vẫn bình thường 26
  • 27.
    IV. Xây dựngTemplate  3 Xây dựng template như nào ? ( tiếp ) Kỹ thuật Template Override (t) Một khi không muốn sử dụng chúng nữa ta chỉ cần xóa folder file đó trong thư mục html của template. Hệ thống Joomla sẽ tự động nhận diện lại file template nằm trong thư mục các module hay component 27
  • 28.
    V. Xây dựngModule  1 Tại sao phải thiết kế module ? Sau khi cài đặt Joomla chỉ có một số Modun cơ bản cần thiết cho Web Site hoạt động, muốn mở rộng thêm chức năng cho Web Site thông thường cần phải cài đặt thêm các phần mở rộng (Extensions) khác. Tuy nhiên đôi lúc cũng cần phải tự tạo cho riêng Web Site của mình một vài Modun để mở rộng thêm chức năng riêng cho Web Site. 28
  • 29.
    V. Xây dựngModule  2. Cấu trúc của một module ? Module gồm 4 file cơ bản được dùng trong mẫu tiêu chuẩn của việc phát triển module - mod_ten_module.xml - File này chứa thông tin về module . Nó định nghĩa ra các files cần thiêt để cài đặt từ trình cài đặt của joomla và chỉ ra các tham số cấu hình cho module - mod_ten_module.php - File này là điểm vào chính cho module . Nó sẽ thực hiện những khởi tạo cần thiết , gọi các helper để thu thập mọi dữ liệu cần thiết và include template hiển thị đầu ra của module - helper.php - File này chứa các lớp helper , được dùng để thực hiện các hành động thực sự để lấy về các thông tin mà sẽ được hiển thị trên module - tmpl/default.php – File này là template của module . Nó sẽ lấy về dữ liệu đã được thu thập bởi mod_ten_module.php và sinh ra mã html đê hiển thị lên trang web 29
  • 30.
    V. Xây dựngModule  3. Xây dựng 1 module như thế nào ? Ở đây mình sẽ đặt tên module là mod_chatbox . a, Tạo file mod_chatbox.php : File này thực hiện 3 nhiệm vụ : - Include file helper.php bằng câu lệnh require_once require_once( dirname(__FILE__).DS.'helper.php' ); - Triệu gọi phương thức trong lớp helper để lấy về dữ liệu $html = modChatboxHelper::getParams(&$params); - Include template để hiển thị đầu ra require( JModuleHelper::getLayoutPath( 'mod_chatbox' )); 30
  • 31.
    V. Xây dựngModule  3 Xây dựng 1 module như thế nào ? (t) Ở đây mình sẽ đặt tên module là mod_chatbox . b, Tạo file helper.php File helper.php chứa các lớp helper dùng để lấy về dữ liệu cho đầu ra của module class modChatboxHelper { function getChatbox(&$params) { return ‘hello world ! ’; } } 31
  • 32.
    V. Xây dựngModule  3 Xây dựng 1 module như thế nào ? (t) Ở đây mình sẽ đặt tên module là mod_chatbox . c, Tạo tmpl/default.php File default .php là một template nó sẽ hiển thị đầu ra của module <?php // Chống truy cập trực tiếp defined( '_JEXEC' ) or die( 'Restricted access' ); echo $html; ?> 32
  • 33.
    V. Xây dựngModule  3 Xây dựng 1 module như thế nào ? (t) Ở đây mình sẽ đặt tên module là mod_chatbox . d, Tạo file mod_chatbox.xml File mod_chatbox.xml được dùng để chỉ ra những file nào mà trình cài đặt cần phải copy và sẽ được sử dụng bởi module maneger để xác định tam số nào được dùng để cấu hình cho module <?xml version="1.0" encoding="UTF-8"?> <install type="module" version="1.5.0"> <name>Chát </name> <author>Lương Bá Hợp </author> <creationDate>March 17 2014</creationDate> <copyright>@ COPY</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <version>1.5.0</version> <description> Chat box</description> <files> <filename module="mod_chatbox">mod_chatbox.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> <filename>mod_chatbox.xml</filename> </files> </install> 33
  • 34.
    V. Xây dựngModule  3 Xây dựng 1 module như thế nào ? (t) Ở đây mình sẽ đặt tên module là mod_chatbox . e, Tạo mod_chatbox trên CSDL Truy cập : http://localhost/phpmyadmin/ Tìm đến bảng jos_modules trong CSDL mà ta đang sử dụng , rồi chèn thêm dữ liệu về module chat box => Đến đây việc xây dựng module đã hoàn thành . 34
  • 35.
    VI. Xây dựngComponent  1 Tại sao phải thiết kế component ? - Một component là một trong những thành phần mở rộng lớn nhất và phức tạp nhất. - Các component có thể xem như các ứng dụng mini. Một cách trực quan chúng ta có thể hình dung joomla là một hệ điều hành và tất cả các component là các ứng dụng desktop 35
  • 36.
    VI. Xây dựngComponent  2 Một component gồm 2 phần : Một componet có hai phần chính: phần quản trị và phần trên site : +, Phần trên site là phần được sử dụng để tải về các trang khi được triệu gọi trong quá trình vận hành site thông thường +, Phần quản trị cung cấp giao diện để cấu hình, quản lý các khía cạnh khác nhau của component và được truy cập thông qua ứng dụng quản trị của joomla. 36
  • 37.
    VI. Xây dựngComponent  3 Xây dựng 1 component như nào ? - Để xây dựng được 1 component khá phức tạp và cần nhiều thời gian hơn để nghiên cứu . - Bài thực hành chuyên môn của em xin phép được dừng tại đây ! 37
  • 38.
    Tài liệu thamkhảo Trong quá trình tìm hiểu về đề tài joomla , em đã tìm hiểu tài liệu tại các diễn đàn và website sau : http://diendan.joomlaviet.vn/ http://forum.joomla.org/ http://www.diendan.laptrinhjoomla.com/ http://www.thietkewebtop.com/ Link tải các phiên bản Joomla http://www.joomla.org/download.html 38