ĐẠ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: itf.ud.edu.vn, 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
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
NHẬN XÉT CỦA GIÁO VIÊN DUYỆT
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
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ẽ
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ẽ
i
MỤC LỤC
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......................................................................................i
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ố......................................................................................i
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.................................................................................................................i
MỞ ĐẦU...........................................................................................................8
.I Bối cảnh của đề tài.........................................................................................................8
.II Lý do chọn đề tài..........................................................................................................9
.III Mục tiêu cụ thể...........................................................................................................9
.IV Giải pháp công nghệ.................................................................................................10
.V Kết quả mong đợi.......................................................................................................10
.V.1. Cập nhật thông tin hàng hóa trực tuyến nhanh chóng và chính xác...............11
.V.2. Đặt hàng trực tuyến.........................................................................................11
.V.3. Quản lý các đơn đặt hàng trực tuyến, hóa đơn, báo cáo................................11
.V.4. Quản lý khách hàng.........................................................................................11
.VI Nội dung tóm tắt các chương tiếp theo....................................................................12
CƠ SỞ LÝ THUYẾT.....................................................................................13
.I Tổng quan về CMS......................................................................................................13
.I.1. Giới thiệu CMS.................................................................................................13
.I.2. Tính hướng đối tượng trong CMS....................................................................13
.I.3. Mô hình/cấu trúc CMS......................................................................................13
.I.4. Mô hình MVC...................................................................................................14
.I.4.1. Tầng lấy dữ liệu.............................................................................................14
.I.4.2. Tầng hiển thị..................................................................................................14
.I.4.3. Tầng điều khiển.............................................................................................14
.I.4.4. Nhân sự cho mô hình này..............................................................................15
.II Giới thiệu về Joomla...................................................................................................15
.II.1. Khái niệm Joomla............................................................................................15
.II.2. Vài nét về lịch sử phát triển Joomla................................................................16
.II.3. Các dòng phiên bản của Joomla......................................................................17
.II.4. Kiến trúc của Joomla.......................................................................................17
.II.5. Đối với người sử dụng cuối.............................................................................18
.II.6. Ứng dụng của Joomla......................................................................................18
.III Một số khái niệm trong Joomla.................................................................................19
.III.1. Front-end và Back-end...................................................................................19
.III.1.1. Front-end....................................................................................................19
.III.1.2. Back-end.....................................................................................................19
.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
ii
Mục lục
iii
.III.2.4. Menu...........................................................................................................25
.III.3. Quản lý nội dung site.....................................................................................26
.III.4. Template.........................................................................................................27
.IV Quản trị trong Joomla...............................................................................................29
.IV.1. Tổng quan về phần quản trị............................................................................29
.IV.2. Tạo một chủ đề mới (Section)........................................................................33
.IV.3. Tạo một chuyên mục mới (Category)............................................................33
.IV.4. Thêm một bài viết (Content Item)..................................................................33
.IV.5. Cài đặt Component.........................................................................................34
.IV.6. Cài đặt Mambot..............................................................................................34
.IV.7. Cài đặt Module...............................................................................................34
.IV.8. Cài đặt Templates...........................................................................................34
.IV.9. Vị trí các module trong template....................................................................35
.IV.10. Thêm một vị trí module vào template..........................................................37
.IV.11. Quản lý hình ảnh...........................................................................................38
.IV.12. Quản lý người dùng (Users).........................................................................38
.IV.13. Thêm một liên hệ..........................................................................................39
.IV.14. Thêm một module HTML.............................................................................39
.V Một số thủ thuật để tối ưu và bảo mật Joomla..........................................................39
.V.1. Tăng tốc cho Joomla........................................................................................39
.V.2. Cải thiện các truy vấn SQL.............................................................................40
.V.3. Bảo vệ file Configuration.php khỏi các truy cập trái phép.............................42
.V.4. Bảo mật trang quản trị bằng mật khẩu............................................................43
XÂY DỰNG ỨNG DỤNG SIÊU THỊ SÁCH TRỰC TUYẾN TRÊN CMS
JOOMLA........................................................................................................45
.I Môi trường và công cụ để phát triển ứng dụng...........................................................45
.II Cài đặt Joomla............................................................................................................47
.III Việt hóa Joomla.........................................................................................................52
.III.1. Tiến hành Việt hóa Joomla.............................................................................52
.III.2. Cài đặt gói ngôn ngữ cho Joomla..................................................................54
.III.3. Sử dụng JoomFish để xây dựng Website đa ngôn ngữ.................................54
.IV Thiết kế Template......................................................................................................63
.IV.1. Vị trí các module và component....................................................................63
.IV.2. Cấu trúc Template...........................................................................................66
.IV.3. templateDetails.xml........................................................................................67
.IV.4. index.php.........................................................................................................69
.IV.5. template_css.css..............................................................................................71
.IV.6. Cài đặt Template.............................................................................................78
.V Component..................................................................................................................80
.V.1. Cấu trúc chung của một component................................................................80
.V.2. yourcom.php và yourcom.html.php.................................................................81
.V.3. admin.yourcom.php và file admin.yourcom.html.php.....................................82
.V.4. toolbar.yourcom.php và toolbar.yourcom.html.php........................................82
.V.5. file.xml.............................................................................................................83
.VI Thiết kế Modules danh mục sản phẩm.....................................................................85
.VI.1. mod_list_product.xml....................................................................................85
.VI.2. mod_list_product.php....................................................................................87
Mục lục
TRIỂN KHAI ỨNG DỤNG..........................................................................90
.I Cài đặt website trên web host.....................................................................................90
.II Kết quả demo..............................................................................................................93
.II.1. Trang chủ.........................................................................................................93
.II.2. Đăng nhập........................................................................................................93
.II.3. Lựa chọn mục sản phẩm..................................................................................94
.II.4. Chọn sản phẩm vào giỏ hàng...........................................................................94
.II.5. Gửi đơn hàng...................................................................................................95
KẾT LUẬN....................................................................................................96
.I Kết quả thu được.........................................................................................................96
.II Nhận xét......................................................................................................................96
.II.1. Ưu điểm...........................................................................................................96
.II.2. Nhược điểm.....................................................................................................97
.III Phạm vi ứng dụng.....................................................................................................97
.IV Hướng phát triển.......................................................................................................97
[1] Trang web: .........................................................................103
[2] Trang web: ...................................................................103
[3] Trang web: ......................................................................103
[4] Trang web: ...................................................................................103
[5] Trang web: ..............................................................103
[6] Trang web: ........................................................................................103
[7] Ebook: Andrew Eddie. Joomla Developer Manual2005. 2000-2005, 168tr............103
[8] Phạm Hữu Khang. Xây dựng ứng dụng web bằng PHP & MySQL. Nhà Xuất Bản
Phương Đông 2006........................................................................................................103
iv
Mục lục
v
DANH MỤC HÌNH
HÌNH 1: CẤU TRÚC NỘI DUNG WEBSITE JOOMLA.........................26
HÌNH 2:NHÓM NGƯỜI DÙNG VÀ ĐIỀU KHIỂN TRUY CẬP.............33
HÌNH 3 : VỊ TRÍ CỦA CÁC MODULE......................................................35
HÌNH 4 : VỊ TRÍ CỦA CÁC MODULE MẶC ĐỊNH TRÊN JOOMLA. 36
HÌNH 5: XEM NHANH VỊ TRÍ CÁC MODULE......................................37
HÌNH 6 : CÁC GÓI CÀI ĐẶT XAMPP.....................................................46
HÌNH 7 : CÁC PHIÊN BẢN JOOMLA......................................................46
HÌNH 8 : CÁC GÓI PHIÊN BẢN JOOMLA 1.0.......................................46
HÌNH 9 :KHỞI ĐỘNG XAMPP..................................................................47
HÌNH 10 : VÀO PHPMYADMIN................................................................47
HÌNH 11 : TRANG MẶC ĐỊNH CỦA PHPMYADMIN...........................48
HÌNH 12 : TẠO CƠ SỞ DỮ LIỆU MỚI.....................................................48
HÌNH 13 : BẮT ĐẦU CÀI ĐẶT JOOMLA................................................48
HÌNH 14 : GIẤY PHÉP SỬ DỤNG JOOMLA...........................................49
HÌNH 15 : THÔNG TIN KẾT NỐI CƠ SỞ DỮ LIỆU..............................49
HÌNH 16 : THÔNG BÁO XÁC NHẬN LẠI THÔNG TIN.......................49
HÌNH 17 : ĐẶT TÊN SITE...........................................................................50
HÌNH 18 : CẤU HÌNH URL, PATH, THÔNG TIN ADMIN....................50
HÌNH 19 : CÀI ĐẶT THÀNH CÔNG.........................................................51
HÌNH 20 : CÀI ĐẶT JOOMFISH...............................................................55
HÌNH 21 : MÀN HÌNH JOOMFISH...........................................................55
HÌNH 22 : CÀI ĐẶT NGÔN NGỮ..............................................................55
HÌNH 23 : KIỂM TRA NGÔN NGỮ...........................................................56
HÌNH 24 : DANH MỤC NGÔN NGỮ.........................................................56
HÌNH 25 : QUẢN LÝ NGÔN NGỮ.............................................................56
HÌNH 26 : QUẢN LÝ NGÔN NGỮ.............................................................57
HÌNH 27 : KÍCH HOẠT NGÔN NGỮ........................................................58
HÌNH 28 : KÍCH HOẠT NGÔN NGỮ........................................................58
HÌNH 29 : THỨ TỰ NGÔN NGỮ...............................................................58
Mục lục
HÌNH 30 : LƯU NGÔN NGỮ......................................................................59
HÌNH 31 : ĐIỀU CHỈNH CHUẨN NGÔN NGỮ.......................................60
HÌNH 32 : CHỌN HIỂN THỊ MODULE CHỌN NGÔN NGỮ................61
HÌNH 33 : DỊCH BÀI VIẾT VÀ THÀNH PHẦN TRONG JOOMLA....62
HÌNH 34 : MẶC ĐỊNH TRONG JOOMFISH...........................................63
HÌNH 35 : VỊ TRÍ MODULE VÀ COMPONENT MÀ JOOMLA CUNG
CẤP.................................................................................................................64
HÌNH 36 : DANH SÁCH VỊ TRÍ MODULE VÀ COMPONENT............64
HÌNH 37 : VỊ TRÍ MODULE VÀ COMPONENT.....................................65
HÌNH 38 : ĐOẠN MÃ TẠO VỊ TRÍ MODULE VÀ COMPONENT.......66
HÌNH 39 : TẬP CÁC FILE CỦA TEMPLATE..........................................67
HÌNH 40 : THÀNH PHẦN CSS MẶC ĐỊNH CỦA JOOMLA.................72
HÌNH 41 : CÀI ĐẶT FRONT END TEMPLATE......................................78
HÌNH 42 : CÀI ĐẶT FRONT END TEMPLATE 1...................................79
HÌNH 43 : DANH MỤC CÁC TEMPLATE...............................................80
HÌNH 44 : THANH CÔNG CỤ CỦA JOOMLA........................................82
HÌNH 45 : PHẦN QUẢN LÝ HOST............................................................90
HÌNH 46 : TẠO CƠ SỞ DỮ LIỆU MỚI.....................................................90
HÌNH 47 : TẠO USER MỚI.........................................................................91
HÌNH 48 : ADD USER VÀO CƠ SỞ DỮ LIỆU.........................................91
HÌNH 49 : DATABASE ỨNG VỚI USER...................................................91
HÌNH 50 : PHẦN QUẢN LÝ HOST............................................................92
HÌNH 51 : TRANG CHỦ WEBSITE...........................................................93
HÌNH 52 : THÀNH VIÊN ĐĂNG NHẬP....................................................93
HÌNH 53 : DANH MỤC LỰA CHỌN SẢN PHẨM...................................94
HÌNH 54 : GIỎ HÀNG.................................................................................95
HÌNH 55 : NỘI QUY MUA HÀNG..............................................................95
HÌNH 56 : GỬI ĐƠN HÀNG.......................................................................95
vi
MỞ ĐẦU
Bối cảnh của đề tài
.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 giả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 thậ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 giớ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 dựng một ứng dụng trên công nghệ Joomla là khá khó khăn. Do đó, ứng dụng này
không tránh khỏi những thiếu sót, rất mong nhận được nhiều ý kiến nhận xét quý báu
của quý thầy cô và các bạn để tôi có thể rút kinh nghiệm cho việc xây dựng những
ứng dụng thực tế sau này.
Trần Văn Vẽ-03T1
8
.II Lý do chọn đề tài
Trong thời đại phát triển bùng nổ của Công nghệ thông tin(CNTT) và quan hệ hợp
tác toàn cầu phát triển mạnh mẽ, nhất là khi Việt Nam đã trở thành thành viên chính
thức của WTO, việc áp dụng tính chuyên nghiệp và các mô hình quản lý sản xuất kinh doanh chuyên nghiệp - hiện đại thông qua mô hình “Tin học hoá doanh nghiệp”
để theo kịp sự phát triển của xã hội là yếu tố cần thiết, đẩy mạnh sự phát triển của
doanh nghiệp và giúp cho doanh nghiệp gặt hái được nhiều thành công trong môi
trường sản xuất - kinh doanh năng động và đang thay đổi nhanh chóng như hiện nay.
Thương mại điện tử là một trong những vấn đề nóng bỏng, mặc dù khái niệm này
đã khá quen thuộc với nhiều người Việt Nam, song những dịch vụ tiện lợi này trên
thực tế vẫn còn chưa phổ biến. Chính vì vậy, tôi chọn đề tài này với mong muốn tự
trang bị cho mình những hiểu biết chung về thương mại điện tử, kỹ năng và phương
pháp xây dựng và phát triển các ứng dụng thương mại điện tử, góp một phần nhỏ
trong bước chuyển mình của dịch vụ này.
.III Mục tiêu cụ thể
o
Nắm được cơ sở lý thuyết chung về thương mại điện tử và các vấn đề
liên quan đến thương mại điện tử.
o
Tìm hiểu các Website thương mại điện tử lớn đã được triển khai để nắm
được cách thức hoạt động và những yêu cầu cần thiết đối với ứng dụng thương
mại điện tử.
o
Xác định đối tượng khách hàng mà mình hướng tới để phục vụ.
o
Lựa chọn giải pháp công nghệ thích hợp cho việc xây dựng và phát triển
ứng dụng đã chọn.
o
Tìm hiểu về CMS Joomla và những tính năng của nó.
o
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ụ.
Trần Văn Vẽ-03T1
9
Tìm hiểu CMS Joomla. Ứng dụng xây dựng siêu thị sách trực tuyến
o
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, 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:
Trần Văn Vẽ-03T1
10
Tìm hiểu CMS Joomla. Ứng dụng xây dựng siêu thị sách trực tuyến
.V.1. Cập nhật thông tin hàng hóa trực tuyến nhanh chóng và
chính xác.
Không giới hạn chủng loại sản phẩm
Không giới hạn số lượng sản phẩm
Thiết kế theo cấu trúc Section - Category - Content
Cấu trúc sản phẩm Section - Category – Products
Hổ trợ nhiều ngôn ngữ, dễ dàng cài đặt thêm ngôn ngữ
Hổ trợ nhiều template, cho phép thay đổi giao diện để hấp dẫn
người dùng
Hổ trợ nhiều loại tiền tệ
Bạn dễ dàng cập nhật và thường xuyên thay đổi những hình ảnh,
thông tin chi tiết, giá cả các mặt hàng mà bạn kinh doanh bất cứ lúc nào.
.V.2. Đặt hàng trực tuyến
Khách hàng của bạn có thể tìm kiếm và lựa chọn sản phẩm thêm hoặc bớt vào giỏ
hàng( Shopping Cart). Nhân viên phục vụ của siêu thị sẽ mang hàng đến tận nơi theo
đơn đặt hàng của khách hàng và thực hiện các thủ tục thanh toán.
.V.3. Quản lý các đơn đặt hàng trực tuyến, hóa đơn, báo cáo
Hệ thống quản lý, lưu trữ và báo cáo các thông tin về đặt hàng và trạng thái của
đơn hàng: đã giao hàng chưa, chờ thanh toán hay đã thanh toán đơn hàng.
.V.4. Quản lý khách hàng
Tất cả các các đơn đặt hàng đượclưu trữ vào CSDL giúp dễ dàng
truy xuất khi cần thiết.
Khách hàng có thể xem các đơn đặt hàng của họ và trạng thái
đơn đặt hàng(order tracking)
Trần Văn Vẽ-03T1
Khách hàng có thể quản lý và thay đổi tài khoản của họ.
11
Tìm hiểu CMS Joomla. Ứng dụng xây dựng siêu thị sách trực tuyến
Quản lý giỏ hàng tạm dành cho khách hàng chưa là thành viên
và giỏ hàng giành cho khách hàng là thành viên.
Giỏ hàng lưu trữ thông tin hàng hóa khách hàng đã chọn để hiển
thị lần sau khi khách hàng đăng nhậ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
tin 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
Trần Văn Vẽ-03T1
12
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 theo 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,
việc sử dụng các phương thức cài đặt truyền thống thì thực sự quá khó, nếu không
muốn nói là không thể thực hiện được. Chính vì vậy, khi làm việc với Joomla, xây
dựng bất kỳ một ứng dụng cụ thể nào, chúng ta đều phải có kiến thức sâu về lập trình
hướng đối tượng để có thể áp dụng mang lại hiệu quả cao.
.I.3. Mô hình/cấu trúc CMS
Trong CMS, thì ngoài độ rộng của API, cái dễ phân biệt và đánh giá một CMS, có
lẽ là cấu trúc của nó. Nói tới cấu trúc của CMS, chúng ta không phải nói tới nó chạy
như thế nào, mà chính là những cái chạy trên nền CMS đó được chạy như thế nào.
13
Thực tế thì không riêng CMS, mà trên Programing nói chung, đều có những cấu trúc
được phát minh sẵn, và công việc của mình là biến lý thuyết thành hiện thực thôi.
Nói như vậy, cái chúng ta cần làm là phải hỗ trợ tối đa để những người phát triển
CMS của chúng ta có thể hiểu, và sử dụng tốt cái cấu trúc chúng ta hướng tới.
.I.4. Mô hình MVC
Mô hình MVC chuyên môn hóa cho những công việc khác nhau trong thiết kế
phần mềm cũng như trong thiết kế web.
Chia công việc thành 3 phần:
− Lấy dữ liệu (tầng core – gọi tắt là core)
− Hiển thị dữ liệu (tầng view – gọi tắt là view)
− Điều khiển (tầng controller – gọi tắt là controller)
.I.4.1.
Tầng lấy dữ liệu
•
Phụ trách nhiệm vụ xử lý dữ liệu từ user hoặc từ database.
•
Biến các dữ liệu thô (chưa qua xử lí cơ bản) thành dữ liệu
có thể sử dụng được
•
.I.4.2.
Bao gồm cả phần sao lưu dữ liệu
Tầng hiển thị
•
Phụ trách việc hiển thị dữ liệu để giao tiếp với người sử
dụng
•
.I.4.3.
Biến các dữ liệu đã xử lý thành trang web đã hiển thị
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ị
14
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
•
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,
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
Trần Văn Vẽ, Lớp 03T1
15
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
đàn, bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngôn ngữ. Joomla được
phát âm theo tiếng Swahili như là jumla nghĩa là "đồng tâm hiệp lực".
Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho
tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch
vụ và ứng dụng. Joomla có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy
cao.Joomla là sản phẩm mã nguồn mở do đó việc sử dụng Joomla là hoàn toàn miễn
phí cho tất cả mọi người trên thế giới.
.II.2. Vài nét về lịch sử phát triển Joomla
Joomla là "sản phẩm anh em" với Mambo của tập đoàn Miro Software Solutions Úc (hãng đang nắm giữ Mambo) với những người phát triển nòng cốt. Ban đầu công
ty Miro đã phát triển Mambo theo dạng ứng dụng mã nguồn đóng. Đến tháng 4 năm
2001, công ty đã thông qua một chính sách bản quyền kép, nghĩa là phát hành Mambo
theo cả giấy phép GPL.
Đến ngày 17 tháng 8 năm 2005, do sự tranh chấp về mặt pháp lý cũng như mong
muốn vào sự phát triển của Mambo dựa trên quỹ tài trợ và sự hỗ trợ của cộng đồng
nên toàn bộ đội phát triển nòng cốt của Mambo đã rời khỏi dự án trong khi đang làm
việc với phiên bản 4.5.3.
Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software Freedom Law
Center - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một tổ chức phi
lợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổ chức, pháp lý và
kinh phí cho dự án mã nguồn mở còn chưa được đặt tên của họ. Ngay ngày hôm sau,
1000 người đã gia nhập diễn đàn OpenSourceMatters, hầu hết các bài viết cho diễn
đàn đều khuyến khích và đồng tình với hành động của Nhóm Phát triển. Tin trên đã
nhanh chóng được đăng tải trên các tạp chí newsforge.com, eweek.com và
ZDnet.com.
Trong một thông báo của Eddie (người đứng đầu dự án) 2 tuần sau đó, các nhóm
đã được tổ chức lại và cộng đồng Joomla tiếp tục tăng trưởng. Tới ngày 1 tháng 9
Trần Văn Vẽ, Lớp 03T1
16
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
năm 2005 tên mới của dự án đã được thông báo cho khoảng 3000 người theo dõi đội
Phát triển và đến ngày 16 tháng 9 thì họ cho ra đời Joomla 1.0.
.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ầ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.
Trần Văn Vẽ, Lớp 03T1
17
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyế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à
tăng trưởng không ngừng. Các thành viên và các lập trình viên rất nhiệt tình và sẵn
sàng tư vấn, giúp đỡ khi người sử dụng gặp khó khăn.
Joomla cung cấp giao diện web trực quan do vậy khá dễ dàng để thêm một nội
dung mới hay một mục mới, quản lý các phòng ban, danh mục nghề nghiệp, ảnh các
sản phẩm... và tạo không giới hạn số phần, mục, chuyên mục cũng như các nội dung
của Website.
Hiện tại ở Việt Nam chúng ta, cộng đồng Joomla đã và đang phát triển mạnh mẽ tại
diễn đàn.
Code:
Tại đây bạn có thể tìm kiếm những thông tin về cài đặt, phát triển Joomla cũng như
nêu lên những ý kiến thắc mắc hoặc yêu cầu của mình để được giúp đỡ.
.II.6. Ứng dụng của Joomla
Joomla! đã được sử dụng trên khắp thế giới, đã được ứng dụng vào xây dựng các
website từ đơn giản như website cá nhân tới các ứng dụng website phức tạp. Sau đây
là 1 số ứng dụng có thể được xây dựng bằng Joomla !
Trang web của các tổ chức hoặc các cổng thông tin ( Portal )
Thương mại điện tử
Trang web cho các công ty cỡ nhỏ
Ứng dụng cho các cơ quan hành chính
Trang web cho các trường học và nhà thờ
Trần Văn Vẽ, Lớp 03T1
18
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
Trang web cá nhân và gia đình
Các cổng thông tin cộng đồng
Trang web báo điện tử và tạp chí
và nhiều ứng dụng khác nữa...
.III Một số khái niệm trong Joomla.
Lần đầu tiên khi tiếp xúc với Joomla! nhiều người luôn cảm thấy rằng có điều gì
đó khó hiểu ở Joomla! khiến cho việc tiếp cận với nó thật khó khăn. Đó chính là do
các 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ủ.
.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/administrator.
Trần Văn Vẽ, Lớp 03T1
19
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
.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
nữa.
Các Site Module khác với các Administrator Module bởi vì chúng hiển thị những
nội dung trong Front-end của site trong khi nhưng Admini Module liên quan đến các
tác vụ và/hoặc những tính năng khác nhau của Administrative (hoặc Back-end). Các
Module có thể được tạo bởi bạn (costom/user module) hay được tải về và cài đặt.
Quản lý cac module luôn luôn lằm trong Administrator (Admin Seciton). Vào
Modules \ Module Manager trên thanh Menu. Ở đó bạn có thể cài đặt/tháo bỏ một
module và chỉnh sửa nhứng cấy hình phổ biến như là: tên, những trang nó xuất hiện,
vùng đặt nó, và cấp độ truy cập. Từ danh sách chọn module bạn muốn cấu hình.
Module Manager là bộ đầu tiên thiết đặt hiển thị số lượng chính xác module. Tận
cuối danh sách ban có thể thấy một chức năng tổ chức trang, nơi cho phép bạn điều
hướng đến bộ cài đặt kế tiếp của các module trong danh sách. Bạn cũng có thể cài đặt
số module được hiển thị trên một trang băng các chọn số trên hộp chọn đổ xuống trên
góc trên phải màn hình. Ở đây bạn có thể tìm thấy một danh sách của tất cả bộ thiết
lập mặc đinh site module khi cài đặt Joomla. Mỗi cái quy chiếu đến một loại module
Trần Văn Vẽ, Lớp 03T1
20
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
cụ thể được định từ trước. Dưới những tiêu đề danh sách cụ thể được hiển thị những
trạng thái của nhưng Module được cài đặt trên hệ thống.
Những Module được xác đinh bằng môt kểu (ví dụ mod_mainmenu). Nhiều thể
hiện của cùng một module có thẻ được tạo ra bằng cách chép môt loại module cụ thể,
cho nó một tiêu đề khác và các thông số khác theo nhu cầu của bạn. Bạn có thể tạo
một module tùy thích với một loại “User” bằng cách click vào biểu tượng “New”.
Đây là một mudule rất hữu dụng mà bạn thường tạo một Content (content này không
liên quan gì đến các Section, Category hay Static Content Item) hay RSS feed. Nó
cũng được dùng như một hộp văn bản hay môt module ảnh hay thậm chí bao gồm
code tùy biến.
Những Site Module sau được gói cùng với Joomla : Những tiêu đề cho mỗi module
là tiêu đề mặc định trong phiên bản Joomla. Những tiêu đề này có thể được đổi tên
hoặc dịch cho hợp với nhu cầu của bạn.
+ Archive – kho lưu
+ Latest News – tin mới
+ Login Form – biểu mẫu login
+ Main Menu – menu chính
+ Popular – ưa chuộng
+ Newsflash – tin khẩn
+ Who's Online – ai trong mạng
+ Polls – thăm dò ý kiến
+ Random Image – hình ảnh ngẫu nhiên
+ Related Items – mục liên quan
+ Syndicate – đăng tin
Trần Văn Vẽ, Lớp 03T1
21
Tìm hiểu CMS Joomla, ứng dụng xây dựng siêu thị sách trực tuyến
+ Sections – phân loại
+ Statistics – thống kê
+ User (Custom & RSS Feeds)
+ Template Chooser – chọn template
+ Wrapper – trình bao bọc
.III.2.2. Component
Các Component là những thành phần nội dung đặc biệt hay những ứng dụng.
Joomla bao gồm một số nhân component và hỗ trợ khả năng tự tăng cường tính năng
với component của các hãng thư ba. Những component được gắn sẵn, cai bao gồm
trong Joomla, là một phần của tính năng nhân. Bạn sẽ tìm thấy những compnent của
hãng thứ ba tại Joomla Forge cũng như tại rất nhiều nhà phát triển thứ ba và những
site cộng đồng. Cấu hình và trợ giúp thêm thường được cung cấp với kèm với chính
component. Những component là mô phỏng tự nhiên, điềunày làm nó có khả năng
tăng cường các chức năng của Joomla trong bất kì hoàn cảnh nào. Một component
đặc trưng giống như Menu item. Những visitor và/hay những user có thể thấy nội
dung của component bằng cách click vào liên kết của Menu item này. Nó thường
được hiển thị trong vùng nội dung chính của site.
Những component được bao gồm với Joomla là :
+ Banners – ô quảng cáo
+ Contacts – Liên hệ
+ Newsfeeds – điểm tin
+ Polls – thăm dò
+ Web Links – liên kết web
Trần Văn Vẽ, Lớp 03T1
22