ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGH Ệ THÔNG TIN
Tel. (84-511)3 736 949, Fax. (84-511) 842 771
Website: , E-mail:
LUẬN VĂN TỐT NGHIỆP KỸ S Ư
NGÀNH CÔNG NGH Ệ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI :
TÌM HIỂU CMS JOOMLA
ỨNG DỤNG XÂY DỰNG SI ÊU THỊ SÁCH TRỰC TUYẾN
Mã số : 03T1-039
Ngày bảo vệ : 10 - 11/06/2008
SINH VIÊN : TRẦN VĂN VẼ
LỚP : 03T1
CBHD : Ks. TRỊNH CÔNG DUY
ĐÀ NẴNG, 05/2008
NHẬN XÉT CỦA GIÁO VI ÊN HƯỚNG DẪN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
…………………………………… …………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
LỜI CẢM ƠN
Tôi xin chân thành c ảm ơn các thầy cô trong khoa Công nghệ
thông tin cũng như các thầy cô giảng dạy trong tr ường Đại học Bách
khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho tôi trong
những năm học vừa qua.
Đặc biệt, tôi xin chân thành c ảm ơn Thầy giáo Trịnh Công Duy
đã trực tiếp, tận tình giúp đỡ và hướng dẫn tôi trong suốt thời gian làm
đồ án tốt nghiệp.
Và để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình
đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá
trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này.
Một lần nữa xin chân th ành cám ơn!
Đà Nẵng, ngày 30 tháng 05 năm 2008
Sinh viên thực hiện:
Trần Văn Vẽ
i
LỜI CAM ĐOAN
Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của của thầy giáo Ks.Trịnh Công Duy.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ
ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian
trá, tôi xin chịu hoàn toàn trách nhi ệm.
Sinh viên thực hiện:
Trần Văn Vẽ
Mục lục ii
III.1. Front-end và Back-end ................................ ................................ ............ 19
III.1.1. Front-end................................ ................................ ................................ . 19
III.1.2. Back-end ................................ ................................ ................................ .. 20
III.2. Các thành phần mở rộng (Extension) ...................................................... 20
III.2.1. Module................................ ................................ ................................ ..... 20
III.2.2. Component................................ ................................ ............................... 22
III.2.3. Mambot................................ ................................ ................................ .... 24
III.2.4. Menu ................................ ................................................................ ........ 26
III.3. Quản lý nội dung site ............................................................................... 26
III.4. Template ................................ ................................ ................................ .. 28
IV. Quản trị trong Joomla ................................ ................................ .......................... 29
Mục lục iii
IV.1. Tổng quan về phần quản trị ................................ ................................ ..... 29
IV.2. Tạo một chủ đề mới (Section) ................................ ................................. 34
IV.3. Tạo một chuyên mục mới (Category) ................................ ...................... 34
IV.4. Thêm một bài viết (Content Item) ........................................................... 34
IV.5. Cài đặt Component ................................ ................................ .................. 35
IV.6. Cài đặt Mambot ................................ ................................ ....................... 35
IV.7. Cài đặt Module ................................................................ ........................ 35
IV.8. Cài đặt Templates ................................................................ .................... 36
IV.9. Vị trí các module trong template ................................ ............................. 36
IV.10. Thêm một vị trí module vào template ..................................................... 39
IV.11. Quản lý hình ảnh................................................................ ...................... 39
IV.12. Quản lý người dùng (Users) ................................ .................................... 39
IV.13. Thêm một liên hệ................................ ................................ ..................... 40
IV.14. Thêm một module HTML ................................................................ ....... 40
V. Một số thủ thuật để tối ưu và bảo mật Joomla .................................................... 40
V.1. Tăng tốc cho Joomla ................................ ................................ .................... 40
V.2. Cải thiện các truy vấn SQL ................................ .......................................... 41
V.3. Bảo vệ file Configuration.php khỏi các truy cập trái phép .......................... 43
II.2. Đăng nhập................................................................ ................................ .... 96
II.3. Lựa chọn mục sản phẩm ................................ ................................ .............. 97
II.4. Chọn sản phẩm vào giỏ hàng....................................................................... 97
II.5. Gửi đơn hàng ................................ ................................ ............................... 98
KẾT LUẬN .................................................................................................... 99
I. Kết quả thu được................................................................ ................................ ...... 99
II. Nhận xét................................................................................................ ............... 99
II.1. Ưu điểm................................ ................................ ................................ ....... 99
II.2. Nhược điểm ................................ ................................ ............................... 100
III. Phạm vi ứng dụng ................................................................ .............................. 100
IV. Hướng phát triển ................................ ................................................................ 100
Mục lục v
DANH MỤC HÌNH
Hình 1: Cấu trúc nội dung website Joomla ................................................................ ............. 27
Hình 2:Nhóm người dùng và điều khiển truy cập ................................................................ ... 34
Hình 3 : Vị trí của các Module ................................ ................................ ................................ 36
Hình 4 : Vị trí của các module mặc định tr ên Joomla ................................ ............................. 37
Hình 5: Xem nhanh vị trí các module................................ ................................ ...................... 38
Hình 6 : Các gói cài đặt XAMPP ................................ ................................ ............................ 47
Hình 7 : Các phiên bản Joomla................................ ................................ ................................ 47
Hình 8 : Các gói phiên bản Joomla 1.0 ................................ ................................ ................... 47
Hình 9 :Khởi động XAMPP ................................ ................................................................ .... 48
Hình 10 : Vào phpMyAdmin ................................................................ ................................ ... 48
Hình 11 : Trang mặc định của phpMyAdmin ................................ ................................ .......... 49
Hình 12 : Tạo cơ sở dữ liệu mới ................................ ................................ .............................. 49
Hình 13 : Bắt đầu cài đặt Joomla................................ ................................ ............................. 49
Hình 14 : Giấy phép sử dụng Joomla ................................ ................................ ...................... 50
Hình 15 : Thông tin kết nối cơ sở dữ liệu................................ ................................ ................ 50
Hình 16 : Thông báo xác nh ận lại thông tin ................................ ............................................ 50
Hình 17 : Đặt tên Site ................................................................ ................................ .............. 51
Hình 47 : Tạo user mới................................ ................................................................ ............ 94
Hình 48 : Add user vào cơ sở dữ liệu ................................ ................................ ...................... 94
Hình 49 : Database ứng với user ................................................................ ............................. 95
Hình 50 : Phần quản lý host................................ ................................................................ ..... 95
Hình 51 : Trang chủ website................................................................ ................................ .... 96
Hình 52 : Thành viên đăng nh ập ................................ ............................................................. 96
Hình 53 : Danh mục lựa chọn sản phẩm ................................ ................................ ................. 97
Hình 54 : Giỏ hàng ................................ ................................ ................................ .................. 98
Hình 55 : Nội quy mua hàng................................ ................................ ................................ .... 98
Hình 56 : Gửi đơn hàng ................................ ................................ ........................................... 98
Trần Văn Vẽ-03T1 8
MỞ ĐẦU
I. Bối cảnh của đề tài
Ngày nay, thông tin đ ã và đang dần chuyển hướng phát triển của m ình sang các
dịch vụ Web. Một trong những dịch vụ ng ười người ta khá quan tâm là Thương mại
Điện tử. Dịch vụ này giúp những bận rộn, thường xuyên làm việc trong các phòng
máy, phòng thí nghi ệm…có thể tiết kiệm đ ược thời gian đi mua sắm để tập trung v ào
công việc của mình.
Nhờ Thương mại Điện tử, chỉ cần v ài thao tác đơn g iản trên máy tính có kết nối với
Internet, bạn sẽ có tận tay những thứ m ình cần mà không phải đi đâu cả. Bạn chỉ cần
vào các trang dịch vụ Thương mại Điện tử là có thể mua bất cứ thứ gì, nhân viên dịch
vụ sẽ mang đến tận nh à cho bạn. Việc thanh toán cũng t hật dễ dàng, có thể gián tiếp
qua các hệ thống ngân hàng hoặc trực tiếp nếu bạn muốn. Vậy, thực chất của Thương
mại Điện tử là như thế nào?
Để tìm hiểu mô hình hoạt động cũng như quá trình xây dựng một ứng dụng có tính
chất thương mại trực tuyến, tôi xin g iới thiệu đề tài “Tìm hiểu CMS Joomla, ứng dụng
để xây dựng siêu thị sách trực tuyến” là đề tài nghiên cứu cho Đồ án tốt nghiệp n ày.
Mặc dù ứng dụng đã triển khai được phần lớn các yêu cầu chính mà một ứng dụng
Thương mại Điện tử cần đáp ứng , tuy nhiên với thời gian hạn chế, việc tìm hiểu và xây
Tìm hiểu CMS Joomla. Ứng dụng xây dựng si êu thị sách trực tuyến
Trần Văn Vẽ-03T1 10
Xây dựng ứng dụng thương mại điện tử dựa trên nền tảng CMS Joomla có thể
đáp ứng được nhu cầu của đối tượng phục vụ.
Tính toán, đưa ra phương pháp và k ế hoạch thực hiện dự án trong thời gian
ngắn nhất và chi phí thấp nhất có thể.
IV. Giải pháp công nghệ
Sử dụng nền tảng l à Joomla, Joomla! cung cấp 1 nền tảng ứng dụng mạnh mẽ tạo
điều kiện thuận lợi cho các lập tr ình viên thiết kế ra các add-ons nhằm mở rộng sức
mạnh của Joomla nhắm đáp ứng tối đa nhu cầu của doanh nghiệp.
Hệ thống thương mại điện tử tích hợp
Hệ thống kiểm soát hàng hoá
Công cụ báo cáo dữ liệu
Danh mục hàng hoá
Các thư mục kinh doanh phức tạp
Công tự hỗ trợ giao tiếp
Cầu nối ứng dụng
V. Kết quả mong đợi
Dựa trên nền tảng công nghệ Web phát triển nhiều năm qua, tôi đã nghiên cứu và
phát triển hệ thống quản trị nội dung website th ương mại điện tử Online
SuperMarket với đầy đủ các tính năng ưu việt đảm bảo có thể cung cấp đầy đủ, ho àn
chỉnh các chức năng mạnh mẽ, hỗ trợ cho việc thực hiện th ương mại điện tử trực tuyến
cho các siêu thị, các nhà sách lớn trong nước.
Qua hệ thống website thương mại điện tử này, các doanh nghiệp có thể được sở hữu
một hệ thống quản trị website hoàn hảo và dễ dàng sử dụng mà không cần qua đào tạo,
Tìm hiểu CMS Joomla. Ứng dụng xây dựng si êu thị sách trực tuyến
Trần Văn Vẽ-03T1 11
không cần phải biết về thiết kế và lập trình website bạn cũng có thể quản trị và xuất
bản website một cách xuất sắc.
Những tính năng chính m à hệ thống Online SuperMarket cung cấp:
Công cụ tìm kiếm nhanh dễ sử dụng và có nhiều phương thức tìm kiếm chi tiết.
Danh sách sản phẩm bán chạy - Sản phẩm mới.
Hệ thống tương thích hầu hết với các trình duyệt.
Tự động hiển thị những sản phẩm mới, sản phẩm khuyến m ãi, đặc biệt.
Tự động hiển thị trạng thái sản phẩm còn hay hết để khách hàng có thể tiếp tục
đặt hàng.
Khách hàng có thể đăng kí hoặc bỏ đăng kí nhận email về thông ti n sản phẩm
của công ty thông qua hệ thống newsletters.
VI. Nội dung tóm tắt các ch ương tiếp theo
Chương I: Cơ sở lý thuyết
Chương II: Xây dựng ứng dụng siêu thị sách trực tuyến trên CMS Joomla
Chương III: Triển khai ứng dụng
Chương IV: Kết luận
13
CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
I. Tổng quan về CMS
I.1. Giới thiệu CMS
Chúng ta có thể hình dung CMS nh ư là một hệ điều hành trên máy tính, ngh ĩa là
CMS được sử dụng làm nền tảng để chạy những ứng dụng khác .
Ngoài ra, CMS giống như một thư viện, nó cung cấp những hàm, lớp cơ bản để
những người phát triển web khác có thể sử dụng, t ùy biến, chỉnh sửa để CMS th ành
một trang web phục vụ đ úng nhu cầu của mình.
I.2. Tính hướng đối tượng trong CMS
Trong giới hạn của báo cáo n ày, mặc dù rất muốn nhưng tôi không thể trình bày chi
tiết về lập trình hướng đối tượng. Trong lập trình web PHP, tư tưởng hướng đối tượng
chỉ mới được áp dụng trong PHP5, nh ư vậy nghĩa là chúng ta hoàn toàn có th ể xây
dựng một ứng dụng PHP t heo phương pháp hư ớng đối tượng để có thể tối ưu nhất hệ
thống mình xây dựng.
Trong CMS, tư tưởng này cũng mới được áp dụng. Với một dự án lớn nh ư Joomla,
I.4.3. Tầng điều khiển
Phụ trách việc liên hệ giữa 2 tầng trên: tầng dữ liệu và tầng hiển thị
Tầng điều khiển cho tầng dữ liệu biết cần lấy những dữ liệu g ì, cho tầng hiển
thị biết cần phải hiển thị phần n ào. Chi tiết mỗi tầng dữ liệu và tầng hiển thị do
tầng đó chịu trách nhiệm, tầng điều khiển chỉ có nhiệm vụ kết nối v à ra lệnh
bao quát.
I.4.4. Nhân sự cho mô hình này
Tầng core: người am hiểu về database, l àm việc trực tiếp tới database, hiểu biết
về security ở tầng thấp
Tầng view: thường là web-design
Tầng controller: thường là những người vẽ ra con đường tổng quát, không cần
biết sâu tới core or view, nh ưng có khả năng linh hoạt sử dụng 2 b ên. Đây
thường là người viết mã chính cho dự án.
Chú ý:
Khi nói về người viết các tầng, thường thì controller làm vi ệc trực tiếp với cả
core và view. Còn core và view thì không làm vi ệc trực tiếp với nhau, m à thông
qua controller, và chỉ làm việc với controller.
Khi nói về người viết CMS, nếu viết theo mô hình này, chúng ta ph ải cung cấp
cho web-developer những class, function sao cho họ có thể áp dụng mô h ình
MVC được dễ dàng hơn, và tốt hơn
II. Giới thiệu về Joomla
II.1. Khái niệm Joomla
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,
Tìm hiểu CMS Joomla, ứng dụng xây dựng si êu thị sách trực tuyến 16
Trần Văn Vẽ, Lớp 03T1 16
cho phép người sử dụng có thể dễ d àng xuất bản các nội dung của họ l ên Internet hoặc
Intranet.
Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển
thị, lập chỉ mục, đọc tin RSS ( RSS feeds), trang dùng để in, bản tin nhanh, blog, diễn
II.3. Các dòng phiên bản của Joomla
Hiện nay Joomla có 2 d òng, dòng 1.0.x đã ổn định và phù hợp để các bạn thực hiện
các website của mình. Dòng 1.5 đang phát triển tới phiên bản beta, chỉ phù hợp để
test,chưa phù hợp để làm website chính thức.
Dòng phiên bản 1.0.x :Phiên bản đầu tiên của Joomla là phiên bản Joomla! 1.0
(hay Joomla! 1.0.0) có ngu ồn gốc từ Mambo 4.5.2.3 (đ ã bao gồm thêm nhiều
bản vá bảo mật và sửa lỗi).Các phiên bản tiếp theo có dạng 1.0.x . Điểm mạnh
của Joomla 1.0.x: Có một số l ượng rất lớn các thành phần mở rộng (module,
component ) thành phần nhúng (mambot), giao diện (template).
Dòng phiên bản 1.5x : Phiên bản Joomla! 1.5 là phiên bản cải tiến từ Joomla
1.0.x (phần mã được viết lại hoàn toàn, tuy nhiên v ẫn giữ cách hành xử như
cũ). Joomla 1.5 tiếp tục duy trì một giao diện người sử dụng đơn giản (nhìn và
cảm nhận - look and feel). Joomla! 1.5 hỗ trợ đa ngôn ngữ bằng cách sử dụng
file định dạng ".ini" để lưu các thông tin chuy ển đổi ngôn ngữ. Joomla 1.5 hỗ
trợ tất cả các ngôn ngữ có tập ký tự được biểu diễn bằng bảng m ã UTF-8. Điểm
mạnh của Joomla 1.5: Phần quản trị Website có sử dụng công nghệ Web 2.0,
một số tính năng được cải tiến hơn so với Joomla 1.0.x.
II.4. Kiến trúc của Joomla
Joomla gồm có 3 tầng hệ thống:
Tìm hiểu CMS Joomla, ứng dụng xây dựng si êu thị sách trực tuyến 18
Trần Văn Vẽ, Lớp 03T1 18
Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin (còn được
biết với tên gọi mambot).
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.
II.5. Đối với người sử dụng cuối
Việc cài đặt Joomla! khá dễ d àng và nhanh chóng, th ậm chí cả đối với những lập
trình viên nghiệp dư. Joomla có một cộng đồng người sử dụng và phát triển rất lớn và
khái niệm và thuật ngữ khác lạ của Joomla!, m à thật ra nó cũng chẳng khác lạ gì mấy
so với các hệ thống quản trị nội dung (CMS: Content management System) khác.
Phần này sẽ trình bày các khái niệm cơ bản trong Joomla!
III.1. Front-end và Back-end
III.1.1. Front-end
Front-end (tiền sảnh), còn được biết với tên gọi Public Front-end: phần giao diện
phía ngoài, nơi tiếp xúc với mọi ng ười sử dụng. Bất cứ ai cũng có thể trông thấy khi
gõ đúng đường dẫn URL vào trình duyệt.
Front-end chứa 1 trang đặc biệt l à FrontPage (homepage) - trang chủ.
Tìm hiểu CMS Joomla, ứng dụng xây dựng si êu thị sách trực tuyến 20
Trần Văn Vẽ, Lớp 03T1 20
III.1.2. Back-end
Back-end, còn được biết với tên gọi Public Back-end, Administrator, Control Pane:
phần dành cho người quản trị. Những ng ười bình thường không biết đường dẫn để truy
cập, hoặc nếu có biết th ì cũng phải qua bước kiểm tra tài khoản.
Phần back-end được truy cập thông qua đ ường dẫn:
http://your_domain/a dministrator.
III.2. Các thành phần mở rộng (Extension)
III.2.1. Module
Module là một trong 3 thành phần mở rộng chính của Joomla! Đó l à một đoạn mã
nhỏ thường được dùng để truy vấn các thông tin từ c ơ sở dữ liệu và hiển thị các kết
quả tìm được. Nó có thể được nạp vào một vị trí bất kỳ trên template (vị trí left, right,
top, bottom... hoặc vị trí do người dùng định nghĩa); có thể hiện tr ên tất cả các trang
của Website hay một số trang đ ược ấn định. Khả năng tương tác giữa người sử dụng
và hệ thống thông qua module l à hạn chế (chúng ta thường chỉ nhận thông tin trả về).
Modules thường được dùng để hiển thị những thông tin khác nhau v à/hoặc những
tính năng tương tác trong toàn b ộ site Joomla của bạn. Một Module có thể chứa hầu
như bất kì thứ gì từ những văn bản đ ơn giản,đến HTML, đến những ứng dụng ho àn
toàn độc lập của các hãng thứ ba. Những Module cũng có thể hiển thị nội dung t ương
tác, như các poll (thăm d ò ý kiến), những tagboard, tin mới nhất, tin khẩn v à nhiều
+ Archive – kho lưu
+ Latest News – tin mới
+ Login Form – biểu mẫu login
+ Main Menu – menu chính