Được sự cho phép của nhà trường và bộ môn tôi đã đi thực hiện đề tài với nội dung :”Nghiên cứu mô hình thực thể Model – View – Controller ứng dụng trên mã nguồn mở Joomla”.. 1.3 Lịch sử
Trang 1LỜI CẢM ƠN
Sau một thời gian thực tập tại Trung tâm CNTT & TT Hà Tĩnh dưới sự hướng
dẫn của Cán bộ Lê Viết Kiên Trung tâm, cùng với sự giúp đỡ của ban Giám đốc vàtất cả nhân viên trong trung tâm, chúng em đã thu được những kiến thức về chuyênmôn lẫn kinh nghiệm hết sức quý báu
Em xin chân thành cảm ơn Ban Chủ Nhiệm khoa Công nghệ thông tin trườngĐại học Hà Tĩnh đã tạo mọi điều kiện cho chúng em đi thực tập Chúng em xin cảm
ơn ban Giám đốc Trung tâm CNTT & TT Hà Tĩnh đã tiếp nhận, hướng dẫn tận
tình cho chúng em trong suốt quá trình hoàn thành khóa thực tập
Chúng em cũng chân thành cảm ơn toàn thể anh chị trong các phòng ban trongtrung tâm đã hướng dẫn, cung cấp tài liệu để em hoàn thành công việc hiện thực đềtài của chúng em
Trong quá trình thực tập, một sinh viên như chúng em chắc chắn sẽ không tránhkhỏi những sai sót, rất mong quý trung tâm thông cảm bỏ qua cho chúng em
Một lần nữa chúng em xin chân thành cảm ơn!
Hà Tĩnh, ngày 04 tháng 05 năm 2013
Nhóm sinh viên thực tập 1.Trần Văn Lực.
2 Nilavon-Phonmachac.
MỤC LỤC
Trang 2DANH SÁCH HÌNH ẢNH
Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, Internet ngày
càng giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống Vớimạng Internet, tin học thật sự tạo nên một cuộc cách mạng trao đổi thông tin trongmọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế
Trong thời đại ngày nay, thời đại mà “người người làm Web, nhà nhà làmWeb” thì việc có một Website để quảng bá công ty hay một Website tin tức khôngcòn là điều gì quá khó khăn nữa Bây giờ người ta thường thiết kế web sử dụng mãnguồn mở (Open Source)
Open Source: phần mềm có mã nguồn mở Free software: phần mềm miễnphí, đôi khi free software được dùng với ý nghĩa bao gồm cả open-source software
và free software
Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chươngtrình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình,chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại
Trang 3các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hànhnhững bản cải tiến vì mục đích công cộng.
Với mong muốn tìm hiểu và có thể đưa ra một trang web Tin Tức dựa trên
mã nguồn mở có thể giải quyết được yêu cầu của thực tế mang lại thông tin giải trítrong cộng đồng mạng Được sự cho phép của nhà trường và bộ môn tôi đã đi thực
hiện đề tài với nội dung :”Nghiên cứu mô hình thực thể Model – View – Controller ứng dụng trên mã nguồn mở Joomla”.
CHƯƠNG 1 LỊCH SỬ PHÁT TRIỂN VÀ KIẾN TRÚC JOOMLA
1 Lịch sử phát triển và kiến trúc Joomla
1.1 Joomla là gì ?
Hình 1 1: Biểu tượng Joomla
Đầu tiên dễ dàng tìm hiểu về Joomla đó là:
- Joomla là một Open Source
- Là một hệ quản trị nội dung mã nguồn mở
- Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL
- Joomla cho phép người dùng thêm, sửa , xóa đưa thông tin lên Internet mộtcách dễ dàng
Trang 41.2 Ứng dụng của Joomla
Joomla có thể làm được rất nhiều công việc trên Internet Sau đây là một sốứng dụng cơ bản mà Joomla ứng dụng vào mạnh nhất và người dùng chọn joomla
để đáp ứng nhu cầu cần thiết :
- Cổng thông tin điện tử truyền thông và doanh nghiệp
- Thương mại điện tử, báo điện tử trực tuyến
- Website cho các doanh nghiệp, cơ quan, chính phủ, trường học,
1.3 Lịch sử hình thành
Cũng như các mã nguồn khác và các sản phẩm công nghệ khác nhưfacebook, nukeviet, vbb, mybb và nhiều sản phẩm công nghệ trực tuyến khác thìJoomla cũng là một trong những sản phẩm công nghệ được nhiều người tín nhiệm
và được nhiều chính phủ quốc gia khuyên dùng
Joomla là “ sản phẩm anh em” với Mambo giữa tập đoàn Miro của Úc ( hiệnđang nắm giữ Mambo ) với phần đông những người phát triển nòng cốt
Nhờ sự giúp đỡ của trung tâm Luật sư tự do phần mềm 20 thành viên nòngcốt cũ của Mambo đã thành lập một tổ chức phi lợi nhuận lấy tên là Open SourceMatter
Ngày 16 tháng 9 năm 2005 cho ra đời phiên bản Joomla 1.0
1.4 Các phiên bản của Joomla
Trải qua chặng đường về thời gian, từng ngày hoàn thiện mình Joomla mỗingày một mới với từng phiên bản, sự bảo mật nâng cấp phiên bản đáp ứng đầy đủmọi tính năng cần thiết cho một website Joomla trải qua các phiên bản sau:
- Dòng phiên bản 1.0.x : có một số lượng lớn các thành phần mở rộng, thành
phần nhúng, giao diện Phiên bản 1.0.0 được phát hành đầu tiên vào ngày 16
Trang 5tháng 9 năm 2005 Phiên bản phát hành mới nhất là Joomla 1.0.5 vào ngày
22 tháng 2 năm 2008
- Dòng phiên bản 1.5.x : Phần quản trị Website sử dụng công nghệ Web 2.0,
một số tính năng được cải tiến so với phiên bản 1.0.x Phiên bản mới nhấtđược phát hành vào ngày 03 tháng 06 năm 2009
- Dòng phiên bản 1.6.x : được phát hành vào ngày 10 tháng 01 năm 2011 Kết
thúc vào ngày 26 tháng 07 năm 2011
- Dòng phiên bản 1.7.x : được phát hành vào ngày 19 tháng 07 năm 2011 Kết
thúc vào ngày 24 tháng 02 năm 2012 nhường chổ cho phiên bản 2.5
- Dòng phiên bản 2.5.x : được phát hành vào ngày 24 tháng 01 năm 2012 Kết
thúc vào ngày 19 tháng 06 năm 2012 Điểm mạnh của phiên bản này là: Tựđộng cập nhật qua nút bấm trong phần quản trị, hỗ trợ SEO mạnh hơn, phânquyên sâu hơn với từng thành viên
- Dòng phiên bản 3.0.x : đang ở giai đoạn Joomla 3.0 Alpha được phát hành
vào ngày 12 tháng 7 năm 2012
2 Joomla Content Management System
2.1 Content Management System là gì?
Content Management System ( gọi tắt là CMS) dịch sang tiếng việt là hệquản trị nội dung
2.2 Joomla sử dụng Content Management System
Khi bạn biết về HTML và Content Management System, nội dung trang củabạn sẽ được bạn trang trí đẹp hơn, bố cục gọn gàng hơn chuyên nghiệp cộng vớimột số hiệu ứng bắt mắt hơn
Một trang web được gọi là động khi nội dung, hình ảnh hiển thị trên trangweb đều có thể thay đổi tùy chọn, cập nhật được mà không cần đến kỹ thuật viên
Do vậy cần phải có môt hệ thống đảm trách công việc này, hệ thống đó đượcgọi là hệ quản trị nội dung, chính là Content Management System gọi tắt là CMS
Trang 6Với sự phát triển mạnh mẽ và không ngừng của Internet Joomla ra đời cũng
sử dụng CMS để đáp ứng được nhu cầu của cộng đồng mạng
CHƯƠNG 2 NGHIÊN CỨU MÔ HÌNH MODEL - VIEW - CONTROLLER
1 Lịch sử hình thành mô hình Model – View - Controller
1.1 Lịch sử hình thành mô hình Model – View - Controller
Mô hình Model – View - Controller đã trở nên thông dụng trong các nềntưởng tảng công nghệ khác nhau từ LAMP ( PHP, MySQL ) tới ASP.NET (asp.net,mysql) Thông tin bài viết này sẽ giúp bạn rõ hơn về mô hình lập trình mới vàngày càng được ưa chuộng này
Bắt đầu vào những năm 70 của thế kỷ 20 tại phòng thí nghiệm Xerox PARC
ở Palo Alto Sự ra đời của giao diện đồ họa và lập trình hướng đối tượng cho phéplập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa
có thuộc tính và phương thức riêng của nó Không dừng lại ở đó, những nhà nghiêncứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc Model – View– Controller ( viết tắt là MVC)
Trong kiến trúc Model – View – Controller một đối tượng đồ họa (GUICompent) bao gồm 3 thành phần cơ bản: Model, View và Controller Model cótrách nhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa Viewchính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện của đốitượng đồ họa Và Controller điều khiển việc tương tác giữa đối tượng đồ họa vớingười sử dụng cũng như những đối tượng khác
Trang 71.2 Kiến trúc Model - View - Controller
Kiến trúc Model – View – Controller đã tách biệt sự phụ thuộc giữa cácthành phần trong một đối tượng đồ họa, làm tăng tính linh động và tính tái sử dụngcủa đối tượng đồ họa đó Một đối tượng đồ họa bấy giờ có thể dễ dàng thay đổigiao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ(Model) cũng như xử lý (Controller) không hề thay đổi Tương tự, ta có thể thayđổi cách thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mànhững thành phần còn lại vẫn giữ nguyên
Kiến trúc Model – View - Controller đã được ứng dụng để xây dựng rấtnhiều framework và thư viện đồ họa khác nhau
1.3 Lưu ý khi cài đặt kiến trúc Model – View - Controller
- Thành phần Model không cần thiết phải biết đến các View và Controller cụthể gắn kết với nó Khi có thay đổi, Model chỉ việc phát thông điệp chonhững ai đăng ký với nó Điều này có thể được thực hiện thông qua ObserverPattern
- Nên áp dụng Facade Pattern để kết hợp Model, View, và Controller lại vớinhau thành “3 trong 1” cho dễ quản lý và thao tác đối với người sử dụng
- Kiến trúc Model - View - Controller không phải là kiến trúc 3 tầng (3-TiersArchitecture) Mặc dù giữa 2 kiến trúc này có nhiều điểm tương đồng nhưngchúng nói về 2 khía cạnh khác nhau
Trang 82 Mô hình Model - View - Controller đơn giản
Hình 1 2: Mô hình Model - View - Controller đơn giản
- File model.php dùng để xử lý thông tin trong database
Trang 10MÃ NGUỒN MỞ JOOMLA
1 Nghiên cứu mô hình Model - View - Controller trong mã nguồn mở 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ột framework mới, mang lại những thuận tiên rất lớn cho những ngườiphá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ế Model - View - Controllertrong 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ìnhtươ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ả định dạng và tùy biến lại việc lập trình xử lý đó nữa
1.1 Hiểu sâu về Joomla
- Thành phần cơ bản : Font – end (hiển thị nội dung trang web) Back – end (làphần quản lý website dành cho người quản trị, chủ nhân của website)
Trang 11Template ( 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 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.
- Các thành phần mở rộng (Extension) : Module (là bộ phận mở rộng thêmchức năng cho website, các Module này có chức năng khác nhau, được hiểnthị trên trang web tại các vị trí quy định và có thể that đổi được) Component(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) Mambot (gọi là Plugin : là các chứcnăng được bổ sung thêm cho các Component, các Plugin này sẽ can thiệp bổsung vào nội dung của trang web trước hoặc sau khi nó hiển thị
- Quản lý nội dung website: Selection (là cấp quản lý nội dung lớn nhất, chứacác Category) Category (là cấp quản lý nội dung nhỏ hơn Selection, chứacác Content Item) Content Item (là phần nội dung, chứa các văn bản và hìnhảnh được hiển thị trên trang web)
2 Phân tích lớp Joomla trong mô hình Model - View - Controller
2.1 Giới thiệu về Component
Hình 1 3: Hình ảnh về Component
Trang 12Component chịu trách nhiệm phản hồi các hành động của người dùng.Đây là phần cốt lõi của Joomla gồm:
- Com_banners: Quản lý banner quảng cáo
- Com_contact: Quản lý các mối liên hệ
- Com_content: Quản lý và hiển thị bài viết
- Com_mailto: Quản lý chức năng gửi nhận email
- Com_media: Quản lý các tập tin media
- Com_newsfeed: Quản lý việc lấy tin từ website khác
- Com_poll: Cung cấp chức năng bình chọn
- Com_search: Cung cấp chức năng tìm kiếm
- Com_user: Quản lý thành viên
- Com_weblink: Quản lý và hiển hị danh mục các website liên kết
2.2 Cài đặt Joomla Component
Hình 1 4: Cài đặt Component
2.3 Các component tích hợp trong Joomla
a Contact.
Trang 13Contact Manager cho phép bạn quản lý một danh sách các contact (liên hệ)trong site 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.
Chi tiết tạo 1 contact như sau:
- Tạo category
- Từ component -> contact -> categories
Hình 1 5: Tạo contact
- Click chọn new để tạo mới 1 Category
Hình 1 6: Tạo mới 1 Category
Điền đầy đủ thông tin theo sau:
- Title : tên của category
- Access level: mức độ truy cập hoặc xem category này
Trang 14Hình 1 7: Giao diện Category
Tạo contact mới:
- Từ component -> chọn contacts -> contacts
Hình 1 8: Tạo contact con mới
- Điền các thông tin về contact
Trang 15Hình 1 9: Giao diện thông tin 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ùngxem
Hình 1 10: Chi tiêt các tham số thông tin
- 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
Trang 16Hình 1 11: Menu con
- Đưa contact lên trang web
- Tạo 1 menuItem mà bạn muốn hiển thị contacts với các lựa chọn
Hình 1 12: Menu Item
- Chọn Contact nếu bạn muốn hiển thị 1 contact
- Chọn Category nếu muốn hiển thị 1 Category
- Và đây là ví dụ khi chọn Category
Hình 1 13: Giao diện về chọn Category
Trang 17Hình 1 14: Giao diện tạo News Feed
- Name: tên của news feed
- 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ị
c Poll
Quản lý danh sách Poll thăm dò mà bạn hiển thị trên site Nhằm thu thậpthông tin người dùng
Các bước tạo Poll như sau:
- Từ component chọn poll Lick chon new để tạo mới 1 poll
Trang 18Hình 1 15: Giao diện Poll
- Options: 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ên cho ngườidùng đánh giá
d Web link
- New web link
Hình 1 16: Tạo mới web link
Trang 19Hình 1 17: Giao diện web link
- 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ủamình
e Banner
Component cho phép hiển thị những banner kế tiếp nhau trên website
- New banner
Trang 20Hình 1 18: Giao diện tạo banner
- 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ớihạ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ảiupload file ảnh vào thư muc banner trong media manager
3 Module Joomla
3.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ữngModule 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ácAdministrator Module bởi vì chúng hiển thị những nội dung trong Front-end của