1. 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
2. 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
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 đặ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
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)
=> Để 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 đặ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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
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 :
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ự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
23. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
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 .
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ự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
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 .
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ự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
35. 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
36. 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
37. 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
38. 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