Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Hưng Yên, ngày tháng năm 2013
Giáo viên hướng dẫn
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Hưng Yên, ngày tháng năm 2013
Giáo viên phản biện 1
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
MỤC LỤC
LỜI CẢM ƠN 1
PHẦN I: MỞ ĐẦU 2
PHẦN 2 4
CHƯƠNG I: NGHIÊN CỨU TỔNG QUAN VỀ MÃ NGUỒN MỞ 4
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỰC NGHIỆM 29
CHƯƠNG 4: BẢO MẬT CHO WEBSITE - UPLOAD VÀ CÀI ĐẶT TRANG
WEB VỪA TẠO LÊN HOST 36
PHẦN 3 - KẾT LUẬN 45
47
Ý KIẾN CỦA GIẢNG VIÊN HƯỚNG DẪN 47
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Ý nghĩa
CMS Content Management System
CSDL Cơ sở dữ liệu
CSS Cascading Style Sheets
FOSS Free & Open Source Software
GNU General Public License
HTML HyperText Markup Language
1. Lý do chọn đề tài
Ngày nay, với sự bùng nổ của hệ thống mạng toàn cầu Internet và những lợi ích
vô cùng to lớn của nó mang lại đã thực sự thu hút và chinh phục con người. Tận dụng
những tính năng mạnh mẽ của Internet, những công nghệ mới về thông tin và truyền
thông, người ta đã xây dựng nên những hệ thống đặc biệt để mọi người có thể có thể
ứng dụng đưa vào đời sống thực tiễn, và điều đó thực sự sẽ làm thay đổi cuộc sống
của xã hội chúng ta theo chiều hướng tiện lợi hơn, văn minh hơn. Cùng với việc
Internet đang nhanh chóng lan rộng khắp toàn cầu thì WEBSITE thương mại sẽ trở
thành công cụ chủ yếu và đắc lực cho việc kinh doanh mua bán trên phạm vi toàn
cầu.Các công ty, các doanh nghiệp có thể quảng cáo các sản phẩm, các dịch vụ của
mình trên các WEBSITE. Điều này sẽ giúp tăng doanh thu, tăng khách hàng và đặc
biệt là dễ dàng tìm các đối tác kinh doanh. Và việc chi trả thanh toán trực tuyến rất
nhanh chóng và đơn giản thông qua các loại thẻ tín dụng. Cho nên cần phải có những
công nghệ mới để quản lý, quản trị WEBSITE, để đáp ứng những nhu cầu trên vì lý do
đó mà em chọn đề tài về Joomla quản lý trang web giới thiệu áo cưới Mục tiêu đề tài
Xây dựng được một website “Website giới thiệu áo cưới” , tập trung vào việc phát
triển component và các module phục vụ một cách có hiệu quả cho người dùng.
2. Phạm vi, đối tượng của đề tài
Website được xây dựng nhằm hỗ trợ cho các cá nhân, công ty, cơ quan, có nhu
cầu quản bá sản phẩm, cũng như quản lý trong việc đăng thông tin dịch vụdịch vụ. Đối
tượng phục phụ: Cá nhân, công ty, cửa hàng vừa và nhỏ. Nhà quản trị website
3. Ý nghĩa thực tiển của đề tài
Có thể tra cứu, cập nhật, thống kê, báo cáo sản phẩm, nhà sản xuất, thông tin Ảnh viện
…. Tạo một website thân thiện, nhanh và hiệu quả hơn trong việc quản lý, hay giới
thiệu bằng thủ công. Hoàn thành tốt đề tài thực tập cơ sở của tôi.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 2
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
người sử dụng quyền tự do chạy, quyền tự do sao chép, quyền tự do phân phối lại,
nghiên cứu, thay đổi và cải tiến cho phù hợp với nhu cầu sử dụng của mình mà không
cần phải tới sự cho phép, hoặc phải trả tiền, cho bất cứ cá nhân hoặc nhóm người nào.
Cụm từ tự do trong FOSS không ám chỉ sự miễn phí, mà chỉ nói về các quyền tự
do mà FOSS mang lại cho người sử dụng. Cụm từ nguồn mở nhấn mạnh đến quyền
của người sử dụng được nghiên cứu, thay đổi và cải tiến mã nguồn – có nghĩa là cả
thiết kế chi tiết của các ứng dụng FOSS. Các phần mềm tự do thường mang yếu tố mã
nguồn mở và ngược lại, vì cả hai loại phần mềm này đều nằm trong cùng một tập hợp
các quyền tự do dành cho người sử dụng phần mềm và đã được Richard Stallman định
nghĩa từ cuối những năm 1980.
c. Lợi ích và hạn chế
+) Lợi ích
Chi phí thấp: PMNM được dùng miễn phí về bản quyền và nếu có chi phí thì
cũng chỉ là chi phí cho đóng gói dịch vụvà dịch vụ cho sản phẩm. Vì vậy, chi phí rất
thấp so với các phần mềm thương mại.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 4
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
Độc lập: PMNM không bị lệ thuộc vào bất kỳ một nhà cung cấp nào. Sự độc
lập này là rất quan trọng vì các cơ quan Nhà nước đều cần có những giải pháp chung,
chuẩn hóa và không muốn phụ thuộc vào các dịch vụsở hữu riêng của các nhà cung
cấp.
Tính thích ứng và sáng tạo: Thực tế đã cho thấy rất ít chương trình có thể tồn
tại không cần thay đổi, nâng cấp trong một thời gian dài. Vì thế, khả năng cho phép
lập trình viên xác định và sửa các lỗi cũng như thích ứng phần mềm với các yêu cầu
mới phát sinh là một vấn đề rất quan trọng. Sự sẵn sàng có mã nguồn và có quyền thay
đổi chúng giúp cho công việc này dễ dàng hơn. Việc có được mã nguồn cũng giúp
những nhà lập trình sáng tạo ra phần mềm riêng của mình, đặc biệt đối với thế hệ trẻ
trình phát triển nó. Nếu các nguồn phát triển được kết hợp và tổ chức lại một cách tốt
hơn thì hiệu suất sẽ được nâng cao.
Thiếu các ứng dụng: Vẫn còn những lĩnh vực vắng bóng các PMNM. (VD:
một trình biên soạn HTML như MS Frontpage)
Bất tiện: Mã nguồn mở thường chỉ tập trung vào các mã của nó mà ít chú ý đến
thiết kế giao diện và phát triển các tiện ích.
Tính tương hỗ với các hệ thống phần mềm đóng: Các phần mềm nguồn mở,
nhất là khi cài trên máy để bàn, thường không hoàn toàn tương thích với phần mềm
đóng.
1.2 Giới thiệu về ngôn ngữ lập trình PHP và hệ quản trị CSDL MySQL
a. Giới thiệu về ngôn ngữ lập trình PHP
Cái tên PHP ban đầu được viết tắt bởi cụm từ Personal Home Page và được
phát triển từ năm 1994 bởi Rasmus Lerdorf. Lúc đầu chỉ là bộ đặc tả Perl, được sử
dụng để lưu dấu vết người dùng trên các web. Sau đó Rasmus Lerdorf đã phát triển
PHP như là một máy đặc tả (Scripting engine). Vào giữa năm 1997, PHP đã phát triển
nhanh chóng trong sự yêu thích của nhiều người. PHP đã không còn là một dự án cá
nhân của Rasmus Lerdorf và đã trở thành công nghệ web quan trọng. Zeev Suraski và
Andi Gutmans đã hoàn thiện việc phân tích cú pháp cho ngôn ngữ để rồi tháng 6 năm
1998, PHP3 đã ra đời (phiên bản này có phần mở rộng là *.php3).
Cho đến tận thời điểm đó, PHP chưa 1 lần được phát triển chính thức, một yêu
cầu viết lại bộ đặc tả được đưa ra, ngay sau đó PHP4 ra đời (phiên bản này có phần
mở rộng không phải là *.php4 mà là *php). PHP4 nhanh hơn PHP3 rất nhiều. PHP
bây giờ được gọi là PHP Hypertext PreProcesor. Tính đến thời điểm hiện thời, phiên
bản PHP ổn định mới nhất là 5.3.5.
b. Tại sao phải sử dụng PHP
Như chúng ta đã biết, rất nhiều website được xây dựng bởi ngôn ngữ HTML
(Hypertext Markup Language). Đây chỉ là những website tĩnh, nghĩa là chứng chỉ
chứa đựng một nội dung cụ thể với những dòng văn bản đơn thuần, hình ảnh và có thể
được hỗ trợ bởi ngôn ngữ JavaScript hoặc Java Apple. Tuy nhiên, website cần được
cập nhật nội dung một cách linh hoạt dễ dàng, vì vậy nó cần tới cơ sở dữ liệu. Các
Trang 7
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
Hình 1.2 Hoạt động của website viết bằng PHP
Tóm lại, sự khác nhau giữa HTML và PHP là HTML không được thực hiện xử lý
trên máy chủ Web server còn các trang viết bằng mã PHP được thực hiện và xử lý trên
máy chủ Web server, do đó PHP linh động và mềm dẻo hơn.
c. Những điểm mạnh của PHP
- PHP thực hiện với tốc độ rất nhanh và hiệu quả. Một Server bình thường có
thể đáp ứng được hơn hàng chục triệu truy cập trong một ngày.
- PHP hỗ trợ kết nối tới rất nhiều CSDL khác nhau như PostgreSQL,
Microsoft SQL Server, Oracle, dbm, filePro Ngoài ra còn hỗ trợ kết nối tới ODBC
thông qua đó có thể kết nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ.
- PHP cung cấp một hệ thống thư viện phong phú và ngày càng phát triển.
Do PHP ngay từ đầu được thiết kế nhằm mục đích xây dựng và phát triển các ứng
dụng trên web nên PHP cung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các công
việc rất dễ dàng: gửi, nhận mail, làm việc với cookie…
- PHP là một ngôn ngữ rất dễ dùng, dễ học và đơn giản hơn nhiều so với các
ngôn ngữ khác như Perl, Java.
- Đặc biệt, PHP là ngôn ngữ mã nguồn mở. Có rất nhiều phần mềm website
mã nguồn mở được viết trên nền tảng của PHP như Joomla, Drupal, Nukeviet
c. Các đặc điểm của MySQL:
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phí nằm trong
nhóm LAMP (Linux - Apache -MySQL - PHP)
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 8
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
nghĩa là ngay khi bạn gặp vấn đề khó khăn, rất nhiều người tình nguyện sẵn sàng giúp
đỡ bạn.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 9
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
• Joomla! giúp tiết kiệm thời gian và công sức thiết kế Website
• Sử dụng Joomla rất dễ dàng và thân thiện đối với cả những người nghiệp dư và
các chuyên gia.
• Joomla! cung cấp rất nhiều chức năng ở các lĩnh vực khác nhau thông qua các
thành phần mở rộng được phát triển bởi các hãng thứ ba, trong khi phần lớn trong số
chúng cũng đều có mã nguồn mở và miễn phí.
• Joomla! có một số lượng template (giao diện) khổng lồ, từ những giao diện ở
mức đơn giản cho tới phức tạp.
• Joomla! có hàng trăm website cung cấp các tài liệu hướng dẫn sử dụng từ cơ
bản cho tới nâng cao. Các hướng dẫn đều rõ ràng, dễ hiểu và có các minh họa bằng
hình ảnh, video clip kèm theo.
• Tài liệu API dành cho lập trình viên, phát triển viên được cung cấp đầy đủ.
• Các hoạt động của Joomla! như triển lãm Joomla (Joomla Exhibition), hội thảo
Joomla (Joomla Workshop), ngày hội Joomla (Joomla! Day) được tổ chức thường niên
ở các thành phố lớn của các nước như Úc, Mỹ, Anh, Pháp luôn thu hút đông đảo các
thành viên tham gia.
+) Tình hình sử dụng Joomla! ở Việt Nam
Hình 1.3 Tình hình sử dụng Joomla! ở Việt Nam
Kể từ khi Joomla! 1.0 ra đời vào tháng 09/2005, có hàng nghìn thậm chí hàng
chục nghìn website ở Việt Nam đã được xây dựng trên nền tảng Joomla! và con số này
vẫn đang tiếp tục tăng không ngừng. Nhiều người từng là quản trị viên của diễn đàn
Joomla Việt đầu tiên đã thành lập các công ty chuyên thiết kế website Joomla và đang
gặt hái những thành công bước đầu. Một vài người khác thậm chí đã vượt qua hàng
4.6. Phiên bản Joomla 1.5 tiếp tục duy trì một giao diện look and feel (nhìn và cảm
nhận) rất thuận tiện đối với người sử dụng. Cả Joomla 1.5 và mambo 4.6 đều hỗ trợ đa
ngôn ngữ. Joomla sử dụng file định dạng “.ini” để lưu trữ các thông tin chuyển đổi
ngôn ngữ, nó 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, phù hợp với ngôn ngữ Việt Nam. Joomla 1.5 cũng bao gồm các đặc tính mới
như:
Hỗ trợ các hình thức chứng thực LDAP, Gmail
Hỗ trợ mô hình Client-Server hỗ trợ giao thức gọi hàm từ xa Xml-Rpc.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 11
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
Hỗ trợ các trình điều khiển cớ sở dữ liệu dành cho MySQL 4.1+ (trên nền
PHP5) và tăng cường hỗ trợ cho MySQL 5, đồng thời nó cũng hỗ trợ các hệ quản
trị cơ sở dữ liệu khác.
Phiên bản 1.6.x: Với một khoảng thời gian chuẩn bị xấp xỉ 3 năm, cuối cùng
Joomla phiên bản 1.6 cũng đã chính thức được ra mắt (ngày 11/01/2011) với các tính
năng được chờ đợi từ rất lâu của cộng đồng Joomla như:
Quản lý truy xuất của người dùng (ACL).
Phân loại nội dung đa cấp thay vì chỉ có hai cấp như phiên bản trước.
Quản lý và nâng cấp các thành phần mở rộng chỉ với vài cú nhấp chuột.
Khả năng cài đặt một lúc nhiều loại thành phần mở rộng.
Thư viện JForm mới giúp việc tạo và quản lý Form trong trang web dễ dàng
hơn, giúp tăng tốc trong việc phát triển các thành phần mở rộng trong Joomla.
Và rất nhiều cải tiến khác giúp tăng tốc độ tải trang, cải thiện trải nghiệm
cho người dùng, tối ưu hoá cho các bộ máy tìm kiếm.v.v
Phiên bản 1.7.x: Như dự đoán, Joomla! 1.6 chỉ là bước đệm để tiến tới
Joomla! 1.7, phiên bản thật sự được mọi người mong đợi với những tính năng mới và
hoàn thiện hơn.
e. Thành phần mở rộng của Joomla
Thành phần mở rộng (extensions) là gói cài đặt thêm để mở rộng chức năng
ngoài các chức năng cốt lõi của Joomla. Trong Joomla, có năm loại thành phần mở
rộng.
+) Component
Joomla Component là một trong các loại thành phần mở rộng quan trọng nhất
của Joomla và thực chất nó là một ứng dụng trong hệ thống Joomla. Component được
sử dụng để thực hiện một chức năng lớn nào đó, chẳng hạn như: Cung cấp tin tức,
quảng cáo, rao vặt, đặt phòng khách sạn, bất động sản, download
Một component được hiển thị ở phần trung tâm, hay phần chính (mainbody) của
Website.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 13
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
Hình 1.5 Menu quản lý các Component của Joomla
Các Component mặc định của Joomla
Trong phiên bản Joomla 2.5 có tất cả 11 component mặc định được cung cấp
kèm theo. Các component này được đặt trong thư mục [Joomla]/components và nằm
trong các thư mục con tương ứng với ký hiệu là "com_tên component".
Hình 1.6 Danh sách các component mặc định của Joomla 2.5
Danh sách các component và ý nghĩa của chúng:
+ com_banners: Quản lý bảng quảng cáo (banner).
+ com_contact: Quản lý các đầu mối liên hệ (contact).
+ com_content: Quản lý và hiển thị bài viết (đây là component quan trọng nhất)
+ com_mailto: Quản lý chức năng gửi/nhận email.
+ com_media: Quản lý các tệp đa phương tiện (video, flash, mp3, hình).
+ com_newsfeeds: Quản lý việc lấy tin từ website khác.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 15
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
Hình 1.8 Các module mặc định của Joomla1.5
Danh sách các Module Joomla được cung cấp theo mặc định.
+ mod_archive: Module hiển thị các bài viết đã được đánh dấu "lưu trữ".
+ mod_banners: Module hiển thị các quảng cáo.
+ mod_breadcrumbs: Module hiển thị thanh điều hướng.
+ mod_custom: Module hiển thị một đoạn mã HTML bất kỳ.
+ mod_feed: Module hiển thị tin lấy từ các website khác.
+ mod_footer: Module hiển thị dòng bản quyền ở cuối Website.
+ mod_latestnews: Module hiển thị các bài viết mới nhất.
+ mod_login: Module hiển thị form đăng nhập.
+ mod_mainmenu: Module hiển thị menu điều khiển.
+ mod_mostread: Moudle hiển thị các bài viết được đọc nhiều nhất.
+ mod_newsflash: Module hiển thị tin vắn / tin nhanh.
+ mod_poll: Module hiển thị bình chọn.
+ mod_random_image: Module hiển thị ảnh ngẫu nhiên.
+ mod_related_items: Module hiển thị các bài viết liên quan.
+ mod_search: Module hiển thị form tìm kiếm.
+ mod_sections: Module hiển thị danh sách các mục của Website.
+ mod_stats: Module hiển thị các thông số thống kê của Website.
+ mod_syndicate: Module cấp tin cho các website khác.
+ mod_whoisonline: Module hiện danh tính và số người trực tuyến.
+ mod_wrapper: Mudule hiển thị một trang web bất kỳ được nhúng vào
website Joomla.
+) Plugin
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hình 1.11 Quản lý Template Joomla từ trang quản trị
Các Template mặc định của Joomla:
Trong phiên bản Joomla 2.5 có 3 template được đóng gói sẵn kèm theo: JA
Purity (Joomlart), Rhuk Milkyway (RocketTheme) và Beez (Angie Radtke/Robert
Deutz). Trong đó JA Purity là template được thiết kế bởi Joomlart - công ty có xuất xứ
từ Việt Nam và là công ty hàng đầu về template Joomla hiện nay.
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 18
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
H
ình 1.12 Template Beez, JA Purity và Rhuk Milkyway của Joomla
Đặc điểm của Template Joomla:
+ Các template của Joomla đều có khả năng tùy biến cao thông qua cách sắp xếp
và đặt vị trí các module rất linh động.
+ Việc thiết kế Template Joomla khá dễ dàng, thậm chí chỉ cần vài giờ là có thể
chuyển từ một template thuần HTML/CSS hay một template của một PORTAL/CMS
khác sang template Joomla.
+ Có thể dùng cùng lúc vài template khác nhau trên cùng website. Chẳng hạn
đối với trang HOME gắn với template JA Purity, còn trang DOWNLOAD lại gắn với
template Rhuk Milkyway
+ Số lượng template Joomla free (template miễn phí) và template Joomla
commercial (template có phí) được cung cấp trên mạng internet hiện nay là một con số
rất lớn. Có tới hàng nghìn thậm chí hàng chục nghìn template.
+) Languages
Joomla là mã nguồn mở hỗ trợ đa ngôn ngữ, sử dụng file định dạng “.ini” để lưu
trữ các thông tin chuyển đổi ngôn ngữ, nó 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. Bằng cách cài đặt một gói ngôn ngữ, có thể để quốc tế
hóa Joomla sang các ngôn ngữ khác nhau.
+) Chức năng quản lý mẫu sản phẩm
Chức năng này cho phép người quản trị phân loại và quản trị các loại danh mục
sản phẩm, sản phẩm, của ảnh viện cá nhân, hay những trang liên kết.
+) Tính năng cơ bản cần phải cung cấp cho người quản trị:
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 20
Tìm hiểu mã nguồn mở Joomla và triển khai website giới thiệu Áo Cưới
- Danh mục sản phẩm: Thêm và thay đổi được tên danh mục mục sản
phẩn, giới thiệu về danh mục dịch vụđó.
- Sản phẩm: Thêm bớt và thay đổi được thông tin chi tiết từng dịch vụ cho
từng danh mục.
Tính năng cơ bản cần phải cung cấp cho người dùng
- Xem được các danh mục sản phẩm, album, liên kết, các giới thiệu…
- Xem được thông tin chi tiết của từng mục
Hình 2.2 Giao diện trang quản lý danh mục
+) Chức năng quản lý chính
- Cho phép quản trị website có thể chỉnh sửa các thông tin về cửa hàng,
hiển thị các đơn hàng, thêm, bớt các hình ảnh về sản phẩm, quản lý các danh mục
+) Tính năng cơ bản cần phải cung cấp cho người quản trị:
- Ảnh viện: Quản lý cấu hình thông tin của ảnh viện.
- Quản lý liên kết, giới thiệu đến website
+) Tính năng cơ bản cần phải cung cấp cho người dùng
- Cho phép người dùng xem được hết các mục về ảnh viện
GVHD: Lê Văn Vịnh
SVTH: Nguyễn Văn Đàng
Hoàng Chí Công
Trang 21