Báo cáo đồ án lý thuyết Joomla nhóm 20
Trang 1BÁO CÁO ĐỒ ÁN LÝ THUYẾT JOOMLA NHÓM 20
I)Nội dung tìm hiểu
- Lịch sử phát triển và kiến trúc của joomla(Lê Văn Lập-100%)
- Mô hình MVC trong joomla(Đoàn Huy Linh-100%)
-Các component và module đã xây dựng trên nền joomla(Lê Trọng Mạnh-100%)
-Ứng dụng thương mại điện tử dựa trên mã nguồn mở Joomla : Demo cài đặt,hỗ trợ đa ngôn ngữ…(Lê Nguyễn Sỹ Công -100%)
-Ứng dụng thương mại điện tử dựa trên mã nguồn mở Joomla : Quản lý tiền tệ, thanh
toán, vận chuyển(Nguyễn Duy Linh-100%)
1.2)
Vì sao chúng ta chọn Joomla ?
Chúng ta chọn Joomla vì những ưu điểm của nó trong việc xây dưng và phát triển website :Tạo một website nhanh chóng , đẹp mắt, nhiền tính năng tích hợp và dễ quản lí
1.3)
Ứng dụng Joomla
Joomla được ứng dụng vào :
Các cổng thông tin điện tử hoặc các website doanh nghiệp
Thương mại điện tử trực tuyến
Báo điện tử, tạp chí điện tử
Trang 2 Website của các doanh nghiệp vừa và nhỏ
Website của các cơ quan, tổ chức phi chính phủ
Ban đầu công ty Miro của Úc đã 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 lá thư gửi cộng đồng[4], đã 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ằngtươ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 Người đứng đầu dự án chính là Andrew Eddie
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.
Trang 3Trong 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
Phiên bản phát hành mới nhất: Joomla! 1.5.11 (ngày 03 tháng
06 năm 2009)
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.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 giaodiện người sử dụng đơn giản
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
Trang 4 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
2)Mô hình MVC trong 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
Bắ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ộtframework 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
2.
1 – 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 tincủ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ầnView và Controller là không đổi
Trang 52 – 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)
2.
3 – Controller: Controller chịu trách nhiệm phản hồi 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ảitrang 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 và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
Cấu trúc tổ chức thư mục của một tcomponent
1 feedback.php – đây là tập tin chính của component, nó nhận kiếm soát và xác định
sự kiểm soát đến các controller khác
2 controller.php – đây là tập tin quản lý chính, phản hồi lại yêu cầu của user
Trang 63 controllers (folder) – thư mục chứa các điều khiển cần thiết của component.
Category.php : quản lý phân loại feedback
Feedback.php : quản lý feedback
4 models (folder) – thư mục chứa tất cả các model cần thiết cho component
5 views (folder) – thư mục chứa tất cả các view, các thư mục view Bên trong các thư
mục view này chứa file view và có thể có các thư mục template chứa các layout.
6 tables (folder) – chứa các bảng định nghĩa (table definition)
7 Các file index.php dùng để ngăn cản những người dùng tò mò trong việc liệt kê danh
Trang 7http://docs.joomla.org/Tutorial:Developing_a_Model-View-Controller_Component_-3)Các component đã xây dựng trên nền joomla
- Các component tích hợp sẵn trong Joomla:
• Contacts
Trang 8Từ component -> contact -> categories.
Lick chọn new để tạo mới 1 Category.
Trang 9o Điền đầy đủ thông tin.
o Title : tên của category.
o Access level: mức độ truy cập hoặc xem category này.
o …
New contact
Từ component -> chọn contacts -> contacts
Trang 10Điền các thông tin chi tiết về contact.
Các tham số cho biết các chi tiết thông tin nào được thể hiện cho người dùng xem
Sau khi tạo các contact Muốn edit, delete, publish và unpublish
1 contact Từ menu con, chúng ta lựa chọn các chức năng muốn dùng.
Đưa contact lên trang web
Trang 11o Tạo 1 menuItem mà bạn muốn hiển thị contacts với các lựa chọn.
o Chọn Contact nếu bạn muốn hiển thị 1 contact.
o Chọn Category nếu muốn hiển thị 1 Category.
o Và đây là ví dụ khi chọn Category.
2 Newsfeeds.
Contact Manager cho phép bạn quản lý một danh sách các contact (liên hệ) trong site Một khi bạn thiết lập các contact, các visitor sẽ có thể tìm các thông tin về các user mà bạn đã thiết lập Như tên, địa chỉ, số điện thoại, công ty…
Các contact được nhóm trong các Category Giúp quản lý và hiển thị một cách dễ dàng
New category Tương tự như tạo category trong contact
New Newsfeed
Trang 12 Name: tên của newsfeed.
Category: newsfeed thuộc chủ đề nào
Link: đường đẫn tới feed
Number of articles: số bản tin tối đa khi hiển thị
Trang 13Options: tạo các lựa chọn cho người dùng đánh giá.
Lag: thời gian ngắn nhất giữa 2 lần đánh giá
Sau khi tạo các poll Bạn dùng các module đưa các poll này lêncho người dùng đánh giá Muốn xem thống kê kết quả đánh giánhư thế nào, ta làm như sau
Bạn tạo 1 menuItem trong 1 menu nào đó Với lựa chọn
Trang 14Sau khi bạn tạo poll layout Khi lick vào menuItem này ta được.
4 Web links.
Tạo category tương tự như đã trình bày
New web links
Trang 15 Name :Nhập tên web link là tên sẽ xuất hiện trên site.
Category : Chọn category mong mốn
URL: Nhập địa chỉ web link
Description: Thêm đoạn nhỏ mô tả
Order: Sắp xếp thứ tự các web links
Target : Điều hướng trình duyệt khi mở liên kết
Sau khi tạo các web link, bạn muốn đưa các web link này lên trang web của mình
Tạo 1 menuItem với lựa chọn
Tương ứng với các lựa chọn, ta được
Trang 16web link category List Layout Thể hiện list tất cả các Category public.
List Layout Thể hiện tất cả các link nằm trong Category mình chọn.
Trang 17link Submission Layout: user có quyền submission 1 web link
5 Banner
Component này cho phép bạn hiển thị những banner (hộp quảncáo) kế tiếp nhau trên site Những banner có thể hiển thị trên site đơn giản bằng cách publish banner cùng một lần khi nó đã được tạo chỗ đặt chúng phụ thuộc vào tempalate được dùng trên site
Tạo category Tương tự như trên
Tạo các client: tương tự như tạo category
New banner
Trang 18 Name: nhập tên cho banner.
Show banner: chọn hiển thị hoặc không hiển thị banner
Impressions Purchased: Số lần hiển thị Hoặc chọn Unlimited: không giới hạn số lần hiển thị
Click url: Đường dẫn khi lick vào banner
Reset click : thiết lập lại số lần lick vào banner về 0
Banner image selector : Chọn hình ảnh làm banner Trước tiên bạn phải upload file ảnh vào thư muc banner trong mediamanager
Muốn hiển thị các banner này lên trang web Xem phần module banner
I Module.
Trang 193.2.1) Giới thiệu các module.
Modules thường được dùng để hiển thị những thông tin khác nhau và 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ữngnộ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 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 thiết lập 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 Giới hạn chỉ trình bày các module liên quan đến site
Các module tích hợp trong joomla Archived Content : Kho lưu Popular : ưuchuộng Newsflash: tin khẩn Syndicate:Đăng tin Sections: phân loại Statistics: Thống kê Wrapper : trình bao boc
Màn hình quản lý các module được tạo
Trang 202.2) Cách tạo 1 số module
Menu.
Từ Module manager chọn new -> Menu
Chi tiết các thông tin menu
Trang 21 Menu Style: ba kiểu dáng menu được cung cấp với Joomla Vertical – đứng, Horizontal – ngay và Flat List – danh sách phẳng.
Trang 22 Menu name: lựa chon menu mà bạn muốn hiển thị.
Menu selection: với các lựa chọn muốn hiển thị menu này khi lick vào cácmenu được đánh dấu
Position: vị trí trên template mà bạn muốn đưa menu này lên
Ví dụ về các kiểu menu
Ở trên chúng ta đã tạo các banner Nhưng chưa hiển thị lên trang web Bây giờ chúng ta tạo module banner để đưa các banner lên các vị trí trên trang web
Tương tự tạo menu Chọn new và lick chọn banner
Điên đầy đủ thông tin cho banner này
Position: chọn vị trí cho banner này hiển thị
Trang 23 Access level: Mức độ hiển thị Public – ai củng có thể xem Registered – đăng nhập mới xem được.
Sau khi tạo xong Banner đã được đưa lên trang web
Trang 242 Latest News
Hiển thị các item mới nhất Nằm trong section và category
Tương tự như trên chúng ta chọn Lastest News
Title : tiêu đề cho latest news
Show title: hiện hay ẩn Title
Position : lựa chọn vị trí muốn thể hiện Latest news
Order: thứ tự thể hiện trong Position
Access level : lựa chọn ai có thể xem
Trang 25 Lựa chọn thể hiện ở menu.
All: xuất hiện ở tất cả các menu khi lick
None : không xuất hiện ở bất cứ menu nào
Select menu Item from the : xuất hiện ở các menu item mà bạn chọn
Cout : số item hiển thị
Category ID: Chọn để hiển thị các item từ một category cụ thể hay tập hợp các Cetegory (để chỉ định nhiều hơn một category, chia tách bằng dâu phảy) Category ID có thể được thiết lập trong danh sách truy cập thông qua Content -Category manager
Section ID: Chọn hiển thị các item từ một Section cụ thể hay tập hợp cácsection (để chỉ định nhiều hơn một section, chia tách bằng dâu phẩy) Các Section ID có thể được thiết lập trong danh sách truy cập thông qua Content - Section Manager
Đối với lựa chọn Author
o Anyone : các item được tạo bởi tất cả user