Các thông tin trên trang Web luôn được cập nhật thường xuyên đặc biệt là các thông tin về virus, sự cố máy tính và các phần mềm ứng dụng…Tại Website ta có thể tham khảo nhiều tài liệu hữ
Trang 1“ Công cha như núi thái sơn Nghĩa mẹ như nước trong nguồn chảy ra ”
Con cảm ơn công sinh thành và dưỡng dục của cha mẹ !
“ Nhất tự vi sư, bán sự vi sư ”
Con cảm ơn sự ân cần dìu dắt, dạy bảo của thầy cô !
Trang 2Mục lục
LỜI NÓI ĐẦU 4
MỤC LỤC 2
LỜI CẢM ƠN ! 5
PHẦN I TỔNG QUAN 6
1.1.CÔNG NGHỆ THÔNG TIN 6
1.1.1.Các sản phẩm phần mềm ứng dụng 7
1.1.2.Mạng thông tin điện tử: 7
1.1.3.Tổ chức điện tử: 8
1.1.4.Website: 8
1.1.5.Thư điện tử (E-mail): 8
1.4.NỀN TẢNG CLIENT – SERVER 11
1.5.1.PHP và MYSQL 16
1.5.2.Cài đặt Server 17
PHẦN II JOOMLA 23
2.1.GIỚI THIỆU VỀ JOOMLA 23
2.2.LỊCH SỬ PHÁT TRIẾN CỦA JOOMLA 23
2.3.VÒNG ĐỜI PHÁT TRIỂN CỦA JOOMLA 27
2.4.THÀNH PHẦN JOOMLA 27
1.1.Componemt 30
1.2.Module 30
1.3.Mambot (Plug-in) 31
1.4.Emplate (Temp) 31
1.5.Tool 31
1.6.Language 31
2.5.CÀI ĐẶT 32
VIỆC CÀI ĐẶT WEBSITE JOOMLA! LÀ RẤT DỄ DÀNG, ĐƠN GIẢN VÀ NHANH CHÓNG ĐỐI VỚI TẤT CẢ MỌI NGƯỜI TA CHỈ CẦN TRUY CẬP WEBSITE JOOMLA , DOWNLOAD BỘ CÀI ĐẶT, GIẢI NÉN, UPLOAD LÊN HOST, TẠO DATABASE VÀ TIẾN HÀNH CÀI ĐẶT THEO TỪNG BƯỚC MÀN HÌNH CÀI ĐẶT CỦA JOOMLA 1.5 KHÁ THÂN THIỆN VÀ ĐƯỢC BỐ TRÍ HỢP LÝ TA CHỈ CẦN CHÚ Ý MỘT ĐIỀU DUY NHẤT LÀ "PHẢI TẠO 1 DATABASE VỚI COLLATION - CHARSET: UTF8_GENERAL_CI" TRƯỚC KHI CÀI ĐẶT MÀ THÔI 32
UPLOAD JOOMLA UPLOAD LÊN SERVER VÀ GIẢI NÉN VÀO THƯ MỤC GỐC CHỨA WEB (HOẶC MỘT THƯ MỤC CON CỦA NÓ VÀ ĐẶT TÊN LÀ JOOMLA) 32
NẾU CÁC GIÁ TRỊ KIỂM TRA CÓ MÀU ĐỎ THÌ CẦN HỎI BỘ PHẬN HỖ TRỢ KỸ THUẬT CỦA SERVER TA VẪN CÓ THỂ TIẾP TỤC CÀI ĐẶT TUY NHIÊN MỘT SỐ CHỨC NĂNG CÓ THỂ SẼ KHÔNG HOẠT ĐỘNG 33
Trang 3BƯỚC 3: THÔNG TIN BẢN QUYỀN 34
BƯỚC 4: THIẾT LẬP CÁC THÔNG SỐ ĐỂ KẾT NỐI TỚI CƠ SỞ DỮ LIỆU 34
BƯỚC 6: THIẾT LẬP CẤU HÌNH SITE JOOMLA CỦA BẠN 35
BƯỚC 7: KẾT THÚC 36
PHẦN III WEBSITE LỚP 45 E2 37
3.1.CẤU TRÚC WEBSITE 37
3.2.CÁCH TẠO VÀ TRIỂN KHAI 40
3.2.1.Cách tạo 40
3.2.2.Triển khai lên Server/ Localhost 52
BƯỚC 1: UPLOAD THƯ MỤC CHỨA WEBSITE LÊN SERVER 54
BƯỚC 2: NHẬP (IMPORT) DỮ LIỆU TỪ LOCALHOST LÊN SERVER 54
Bước 2.1: Xuất (export) dữ liệu từ localhost ra tệp *.sql 54
Bước 2.2: Nhập (export) dữ liệu từ localhost ra tệp *.sql 54
BƯỚC 3: CHỈNH SỬA CÁC THÔNG SỐ (QUAN TRỌNG) 55
CHÚ Ý: 56 3.3.BẢO MẬT JOOMLA 56
3.4.TỰ ĐÁNH GIÁ WEBSITE 59
PHẦN IV KẾT LUẬN VÀ TRIỂN VỌNG 59
4.1.KẾT LUẬN 60
4.2.TRIỂN VỌNG 61
Trang 4Lời nói đầu
Ngày nay với sự phát triển như vũ bão của công nghệ điện tử và bùng nổ của công nghệ thông tin trong đó có ngành thiết kế Website Thiết kế Website có rất nhiều lợi ích.Website là sự tổng hợp toàn diện các thông tin mới nhất, cung cấp cho chúng ta khá nhiều kiến thức Các thông tin trên trang Web luôn được cập nhật thường xuyên đặc biệt là các thông tin về virus, sự cố máy tính và các phần mềm ứng dụng…Tại Website ta có thể tham khảo nhiều tài liệu hữu ích xoay quanh nhiều vấn đề như thông tin , cuộc sống hằng ngày, …Bên cạnh đó Website còn là một diễn đàn để chúng ta tham khảo, học tập và trao đổi kinh nghiệm của tất cả mọi người Ngoài ra, nó còn thể hiện sự năng động, bắt kịp với thời đại Vì vậy việc thiết kế một Website là rất quan trọng
Tôi thiết kế Website này có rất nhiều mục đích thứ nhất là để bảo vệ luận văn tốt nghiệp, thứ 2 là để mọi người trong lớp mình chia sẻ thông tin và gặp gỡ nhau.Với suy nghĩ là khi ra trường liệu chúng tôi có thể liên lạc đều đặn so với bây giờ hay không, có còn biết những thông tin về nhau hay không? Liệu những kỷ niệm của lớp 45E2 có còn được lưu giữ hay không ? Hy vọng sau khi trang Web này ra đời nó là cầu nối giữa tôi với các bạn cùng lớp và bạn khác lớp, giúp cho chúng tôi gần nhau hơn, mong rằng mỗi khi thành viên nào đó lên internet thư giản qua những giờ làm việc căng thẳng đọc lại nhưng thông tin, kỷ niệm về lớp với một
nụ cười thật rạng rở trên môi của mỗi người
Như vậy trong luận văn này tôi sẽ trình bày một cách có hệ thống nhất về cách nhìn tổng quan nhất thông qua phần I : Tổng quan, phần II tìm hiểu về mã nguồn
mở joomla, phần III là giới thiệu website lớp, cuối cùng là kết luận và triển vọng
Trang 5Rồi trong khi học các môn đại cương và các môn chuyên ngành với bao nhiêu là khó khăn và bỡ ngỡ, em lại được nâng niu dìu dắt giúp đỡ của các thầy cô, như môn Pascal cơ sở của thầy Trần Văn Cảnh, người thầy đầu tiên đặt nền tảng cho em học các môn chuyên ngành khác, Tiếp đến là môn học mà chỉ gọi là “ C ” của cô Trần Thị Kim Oanh.Và môn Chuyên ngành II của thầy Cao Thanh Sơn thầy đã cho em hiểu thế nào là Web tĩnh? Thế nào là Web động?
Và người em chịu ơn nhiều nhất là thầy giáo trẻ đã mang hết tài năng và bầu nhiệt huyết của mình giúp em hoàn thành từ môn Thực tập cơ sở cho đến Thực tập chuyên ngành và Luận văn tốt nghiệp cuối cùng của mình Người thầy mà em muốn nói đến ở đây là thầy Vũ Chí Cường
Em cũng xin chân thành cảm ơn tất cả những thầy cô khác trong khoa, thầy cô nào cũng để lại những kỷ niệm và sự học của các thầy cô cho em
Em xin cảm ơn các thầy cô !
Học trò Đào Thị Hiểu
Trang 6Phần I TỔNG QUAN
1.1 Công nghệ thông tin
Qua các kênh thông tin chúng ta được biết nhiều đến cụm từ “Công nghệ Thông tin” (CNTT), ví như, ngành công nghiệp CNTT là một trong những ngành kinh tế chủ lực của các thành phố trong tương lai, hay trong Chỉ thị 58/CT-TW của Bộ chính trị khẳng định “CNTT là một trong các động lực quan trọng nhất của sự phát triển, cùng với một số ngành công nghệ cao khác đang làm biến đổi sâu sắc đời sống kinh tế, văn hóa, xã hội thế giới hiện đại” v.v
Sự đóng góp của CNTT và công nghiệp CNTT ngày càng có ảnh hưởng sâu sắc đến việc đi tắt đón đầu để thực hiện thành công sự nghiệp Công nghiệp hóa, Hiện đại hóa đất nước Vậy nội hàm của CNTT và công nghiệp CNTT là gì? Là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại - chủ yếu
là kỹ thuật máy tính và viễn thông - nhằm tổ chức, khai thác và sử dụng hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm tàng trong mọi lĩnh vực hoạt động của con người và xã hội Công nghiệp CNTT gồm có công nghiệp máy tính
và các thiết bị liên quan, công nghiệp phần mềm, công nghiệp nội dung và công nghiệp dịch vụ
Như đã trình bày ở trên việc ứng dụng và phát triển CNTT sẽ góp phần giải phóng sức mạnh vật chất, trí tuệ và tinh thần của dân tộc, thúc đẩy công cuộc đổi mới phát triển nhanh và hiện đại hóa các ngành Tuy nhiên, để khẳng định điều này được rõ ràng hơn cần phân tích hướng phát triển của CNTT
Có hai hướng chính để phát triển CNTT:
- Thứ nhất: Đưa CNTT đi sâu vào các ngành kinh tế, khoa học, kỹ thuật…, các
cơ cấu xã hội Tuy nhiên, nếu hiểu thuật ngữ “ứng dụng CNTT” một cách đơn giản
là dùng máy tính trong các ngành, chẳng hạn dùng máy tính để quản lý Đoàn viên thanh niên của chi đoàn, hay trao đổi thông tin qua thư điện tử (E-mail)
Trang 7- Thứ hai: CNTT tự nó phải là một ngành kinh tế mạnh, chiếm tỉ trọng ngày càng cao trong cơ cấu thu nhập quốc dân (GDP) Nói cách khác, đó là việc xây dựng một ngành sản xuất, dịch vụ CNTT mạnh.
Chúng ta sẽ quan tâm nhiều đến hướng thứ nhất - tức quan tâm đến ứng dụng các tiện ích của CNTT – vì việc ứng dụng triệt để các tiên ích của công nghệ thông tin
sẽ giúp nâng cao năng suất công việc Để nhận diện vấn đề, xin đưa ra một vài dẫn chứng sau:
1.1.1 Các sản phẩm phần mềm ứng dụng
Là những công cụ hỗ trợ hiệu quả cho công tác quản lý của mọi tổ chức Ngành công nghiệp máy tính ngày nay cho phép chúng ta có được một kho tàng khổng lồ
về cơ sở dữ liệu phục vụ cho công tác quản lý bao gồm quản lý con người, quản lý
hồ sơ thư tịch, quản lý nội dung công việc; … rất tinh gọn và hiệu quả mà lại ít người
1.1.2 Mạng thông tin điện tử:
Bao gồm mạng nội bộ và mạng Internet
Mạng nội bộ: Là hệ thống các mạng thông tin máy tính được liên kết với nhau
trên phạm vi trong một cơ quan (hay tổ chức) giúp cho việc tìm kiếm thông tin trong nội bộ giữa các bộ phận khác nhau trong một cơ quan được thực hiện nhanh hơn và chính xác hơn
Mạng Internet: Là hệ thống các mạng thông tin máy tính được liên kết với nhau
trên phạm vi toàn thế giới thông qua các hệ thống kênh truyền thông hay hệ thống cáp quang Qua mạng Internet chúng ta sẽ có được một xa lộ thông tin phục vụ cho nhiều lĩnh vực như học tập, nghiên cứu, thương mại v.v
Trang 81.1.5 Thư điện tử (E-mail):
Là một tổ chức làm việc với các thành viên trong tổ chức 24/24 (giờ/ngày) và 7/7 (ngày/tuần) các thành viên có thể thụ hưởng các dịch vụ do tổ chức cung cấp dù họ đang ở đâu
1.2. Sự phát triển của xã hội và ứng dụng của website
Với sự phát triển tốc độ chóng mặt của thế giới hiện nay về điện tử, công nghệ viễn thông, công nghệ thông tin Hàng loạt cá nhân, tập thể, doanh nghiệp và đặc biệt là các tập đoàn ra đời và chuyên tạo ra nhiều mặt hàng khác nhau, các mặt hàng này ngày càng được cần phải có một giải pháp nào đó để giới thiệu cho mọi người biết, với mục đích giới thiệu, quảng bá và bán hàng tới người tiêu dùng Website là nơi có thể giải quyết được vấn đề này
Web trở nên phổ biến, nó cung cấp cho người sử dụng khả năng truy cập dễ dàng từ đó người sử dụng có thể khai thác các thông tin trên Net dưới dạng văn bản, hình ảnh thậm chí cả âm thanh và video Vì thế, Web đôi khi còn được gọi là đa phương tiện của mạng Internet Ngày nay Website được ứng dụng rất nhiều trong cuộc sống, trong nhiều lĩnh vực khác nhau: Kinh tế, chính trị, văn hóa, y học…Thông qua Website chúng ta có thể biết được nhiều thông tin, Web là nơi mà chúng ta có thể tìm kiếm thông tin, trao đổi những kinh nghiệm sống và làm việc…
Trang 9Ở Việt nam cũng vậy, Trong thời đại bùng nổ công nghệ thông tin và xu hướng phát triển kinh tế mạnh mẽ như hiện nay nhu cầu về Web cho cá nhân hoặc các tổ chức, cơ quan, đã và đang trở thành nhu cầu cấp bách Chính vì vậy Website ngày càng được rất nhiều người yêu thích trong quá trình phát triển của mình.
1.3. Website
WWW là World Wide Web ( Web rộng khắp thế giới, hay mạng toàn cầu), còn được gọi tắt là Web, là một hệ thống các máy chủ Internet hỗ trợ các tài liệu được định dạng một cách đặc biệt bằng một ngôn ngữ đánh dấu (markup) gọi là HTML (HyperText Markup Language, ngôn ngữ đánh dấu siêu văn bản), hỗ trợ các liên kết (link) tới các tài liệu khác, cũng như tới các file đồ họa, âm thanh và video Nghĩa
là, các trang Web có tính tương tác, không chỉ có chữ mà còn chứa đựng cả âm thanh, hình ảnh, phim, Ta có thể nhảy phóc từ tài liệu này sang tài liệu khác chỉ bằng động tác click chuột lên các điểm nóng (hot spot) trên tài liệu đang mở
www là một cách truy xuất thông tin trên khắp môi trường Internet Web dùng giao thức HTTP (HyperText Transfer Protocol, giao thức truyền siêu văn bản), chỉ
là một trong các ngôn ngữ được sử dụng trên Internet, để truyền dữ liệu Các dịch
vụ Web, vốn sử dụng HTTP để cho phép các ứng dụng trao đổi logic giao dịch, dùng Web để chia sẻ thông tin Nói tóm lại, Web chỉ là một trong các cách thức để thông tin có thể được phổ biến trên Internet
Có nhiều ứng dụng gọi là trình duyệt Web (Web browser), như Internet Explorer, Netscape, Opera, firefox giúp bạn dễ dàng truy xuất các trang Web
Ngày nay, Web được ứng dụng rất rộng rãi trên thế giới, trong đó có việt nam Web đã trở thành một vũ trụ thông tin có thể truy xuất qua mạng, một hiện thân của tri thức nhân loại, và một kho tri thức của loài người
Một website có rất nhiều chức năng và mục đích khác nhau:
Trang 10Diễn đàn (forum): Mục tiêu tạo nơi trao đổi ý kiến cho cộng đồng người xem
website Người xem có thể đăng tải chủ đề, câu hỏi của mình lên website, đọc và trả lời những câu hỏi khác … Quyền thao tác trên diễn đàn được phân chia theo nhiều thứ cấp, từ đơn giản là chỉ đọc, đến quyền được trả lời, được tạo chủ đề mới, được kiểm soát bài viết trên diễn đàn
Đăng ký nhận bản tin (newsletter): Với mục tiêu giữ liên lạc với người đang xem
để có thể gửi đến người xem những bản tin cung cấp thông tin hữu ích (và có thể kèm theo thông tin quảng cáo dịch vụ, sản phẩm) Người quan tâm sẽ nhận bản tin qua email theo định kỳ bằng cách cung cấp địa chỉ email của mình qua website
Thông báo tin tức mới (lastest news): Trên một số website nên có chức năng
đăng tải thông báo, tin tức mới nhất, hiển thị trên trang chủ để người xem có thể nhìn thấy ngay
Giỏ mua hàng (shopping cart): Dành cho các website bán nhiều mặt hàng, phục
vụ nhu cầu chọn lựa hàng hóa mô phỏng quá trình mua sắm ở siêu thị, sẽ liệt kê
"hóa đơn" các món hàng chọn mua, số lượng từng món, tổng giá trị Cuối cùng là quyết định mua hàng và thanh toán (check-out)
Miễn phí (free download): Để thu hút người xem một số website còn cung cấp
những thông tin dưới dạng file, chương trình …cho người xem download miễn phí
về dùng Ví dụ như sách báo điện tử (e-book), trò chơi điện tử (game), chương trình ứng dụng nhỏ, hình ảnh đẹp
Site map: Sơ đồ danh mục chức năng của website giúp cho người xem có cái
nhìn tổng quát và có thể đến thẳng nơi cần đến nơi mình cần
Vậy Website được xây dựng như thế nào? Website được xây dựng trên mô hình Client / Server Mô hình Client/Server là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh
Trang 11hơn Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó không thể xử lý yêu cầu này được Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp Ví
dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu Có rất nhiều các dịch vụ server trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu
1.4 Nền tảng Client – Server
Mô hình Client – Server gồm 3 thành phần: Client, Server, Database Clients và
Servers là các thiết bị thực hiện các chức năng đặc trưng trên mạng Các thiết bị Client thông thường yêu cầu và nhận thông tin trên mạng Các máy tính xách tay và
hầu hết các máy tính bàn vận hành như các Client Một thiết bị gọi là Server khi nó
làm chủ các tập tin, làm chủ các cơ sở dữ liệu, các Web site hay các ứng dụng khác Các thiết bị Server thường có bộ vi xử lý với tốc độ cao, có nhiều bộ nhớ, và đĩa cài đặt lớn hơn so với các Client
Thuật ngữ Client/Server ngụ ý tới bất kỳ một mạng nào thiết kế sử dụng các Client và các Server Web, FTP, Email, DNS và nhiều ứng dụng cơ sở dữ liệu khác
là các thiết kế theo kiểu Client/Server Các mạng Client/Server có thể được xây dựng trên Internet, trong Intranet, hay tại nhà
Thuật ngữ Server được dùng cho những chương trình thực thi những chương
trình thi hành như một dịch vụ trên toàn mạng Các chương trình này chấp nhận tất
cả những yêu cầu hợp lệ đến từ mọi nơi trên mạng, sau đó nó thực thi hành dịch vụ
và trả lại kết quả về máy yêu cầu
Trang 12Server còn được định nghĩa như là một máy tính nhiều người sử dụng (multiuser computer) Vì một server phải quản lý nhiều yêu cầu từ các client trên mạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyên của hệ thống Các ứng dụng chạy trên server phải được tách rời nhau để một lỗi của ứng dụng này không làm hỏng ứng dụng khác Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ thống Vai trò của server Như chúng ta đã bàn ở trên, server như là một nhà cung cấp dịch vụ cho các clients yêu cầu tới khi cần, các dịch
vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống Các ứng dụng server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho các hoạt động trên các máy clients
có hiệu quả hơn Sự hỗ trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC Để đảm bảo tính an toàn trên mạng cho nên server này còn có vai trò như là một nhà quản lý toàn bộ quyền truy cập dữ liệu của các máy clients, nói cách khác đó là vai trò quản trị mạng Có rất nhiều cách thức hiện nay nhằm quản trị có hiệu quả, một trong những cách đang được sử dụng đó là dùng tên Login và mật khẩu
Một chương trình được coi là Client khi nó gửi các yêu cầu tới máy có chương
trình server và chờ đợi câu trả lời từ server Chương trình server và client nói chuyện với nhau bằng các thông điệp (messages) thông qua một cổng truyền thông liên tác IPC (Interprocess Communication) Để một chương trình server và một chương trình client có thể giao tiếp được với nhau thì giữa chúng phải có một chuẩn
để nói chuyện, chuẩn này được gọi là giao thức Nếu một chương trình client nào đó muốn yêu cầu lấy thông tin từ server thì nó phải tuân theo giao thức mà server đó đưa ra Bản thân chúng ta khi cần xây dựng một mô hình client/server cụ thể thì ta cũng có thể tự tạo ra một giao thức riêng nhưng thường chúng ta chỉ làm được điều này ở tầng ứng dụng của mạng Với sự phát triển mạng như hiện này thì có rất nhiều giao thức chuẩn trên mạng ra đời nhằm đáp ứng nhu cầu phát triển này Các
Trang 13giao thức chuẩn (ở tầng mạng và vận chuyển) được sử dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS Một máy tính chứa chương trình server được coi là một máy chủ hay máy phục vụ (server) và máy chứa chương trình client được coi là máy
tớ (client) Mô hình mạng trên đó có các máy chủ và máy tớ giao tiếp với nhau theo
1 hoặc nhiều dịch vụ được gọi là mô hình client/server Thực tế thì mô hình client/server là sự mở rộng tự nhiên và tiện lợi cho việc truyền thông liên tiến trình trên các máy tính cá nhân Mô hình này cho phép xây dựng các chương trình client/server một cách dễ dàng và sử dụng chúng để liên tác với nhau để đạt hiệu quả hơn
Mô hình client/server như sau:
Request Lấy dữ liệu
Response Trả dữ liệu
2.
Client Server Database Mô hình Client – Server. Client Server Databas Browser: FireFox, IE, Opera Netscape
Scricst: HTML, CSS,
Javascript
Scricst: PHP ASP ASPX(.net) JSP
mySQL SQL Server Oracle PostGren Ms.access
Hiển
thị
X
ử lý
lý
CSDL
Trang 14Ngôn ngữ:
Joomla(PHP) Nuke(PHP) Dot nuke(ASPX) PHPBB
Cơ chế hoạt động client – server
Client / Server là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác
ví dụ như database server vì bản thân nó không thể xử lý yêu cầu này được Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp Ví dụ như một máy chủ trả lời thời gian hiện tại trong ngày, khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu Có rất nhiều các dịch vụ server trên mạng nhưng nó đều hoạt động theo nguyên lý là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu
Thông thường chương trình server và client được thi hành trên hai máy khác nhau Cho dù lúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên thực tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phía client, khi mà client gửi tín hiệu yêu cầu tới server Các chương trình server thường đều thi hành ở mức ứng dụng (tầng ứng dụng của mạng) Sự thuận lợi của phương pháp này là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thức truyền thông chuẩn cụ thể ở đây là giao thức TCP/IP Với các giao thức chuẩn này cũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản
Trang 15phẩm khác nhau của họ lên mạng mà không gặp phải khó khăn gì Với các chuẩn này thì các chương trình server cho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian (timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính cá nhân bình thường Có thể có nhiều chương trình server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính
Với mô hình trên chúng ta nhận thấy rằng mô hình client/server chỉ mang đặc điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu cho một máy server là cao hơn nhiều so với máy client Lý do là bởi vì máy server phải quản lý rất nhiều các yêu cầu từ các clients khác nhau trên mạng
Ưu và nhược điểm chính có thể nói rằng với mô hình client/server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ) với nhiều dịch
vụ đa dạng mà mô hình cũ không thể làm được Mô hình client / server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS) Một trong những vấn
đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ
Trình duyệt web là một phần mềm ứng dụng cho phép người sử dụng xem và
tương tác với các văn bản, hình ảnh, đoạn phim, nhạc, trò chơi và các thông tin khác
ở trên một trang web của một địa chỉ web trên mạng toàn cầu hoặc mạng nội bộ Văn bản và hình ảnh trên một trang web có thể chứa siêu liên kết tới các trang web khác của cùng một địa chỉ Web hoặc địa chỉ web khác Trình duyệt web cho phép người sử dụng truy cập các thông tin trên các trang web một cách nhanh chóng và
dễ dàng thông qua các liên kết đó Trình duyệt web đọc định dạng HTML để hiển thị, do vậy một trang web có thể hiển thị khác nhau trên các trình duyệt khác nhau
Trang 16Một số trình duyệt web hiện nay cho máy tính cá nhân bao gồm Internet Explorer, Mozilla Firefox, Safari, Opera Avant Browser, Netscape… Trình duyệt web thường giao tiếp với máy chủ web bằng việc sử dụng HTTP(giao thức truyền siêu văn bản) để lấy về các trang web HTTP cho phép các trình duyệt web gửi thông tin đến các máy chủ web, cũng như lấy các trang web về HTTP được sử dụng rộng rãi nhất là HTTP 1.1
Có các mã nguồn mở: Joomla(PHP), Nuke(PHP), Dot Nuke (ASPX), PHPBB…
và Database như: MySQL, SQL server, Oracle, Post gree, MS.Access… Nền tảng
để tôi xây dựng web là PHP và MYSQL
1.5. Cài đặt Server
1.5.1 P HP và MYSQL
PHP viết tắt cho PHP Hypertext Preprocessor có nghĩa là bộ tiền xử lý siêu văn
bản PHP, PHP cũng là một phần trong diễn giải ý nghĩa của nó PHP là một ngôn ngữ lập trình cho phép lập web, tạo nội dung sống động có khả năng tương tác với các kho dữ liệu PHP thường được dùng để phát triển các chương trình ứng dụng phần mềm trên web
Trước hết PHP là một ngôn ngữ được dùng để lập trình web khá phổ biến hiện nay, ngoài ra còn có ASP.Net, JSP, Ruby,… Nếu như trong thế giới hệ điều hành thì Microsoft có Windows, cộng đồng mã nguồn mở (OSC) có Linux thì trong thế giới của lập trình web Microsoft có ASP.Net, còn OSC có PHP Tất nhiên PHP không phải là một ngôn ngữ mã nguồn mở duy nhất để lập trình web, nhưng nó là ngôn ngữ phổ biến nhất nhờ đơn giản trong cách hoạt động đơn giản, tốc độ nhanh, bảo mật tốt và… miễn phí cho tất cả mọi người sử dụng và phát triển nó PHP có một cộng đồng sử dụng rất lớn và bảo trợ của nhiều công ty lớn như Zend, IBM,… và cả Microsoft! PHP phù hợp với phát triền các ứng dụng quy mô từ nhỏ đến trung bình
và vừa, còn quy mô lớn thì có vài công ty đã sử dụng PHP làm công nghệ của mình như Yahoo!, Google,… PHP với hệ quản trị cơ sở dữ liệu quan hệ MySQL như một
Trang 17cặp bài trùng, đã chứng tỏ mã nguồn mở vẫn mang lại sức mạnh như các phần mềm bản quyền khác mà bạn phải mua với giá cao hơn rất nhiều.
Với sự bảo trợ của Zend hơn 10 năm qua, PHP đã có những bước phát triển rất lớn từ PHP4 đến PHP5 và sắp tới là PHP6 Cũng với bổ sung khả năng hướng đối tượng của PHP, các thư viện cũng đã được cải tiến rất nhiều để mang lại hiệu suất cao hơn
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
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 được sử dụng cho việc
bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
1.5.2 Cài đặt Server
Để chạy web cần phải cài đặt Apache (Web Server) + MySQL (Database Server) + PHP và cấu hình sao cho chúng làm việc tốt với nhau Tuy nhiên có một giải pháp khá đơn giản và tiện lợi, đó là sử dụng gói cài đặt tích hợp gồm Apache + MySQL + PHP + PHPMyAdmin (một công cụ quản trị CSDL) Chúng ta có 2 sản phẩm rất nổi tiếng là XAMPP và WAMP Ở đây em lựa chọn sản phẩm trọn gói là WAMP
Trang 18Vậy WAMP là gì? Một gói phần mềm Web Server tất cả trong một (All-in-One)
gồm: Apache, MySQL, PHP chạy trên nền Windows.
Giao diện quản trị Webserver WAMP
Các đặc điểm nổi trội của WAMP
- Có thể cài đặt WAMP dễ dàng
- WAMP được cập nhật đều đặn
- Cho phép lựa chọn các phiên bản PHP, MySQL khác nhau
- Rất tốt cho việc tạo máy chủ Web để chạy thử, thiết kế Website bằng PHP
- Hỗ trợ tốt cho Joomla 1.5, Joomla 1.0
- Hỗ trợ phiên bản PHP5 mới nhất
- Tương thích Windows XP / Windows Vista / Windows 7
- Hoàn toàn miễn phí
Download bản cài đặt WAMP
-Download WAMP tại địa chỉ http://www.wampserver.com/en/download.phpCác bước cài đặt WAMP
Trang 19Nếu trước đó bạn đã cài đặt WAMP 5.1.x thì tốt nhất là gỡ nó đi sau đó mới cài WAMP Server 2.0
Nhấn [Next] và thực hiện các bước tiếp theo
Nếu trên máy của bạn có cài trình duyệt Firefox và
bạn muốn chọn Firefox làm trình duyệt mặc định khi mở http://localhost thì nhấn [Yes]
Trang 20Điền các thông số để có thể gửi/nhận mail thông qua một SMTP server.
Nếu không biết hãy để mặc định và nhấn [Next]
Nhấn nút [Finish] để hoàn tất quá trình cài đặt
Hoàn tất việc cài đặt và chạy thử
Sau khi cài đặt thành công, bạn sẽ thấy biểu tượng của WAMP ở góc màn hình như dưới
đây:
Trang 21Để chạy thử, nhấn vào mục "localhost"
Hoặc mở trình duyệt và gõ địa chỉ http://localhost (hoặc http://127.0.0.1)
Trang 22Để quản lý cơ sở dữ liệu (database) nhấn vào mục "phpMyAdmin"
Hoặc mở trình duyệt và gõ vào địa chỉ http://localhost/phpMyAdmin
Hoặc http://127.0.0.1/phpMyAdmin
MYSQL là hệ quản trị Cơ Sở Dữ Liệu Do vậy mọi ngôn ngữ lập trình đều có thể
sử dụng MYSQL tuy nhiên với PHP thì MySQL tỏ ra thích hợp hơn Joomla! là một
hệ quản trị nội dung mã nguồn mở (tiếng Anh: Open Source Content Management Systems) Để xây dựng Website thì có một nền tảng đã rất phát triển và được sử dụng rất rộng rãi trong giới Công nghệ thông tin ở Việt nam và trên toàn thế giới đó
là Joomla
Trang 23Phần II JOOMLA
2.1 Giới thiệu về joomla
Joomla là một hệ quản trị nội dung mã nguồn mở (tiếng Anh: Open Source Content Management Systems) 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 đà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 có 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
2.2 Lịch sử phát triến của joomla
Joomla là "sản phẩm anh em" với Mambo giữa tập đoàn Miro của Úc (hãng đang nắm giữ Mambo), với phần đông những người phát triển nòng cốt
Ban đầu công ty Miro của Úc (tiếng Anh: Miro Software Solutions) đã 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
Mọi thứ vẫn tiến triển bình thường cho đến trước khi xảy ra tranh chấp về mặt pháp lý vào năm 2003 Vụ việc dẫn tới ý tưởng Mambo cần phải được bảo vệ bởi một tổ chức phi lợi nhuận Nhưng những nhà phát triển không hài lòng về cơ cấu của Quỹ tài trợ Mambo Andrew Eddie, người lãnh đạo nhóm phát triển, trong một
Trang 24lá thư gửi cộng đồng, đã chia sẻ những lo lắng của mình về Quỹ tài trợ Mambo và mối quan hệ của nó tới cộng đồng Ông viết: " Chúng tôi cho rằng tương lai của Mambo nên được quản lý, điều chỉnh bởi những yêu cầu của người sử dụng và khả năng của những nhà phát triển Trong khi đó, Quỹ tài trợ Mambo lại được thiết kế nhằm trao quyền điều khiển cho Miro, một thiết kế ngăn cản sự hợp tác giữa Quỹ tài trợ và cộng đồng " Bởi vậy vào ngày 17 tháng 8 năm 2005, 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ọ Cùng lúc đó, nhóm phát triển cũng lập một website lấy tên OpenSourceMatters để phân phối thông tin tới những người sử dụng, những người phát triển, những người thiết kế và cộng đồng Joomla nói chung
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 Trong một thông báo của Eddie 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 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
Các phiên bản
Hiện joomla có 2 phiên bản chính:
• Joomla 1.0.x : Phiên bản thế hệ 1(ổn định)
o Phiên bản phát hành đầu tiên: Joomla 1.0.0 (15/9/2005)
o Phiên bản mới nhất: Joomla 1.0.15 (22/2/2008)
Trang 25Dò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.5.x 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ũ) được coi như Mambo 4.6 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) Cả Joomla 1.5 và Mambo 4.6 đều hỗ trợ
đa ngôn ngữ Joomla thì sử dụng file định dạng ".ini" để lưu các thông tin chuyển đổi ngôn ngữ, còn Mambo thì sử dụng file định dạng ".gettext" 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
Joomla 1.5 cũng bao gồm các đặc tính mới như các mô hình chứng thực (LDAP, Gmail ), hỗ trợ mô hình khách-chủ xml-rpc Nó cũng 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 PHP 5) và tăng cường hỗ trợ cho MySQL 5, cũng như hỗ trợ các loại cơ sở dữ liệu khác Đ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
Kiến trúc phân tầng của Joomla 1.5
Joomla 1.5 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,
Trang 26JAdministrator 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.
Dự án Joomla hiện được chèo lái bởi 19 thành viên (ban đầu là 20) của Nhóm Nòng cốt (Core Team) đến từ 11 quốc gia trên thế giới bao gồm: Ric Allinson, Brad Baker, Shayne Bartlett, Levis Bisson, Michelle Bisson, Tim Broeker, David Gal, Rey Gigataras, Wilco Jansen, Johan Janssens, Alex Kempkens, Mateusz Krzeszowiec, Louis Landry, Andy Miller, Sam Moffatt, Peter Russell, Emir Sakic, Marko Schmuck, Antonie de Wilde
Giải thưởng đã đạt được:
* Tháng 10 năm 2007, Hệ quản trị nội dung mã nguồn mở PHP tốt nhất do Packt Publishing trao tặng
* Tháng 11 năm 2006, Hệ quản trị nội dung mã nguồn mở tốt nhất do Packt Publishing công bố
* Tháng 10 năm 2006, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm LinuxWorld 2006 ở Anh
* Tháng 10 năm 2005, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm LinuxWorld 2005 ở Anh
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 (đến nay đã có khoảng trên 40.000 người) 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
Sau khi cài đặt Joomla! và chạy thử, người sử dụng có thể thêm, chỉnh sửa, cập nhật nội dung, hình ảnh và quản lý dữ liệu của tổ chức, công ty
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
Trang 272.3 Vòng đời phát triển của Joomla
Phiên bản joomla 1.5 được phát triển qua 3 giai đoạn:
Giai đoạn Anpha: Xây dựng lại mã và phát triển
Giai đoạn beta: Kiểm tra các tính năng, viết tài liệu hỗ trợ, điều chỉnh
Giai đoạn ổn định: Ổn định hoá và ổn định thông tin
2.4 Thành phần joomla
Component là một thành phần mở rộng lớn nhất và phức tạp nhất của Joomla CMS Các component có thể xem như là các ứng dụng con và nếu joomla là một hệ điều hành thì các component là các ứng dụng desktop Ví dụ component nội dung (com_content) là một ứng dụng mini xử lý tất cả các vấn đề về nội dung được trả lại như thế nào mỗi khi có yêu cầu duyệt nội dung được đưa ra Một component có hai thành 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 hoạt động của một website 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
Trang 28Bắt đầu từ phiên bản Joomla 1.5.x hoặc các phiên bản sau này, Joomla đã đưa vào một framework mới, mang lại những thuận tiện rất lớn cho những người phát triển Các đoạn code giờ đây rất dễ dàng để kiểm tra và khá rõ ràng Framework này đưa ra một mẫu thiết kế mới, thiết kế MVC (Model-View-Controller) trong Joomla.Model-View-Controller (gọi tắt là MVC) là một mẫu thiết kế phần mềm được dùng để tổ chức các đoạn mã theo cách mà việc xử lý dữ liệu và biểu diễn dữ liệu tách rời nhau Điều này tạo ra tiền đề cho hướng tiếp cận sau này khi mà việc xử lý
dữ liệu được nhóm vào trong một section, khi đó giao diện hay quá trình tương tác với người dùng bao quanh dữ liệu có thể được định dạng và tùy biến lại mà không phải lập trình lại việc xử lý dữ liệu nữa
Model: Là thành phần của component đóng gói dữ liệu cho ứng dụng Nó thường
cung cấp các thủ tục để quản lý, thao tác dữ liệu theo một cách nào đó, trong đó có thêm các thủ tục để lấy dữ liệu từ model Có thể là bổ sung (insert), loại bỏ (delete) hay cập nhật (update) thông tin về một trường nào đó trong cơ sở dữ liệu (CSDL) Theo cách này, nếu một ứng dụng chuyển đổi sang việc sử dụng một file bình thường để lưu trữ thông tin của nó thay vì sử dụng CSDL thì chỉ có thành phần Model là thay đổi còn các thành phần View và Controller là không đổi
View: Là một thành phần của component được sử dụng để trả lại dữ liệu từ
model theo cách phù hợp với tương tác Đối với ứng dụng web, view thông thường
là các trang HTML để trả lại dữ liệu View lấy dữ liệu từ Model (dữ liệu này được chuyển qua View tới Controller) Sau cùng là đưa dữ liệu vào trong template (dữ liệu này sẽ hiển thị với người dùng) View không làm thay đổi dữ liệu, nó chỉ hiển thị dữ liệu lấy từ Model mà thôi)
Controller: Controller chịu trách nhiệm phản hồ các hành động của người dùng
Trong các ứng dụng web, một hành động của người dùng thông thường là một yêu cầu tải trang Controller sẽ xác định yêu cầu gì được người dùng đưa ra và phản hồi thích hợp bằng việc yêu cầu Model tính toán dữ liệu phù hợp và chuyển từ Model
Trang 29vào View Controller không thể hiện dữ liệu từ Model, nó kích hoạt các phương thức trong Model để hiệu chỉnh dữ liệu và sau đó chuyển từ Model sang View để hiển thị dữ liệu
Trong Joomla, mô hình MVC được hỗ trợ thông qua 3 lớp JModel, JView và Jcontroller
Khởi tạo một compenent Một component đầy đủ có cấu trúc như sau:
Thư mục admin chứa các thành phần tạo nên giao diện quản trị cho component ở Joomla Back-End, thư mục site chứa các thành phần tạo nên giao diện site cho component ở Joomla Front-End và file XML chứa thông tin mô tả về cài đặt Ví dụ
ở đây là xây dựng một component hiển thị lời chào lấy từ CSDL theo mô hình MVC của Joomla
Đối với một component cơ bản (không có phần quản trị) chỉ cần 5 file được đặt trong các thư mục models, views trong thư mục chính sites:
Hello.php: đây là file đầu vào cho component
Controller.php: file này chứa controller cơ bản cho component
View/hello/view.html.php: file này nhận dữ liệu cần thiết và đặt nó vào template
Trang 30 View/hello/tmpl/default.php: file này là template cho đầu ra, hiển thị lên site
Hello.xml: đây là một file XML nói cho joomla biết cách cài đặt component như thế nào
Tuy nhiên đó chỉ là mô hình View - Controller đơn giản, không tuân theo mẫu MVC một cách chính xác, bởi View chỉ được hiển thị dữ liệu chứ không chứa nó Khi đó ta sẽ chuyển dữ liệu ra khỏi View và đưa nó vào Model Component lúc này
sẽ cần thêm các file:
Models/hello.php
Nếu có thêm phần quản trị, sẽ có thêm thư mục admin cũng chứa các thư mục như controllers, models, views có các file tương tự như phần site và một số file/thư mục đặc biệt như: file SQL (cài đặt và gỡ bỏ bảng trong CSDL), thư mục tables, v.v Trong bài này, chúng ta sẽ lấy ví dụ xây dựng 1 component là Hello hiển thị một lời chào lấy từ CSDL
Thành phần của joomla: componemt, module, plugin, template, language, tool
1.1 Componemt
Compoment: Là thành phần chính của trang Web, nó quyết định đến chức năng, hình thức, nội dung chính của mỗi trang Web Com có thể có thêm Mod để hỗ trợ cho việc hiển thị các chức năng và nội dung của Com Com có thể được cài đặt thêm vào Web Site
1.2 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ề)
Trang 31Module có tên bắt đầu bằng mod_ Chúng ta có các module thông dụng:
Lastest News (mod_latestnews): Module hiển thị các tin mới nhất
Popular News (mod_mostreads): Module hiển thị các bài được quan tâm nhiều nhất
Related Items (mod_related_items): Module hiển thị các bài viết liên quan
Random Image (mod_random_image): Module hiển thị các ảnh ngẫu nhiên
Search Module (mod_search): Module công cụ tìm kiếm
Login Module (mod_login): Module hiển thị form đăng nhập hệ thống
Stats Module (mod_stats): Module hiển thị các thông tin thống kê về hệ thống
Menu Module (mod_mainmenu): Module hiển thị các menu của website
Banners Module (mod_banners): Moudule hiển thị các banner quảng cáo
1.3 Mambot (Plug-in)
Plug-in : Là các chức năng được bổ sung thêm cho Com, các Mambot này sẽ can
thiệp, bổ sung vào nội dung của trang Web trước hoặc sau khi nó được hiển thị Mambot có thể được cài đặt thêm vào Web Site
1.4 Emplate (Temp)
Emplate: Là giao diện, khuôn dạng, kiểu mẫu, hình thức được thiết kế để trình
bày nội dung của trang Web và có các vị trí định sẵn để tích hợp các bộ phận, thành phần của trang Web Joomla! cho phép cài đặt và thay đổi Temp cho Web Site hay cho từng trang Web khác nhau một cách dễ dàng