Module Module là một trong các thành phần mở rộng của Joomla, nó là một ứng dụng nhỏ được sử dụng chủ yếu để lấy dữ liệu và hiển thị thông tin.. Kết quả cuối cùng là chúng ta có những m
Trang 1LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin phát triển như hiện nay thì các website tin tức trở nên vô cùng quan trọng, không chỉ những website điện tử lớn mà các tổ chức, công ty lớn nhỏ và cá nhân cũng có nhu cầu sử dụng website tin tức để quảng
bá các thông tin lên mạng internet Mọi người ngày càng sử dụng internet nhiều hơn
để phục vụ cho nhu cầu tìm kiếm, nhờ có các công cụ tìm kiếm phát triển như hiện nay mà việc tìm kiếm thông tin trở nên rất dễ dàng
Nhu cầu cần có website tin tức là rất lớn, bên cạnh đó một trang web tin tức cũng phải đảm bảo an toàn thông tin, dễ sử dụng, an toàn bảo mật tốt, quảng bá thông tin một cách hiệu quả trước các công cụ tìm kiếm và chi phí là rẻ nhất Để đáp ứng những nhu cầu trên thì các CMS (Content Management System) mã nguồn
mở là một giải pháp tốt được sử dụng trong thiết kế web
Các CMS mã nguồn mở được sử dụng để phát triển các trang web miễn phí hoặc có phí rất thấp, người dùng có thể nhanh chóng xuất bản những thông tin của
họ lên internet với những tuỳ biến cao Các trang web miễn phí sử dụng CMS thường được cập nhật thường xuyên
Trang 2LỜI CẢM ƠN
Tôi xin chân thành cảm ơn quý thầy cô trong khoa Công nghệ thông tin cũng như quý thầy cô giảng dạy trong trường Đại học Nha Trang đã 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 ThS Nguyễn Đình Hoàng Sơn, Thầy
đã trực tiếp hướng dẫn và giúp đỡ tận tình tôi trong suốt thời gian làm đồ án tốt nghiệp
Vì trình độ, kinh nghiệm còn kém, kiến thức còn hạn chế và thời gian có hạn nên việc tìm hiểu chắc chắn còn nhiều thiếu xót, kính mong nhận được sự chỉ bảo, góp ý của quý thầy cô và các bạn đối với đề tài này
Nha Trang, ngày 25 tháng 6 năm 2012
Sinh viên thực hiện Trần Ngọc Cương
Trang 3MỤC LỤC
LỜI MỞ ĐẦU i
LỜI CẢM ƠN ii
MỤC LỤC iii
PHẦN 1: CƠ SỞ LÝ THUYẾT 1
1.1 Tổng quan về hệ quản trị nội dung (CMS) 1
1.2 Giới thiều về Joomla 1
1.2.1 Khái niệm Joomla 1
1.2.2 Ứng dụng của Joomla 1
1.2.3 Kiến trúc của Joomla 2
1.3 Một số khái niệm trong Joomla 3
1.3.1 Front-end 3
1.3.2 Back-end 3
1.3.3 Template 3
1.3.4 Component 3
1.3.5 Module 3
1.3.6 Plugin 3
PHẦN 2: XÂY DỰNG WEBSITE TIN ĐIỆN TỬ BẰNG JOOMLA CMS 4
2.1 Giới thiệu website tin tức Joomla 4
2.2 Thiết kế các thành phần mở rộng của Joomla 4
2.2.1 Plugin 4
2.2.1.1 Giới thiệu Plugin 4
2.2.1.2 Thiết kế Plugin 5
2.2.1.3 Ứng dụng tạo mới plugin lastnewsarticle 7
Trang 42.2.2 Module 7
2.2.2.1 Giới thiệu module 7
2.2.2.2 Thiết kế module 9
2.2.2.3 Ứng dụng tạo mới module mod_showtopnews 9
2.2.2.4 Ứng dụng tạo mới module mod_showarticlesection 10
2.2.2.5 Ứng dụng tạo mới module mod_showarticlelist 11
2.2.3 Component 11
2.2.3.1 Giới thiệu component 11
2.2.3.2 Thiết kế component 12
2.2.3.3 Ứng dụng tạo mới component com_advertising 13
2.2.3.4 Ứng dụng tạo mới component com_comment 21
PHẦN 3: CÀI ĐẶT WEBSITE TIN ĐIỆN TỬ 27
3.1 Cài đặt website trên hosting 27
3.2 Quản trị trong Joomla 34
3.2.1 Đăng nhập trang quản trị 34
3.2.2 Thanh Menu 35
3.2.3 Thanh công cụ 36
3.2.4 Chủ đề (Section) 37
3.2.5 Chủ đề con (Category) 38
3.2.6 Bài viết (Article) 38
3.2.7 Các thành phần mở rộng 39
3.2.8 Phân quyền trong Joomla 41
3.2.9 Quản lý phương tiện/ quản lý tập tin 41
3.2.10 Quản lý Menu 42
Trang 53.2.11 Quản lý danh mục menu 43
3.2.12 Quản lý thành viên 44
3.2.13 Cấu hình chung 46
3.3 Cài đặt và cấu hình các thành phần mở rộng 46
3.3.1 Component com_advertising 46
3.2.2 Component com_comment 48
3.2.3 Module mod_showtopnews 50
3.2.4 Module mod_showarticlesection 52
3.2.5 Module mod_articlelist 55
3.2.6 Module mod_advertising 60
3.2.7 Plugin lastnewsarticle 60
3.2.8 Plugin comment 61
3.2.9 Template 62
PHẦN 4: KẾT LUẬN 63
4.1 Kết quả đạt được 63
4.2 Nhận xét 63
4.2.1 Ưu điểm 63
4.2.2 Tồn tại 63
4.3 Hướng phát triển 64
4.4 Tài liệu tham khảo 64
Tra cứu hình ảnh 65
Trang 6PHẦN 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về hệ quản trị nội dung (CMS)
CMS (Content Management System) là hệ thống dùng để quản lý nội dung chương trình bao gồm: văn bản, hình ảnh, video được tổ chức một cách khoa học
và được cấp quyền truy cập với từng cá nhân Ngoài ra nó còn bao gồm các công cụ giúp cho việc tìm kiếm, quản lý phiên bản, phát hành và định dạng thông tin một cách nhanh chóng và dễ dàng
Trên thế giới, các CMS mã nguồn mở được sử dụng phổ biến để xây dựng các Website, trong đó Drupal, Joomla, Wordpress,… đều phát hành miễn phí
Phần mềm mã nguồn mở đang trở thành một xu hướng lớn trên thế giới Nhờ
dỡ bỏ dần các rào cản về bản quyền, dễ dàng can thiệp, được cung cấp miễn phí hoặc với giá rẻ, nó được kỳ vọng làm thay đổi diện mạo của ngành công nghệ thông tin Điều này đặc biệt có ý nghĩa với các nước nghèo bởi vì có thể tiếp cận được công nghệ mới với chi phí rất thấp
1.2 Giới thiều về Joomla
1.2.1 Khái niệm Joomla
Joomla là một hệ quản trị nội dung mã nguồn mở (Content Management System) viết tắt là 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 rất linh hoạt, đơn giản, thanh nhã, tính tuỳ biến rất cao và cực kỳ mạnh mẽ Được sử dụng ở trên toàn thế giới từ những trang web đơn giản cho đến những ứng dụng phức tạp Việc cài đặt Joomla rất dễ dàng, đơn giản trong việc quản lý và đáng tin cậy
1.2.2 Ứng dụng của Joomla
- 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
Trang 7- Báo điện tử, tạp chí điện tử
- Website của các cơ quan, tổ chức phi chính phủ
- Website các trường học
- Website của gia đình hay cá nhâ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 website 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
1.2.3 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
- Tầng thứ hai là mức ứng dụng 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
Hình 1: Kiến trúc Joomla
Trang 81.3 Một số khái niệm trong Joomla
Template là một gói bao gồm các tập tin PHP, HTML, CSS, JS (Javascript)
và các tấm hình, biểu tượng, video, flash kèm theo tạo nên giao diện (bố cục và hình hài) của website Joomla
1.3.4 Component
Component là một trong các thành phần mở rộng của Joomla, 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
1.3.5 Module
Module là một trong các thành phần mở rộng của Joomla, nó là một ứng dụng nhỏ được sử dụng chủ yếu để lấy dữ liệu và hiển thị thông tin Module thường được dùng kết hợp kèm với các component nhằm mở rộng và thể hiện rõ ràng hơn các chức năng của component Module có thể được đặt ở bất kỳ vị trí nào trên template Ngoài ra một module có thể được nhân bản, nghĩa là cùng lúc có thể xuất hiện tại một hoặc các vị trí khác nhau
1.3.6 Plugin
Plugin là một trong các thành phần mở rộng của Joomla nhằm giúp thực hiện một cách tự động công việc cụ thể
Trang 9PHẦN 2: XÂY DỰNG WEBSITE TIN ĐIỆN TỬ BẰNG JOOMLA CMS
2.1 Giới thiệu website tin tức Joomla
Website tin tức là giải pháp cho các tổ chức, doanh nghiệp, cá nhân có một
trang tin tức mang đến cho mọi người những thông tin nhanh nhất, tiện ích nhất và khả năng tìm kiếm thông tin hiệu quả mang đến cho độc giả những thông tin cần thiết
Tất cả mọi người có nhu cầu về thông tin đều có thể sử dụng website tin tức Trong Joomla phân cấp thành nhiều nhóm người sử dụng, với mỗi nhóm người khác nhau thì có quyền hạn khác nhau Quản lý một trang web được thiết kế bằng Joomla
là khá đơn giản và không đòi hỏi phải có trình độ chuyên môn cao
Một trang web được thiết kế bằng CMS Joomla có thể chạy trên nhiều trình duyệt khác nhau, khả năng tương thích tốt với các hệ điều hành
2.2 Thiết kế các thành phần mở rộng của Joomla
2.2.1 Plugin
2.2.1.1 Giới thiệu Plugin
Plugin là một loại thành phần mở rộng của Joomla, nó giống như component hay module Cơ chế hoạt động của plugin dựa trên các sự kiện kích hoạt (Trigger events là một loại hành động được lập trình sẵn nhưng chỉ được kích hoạt khi có một sự kiện nào đó xảy ra phù hợp với điều kiện mà plugin đang chờ đợi)
Trong phiên bản Joomla 1.5 có tất cả 32 plugin mặc định được cung cấp kèm theo Các plugin này được phân thành 8 nhóm khác nhau và đặt trong các thư mục con tương ứng của thư mục Joomla/plugins
Danh sách 8 nhóm plugin mặc định của Joomla:
- Authentication: Các plugin chứng thực quyền hạn
- Content: Các plugin nội dung (bài viết)
Trang 10- Editors: Các plugin về trình soạn thảo
- Editors-xtd: Các plugin hỗ trợ, mở rộng tính năng cho trình soạn thảo
- Search: Các plugin về tìm kiếm
- System: Các plugin của hệ thống
- User: Các plugin về người dùng
- Xmlrpc: Các plugin quản trị Joomla
Trong đề tài này chúng ta chủ yếu làm việc với các plugin thuộc nhóm content, với các plugin mặc định mà Joomla cung cấp thì không đủ cho việc thiết kế một website tin điện tử, vì thế chúng ta cần phải định nghĩa thêm các plugin mới, để phục vụ cho việc thiết kế trang tin điện tử được hoàn thiện
Joomla cung cấp cho chúng ta component content để thực hiện nhiệm vụ đăng tin, nhưng trong component này chỉ có các chức năng cơ bản Để hiển thị những tin tức có liên quan với bài viết đang được xem thì chúng ta cần phải có một plugin để thực hiện chức năng này Chúng ta có thể tìm các plugin miễn phí được cung cấp trên internet, những trong đề tài này chúng ta sẽ xây dựng một plugin lastnewarticle để hiển thị những liên kết tới những bài viết có liên quan
2.2.1.2 Thiết kế Plugin
Trong một plugin thường có hai tập tin: tập tin php chứa mã lệnh thực hiện công việc chính của plugin và tập tin xml để cấu hình cho plugin
Tập tin <tên plugin>.php thực hiện những chức năng mà người lập trình muốn
defined('_JEXEC') or die ('Restricted access'): Đặt ở đầu tập tin php
để tránh trường hợp truy cập trái phép vào tập tin php
jimport('joomla.plugin.plugin'): Thêm thư viện plugin của Joomla
Lớp class plgContent<tên plugin> extends Jplugin {} được đặt tên theo quy định của Joomla, mỗi nhóm có các sự kiện đặc trưng riêng
Những sự kiên trong nhóm content:
• onAfterDisplay
• onAfterContentSave
• onAfterDisplayTitle
Trang 11Tập tin <tên plugin>.xml thường có các thông tin sau:
Trang 12Thẻ <files> khai báo các tập tin có trong một plugin
Thẻ <params> khai báo các tham số sử dụng trong plugin
2.2.1.3 Ứng dụng tạo mới plugin lastnewsarticle
Plugin lastnewsarticle được dùng để hiển thị nhưng liên kết đến các tin tức liên quan tới bài viết đang xem Plugin này sẽ giúp cho người xem dễ dàng tiếp cận các thông tin có liên quan tới các vấn đề mà người dùng đang quan tâm
Plugin lastnewsarticle gồm tập tin lastnewsarticle.php và lastnewsarticle.xml Tập tin lastnewsarticle.php trong tập tin này chúng ta sẽ tạo ra một lớp kế
thừa từ lớp Jplugin và đăng kí sự kiện onAfterDisplayContent tương ứng với hàm onAfterDisplayContent(&$article) trong lớp class plgContentLastNewsArticle extends JPlugin, sau khi bài viết được hiển thị hoàn tất thì sự kiện sẽ được kích hoạt
onAfterDisplayContent(&$article): Hàm sẽ trả về một kết quả được hiển thị tại vị trí của sự kiện onAfterDisplayContent
$article: Tham số chứa thông tin một bài viết đang được hiển thị chi tiết
2.2.2 Module
2.2.2.1 Giới thiệu module
Module là một trong các thành phần mở rộng của Joomla Nó 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ếtquả tìm được
Vị trí của module (module position) là nơi mà module có thể được đặt vào
đó Mỗi vị trí đều được xác định thông qua một định danh duy nhất (một cái tên), chẳng hạn như: left, right, top, bottom, user1, user2 Tên và số lượng các vị trí này được quy định bởi template Các template khác nhau thì số lượng vị trí module cũng
Trang 13như tên của chúng có thể khác nhau Ngoài ra, trong quá trình sử dụng người dùng cũng có thể tự định nghĩa các vị trí mới sao cho phù hợp với yêu cầu của mình Chúng ta có thể xem các vị trí của website bằng cách thêm đoạn mã sau vào liên kết của trang chủ: ?tp=1
Các module mặc định của Joomla:
- 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ị 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: Module 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 thị danh tính và số người trực tuyến
- mod_wrapper: Module hiển thị một website bất kỳ được nhúng vào trong website Joomla
Với các module mặc định của Joomla thì chúng ta có thể thiết kế một trang tin điện tử khá đơn giản và hạn chế về chức năng, vì thế mà chúng ta phải sử dụng
Trang 14thêm các module bên ngoài Trong đề tài này có tạo thêm các module hiển thị tin tức để giúp cho việc hiển thị dữ liệu được thuận tiên hơn
Kết quả cuối cùng là chúng ta có những module hiển thị tin tức với giao diện trực quan, có thể đặt được ở các vị trí trên website, việc thiết kế giao diện cho module sẽ là cho website được đẹp hơn
2.2.2.2 Thiết kế module
Module thường chứa các tập tin sau:
• Mod_<tên module>.php tập tin này được dùng để gọi các hàm xử lý
dữ liệu và thực thi giao diện của module
• Helper.php : Chứa các hàm xử lý dữ liệu cho module
• Thư mục tmpl, trong thư mục này chưa tập tin _<tên module>.php tập tin này sẽ hiển thị giao diện của module
• Mod_<tên module>.xml: Tập tin cấu hình của module Tập tin này chứa các thông số để thực hiện việc cài đặt module vào Joomla Trong tập tin cài đặt của module cũng tương tự như tập tin cài đặt của plugin
nhưng khác ở đây là thẻ <install type="module" version="1.5.0">
2.2.2.3 Ứng dụng tạo mới module mod_showtopnews
Module hiển thị những tin tức mới nhất giúp người xem dễ dàng tiếp cận đến tin tức mới đăng, module thường được hiển thị ngay phần đầu của trang chủ, module sẽ hiển thị một tin tức mới nhất của trang web phía bên trái của module, tin tức này sẽ được hiển thị nổi bật lên trang chủ, những tin cũ hơn sẽ hiện thị dưới dạng liên kết nằm về phần bên phải của module Người dùng có thể tuỳ chỉnh kích thước hình ảnh, kiểu chữ, cỡ chữ, kích thước chữ
Tập tin mod_showtopnews.php
require_once (dirname( FILE ).DS.'helper.php'): Hằng số DS
trong Joomla có ý nghĩa là dấu “/” Đăng kí sử dụng các hàm xử lý dữ liệu trong tập tin helper.php
Trang 15modshowtopnewsHelper::getArticle($params->get('articles')): Lấy
danh sách bài viết mới nhất từ cơ sở dữ liệu
$params->get('articles'): Tham số giới hạn số tin tức được hiển thị
trên module Tham số này đã được thiết lập khi tạo ra module
require(JModuleHelper::getLayoutPath('mod_showtopnews','_showto pnews')): Yêu cầu hiển thị dữ liệu lên giao diện của module, câu lệnh
này sẽ sử dụng tập tin _showtopnews.php, tập tin này chứa các đoạn
mã để trình bày giao diện của module
Tập tin helper.php:
getArticle($params): Hàm thực hiện nhiệm vụ lấy những bài viết mới
nhất từ cơ sở dữ liệu với tham số $params là giới hạn số bài hiển thị
JFactory::getDBO(): Khởi tạo một đối tượng kết nối với cơ sở dữ liệu
setQuery($query): Phương thức thiết lập câu truy vấn cơ sở dữ liệu
loadObjectList(): Phương thức thực hiện câu truy vấn cơ sở dữ liệu,
kết quả trả về một danh sách các bản ghi
Tập tin _ showtopnews.php có chức năng trình bày giao diện của module Trong tập tin này sử dụng các biến được khai báo trong tâp tin mod_showtopnews.php, vì đoạn mã trong tập tin giao diện sẽ được gắn vào tập tin mod_showtopnews.php
2.2.2.4 Ứng dụng tạo mới module mod_showarticlesection
Module mod_showarticlesection sẽ hiển thị nhưng tin tức mới nhất trong một chủ đề nhất định của trang web Module này hiển thị tất cả các chủ đề con có liên kết đến trang chủ đề con đó Những bài viết được hiển thị trên module sẽ là những bài viết mới nhất của tất cả các chủ đề con Sẽ có môt tin tức mới nhất được hiện thị chính trong module và những tin tức cũ hơn sẽ hiện thị dưới dạng liên kết Module này có các tham số thiết lập các định dạng kiểu chữ, màu chữ, kích thước chữ, kích thước hình ảnh cho tin tức hiển thị chính và những tin tức hiển thị dưới dạng liên kết
Trang 162.2.2.5 Ứng dụng tạo mới module mod_showarticlelist
Module mod_showarticlelist hiển thị những tin tức trong một chủ đề hay một chủ đề con với nhiều giao diện khác nhau, người dùng có thể hiển thị các tin tức theo thời gian mới nhất hoặc được xem nhiều nhất Tuỳ vào cách thiết kế website mà chọn những kiểu hiển thị đã được module cung cấp Module cho phép hiển thi tin tức dạng cột, hiển thị dạng tóm tắt, hiển thị dạng chuyên mục Nếu thiết lập cho module hiển thị những tin tức trong một chủ đề thì module sẽ hiện thị những bài viết của tất cả các chủ đề con, nếu thiết lập cho module hiển thị tin tức trong chủ đề con thì nó chỉ thực hiện câu truy vấn trong chủ đề con đó
2.2.3 Component
2.2.3.1 Giới thiệu component
Joomla component là một trong các thành phần mở rộng của Joomla Component thường được tạo ra để thực hiện một chức năng lớn nào đó trong hệ thống website Joomla
Các component mặc định của Joomla:
- 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
- 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 theo dạng RSS
- 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_weblinks: Quản lý và hiển thị danh mục các website liên kết
- com_wrapper: Cho phép nhúng một website khác vào trong cửa sổ của website Joomla
Trang 17Component com_content không có chức năng cho người dùng bình luận về bài viết mà họ đang xem, để thêm chức năng bình luận về bài viết thì trong đề tài này có tạo thêm component com_comment, nó giúp người xem gửi nhận xét của họ cho người quản trị và giúp người quản lý website có thể tiếp nhận ý kiến của mọi người
Joomla đã hỗ trợ component quảng cáo (banner) nhưng để quản lý một quảng cáo là khá phức tạp, khi quảng cáo là một đoạn flash không hỗ trợ liên kết bên ngoài, bắt buộc đoạn flash phải có chứa liên kết Vì thế component advertising được thiết kế để giúp người dùng quản lý quảng cáo dễ dàng hơn
Trang 182.2.3.3 Ứng dụng tạo mới component com_advertising
Component com_advertising giúp người quản trị quản lý những quảng cáo trên trang web một cách dễ dàng, com_advertising chỉ có phần back-end cho quản trị viên quản lý mà không có phần front-end Việc hiển thị những quảng cáo lên phần front-end sẽ do module hiển thị quảng cáo đảm nhận
Cấu trúc component com_advertising:
• Thư mục Tables chứa tập tin advertising.php có chức năng khởi tạo đối tượng đề làm việc với bảng jos_advertising trong cơ sở dữ liệu
• Thư mục Tables chứa tập tin advertising_menu.php có chức năng khởi tạo đối tượng đề làm việc với bảng jos_advertising_menu trong
cơ sở dữ liệu
• admin.advertising.html.php chứa giao diện của component
• admin.advertising.php điều khiển component theo các sự kiện xảy ra
• advertising.xml tập tin chứa các thông tin cài đặt của component
• install.advertising.php hiển thị thông báo khi cài đặt thành công
• install.mysql.sql tập tin tạo các bảng trong cơ sở dữ liệu
• toolbar.advertising.html.php tạo thanh công cụ
• toolbar.advertising.php điều khiển việc hiển thị thanh công cụ
• uninstall.mysql.php tập tin xoá các bảng đã cài đặt của component Tập tin toolbar.advertising.html.php tạo ra thanh công cụ với các chức năng cần thiết cho com_advertising Trong Joomla hỗ trợ chúng ta lớp JtoolBarHelper để tạo ra thanh công cụ
Một số phương thức chính:
JToolBarHelper::title( JText::_( 'Quảng cáo' ),'generic.png' ): Đặt tên
và ảnh đại diện cho thanh công cụ
JToolBarHelper::save(): Tạo nút Lưu
JToolBarHelper::apply(): Tạo nút Áp dụng
JToolBarHelper::cancel(): Tạo nút Huỷ
JToolBarHelper::publishList(): Tạo nút Bật
Trang 19JToolBarHelper::unpublishList(): Tạo nút Tắt
JToolBarHelper::editList(): Tạo nút Sửa
JToolBarHelper::deleteList(): Tạo nút Xoá
JToolBarHelper::addNew(): Tạo nút Thêm mới
Tập tin toolbar.advertising.html.php thực hiện hiển thị giao diện toolbar thao các sự kiện của component
_NEW() {}: Chứa các công cụ trong sự kiện thêm mới
Hình 3: Thanh công cụ thêm mới của com_advertising
_DEFAULT(){}: Chứa các công cụ mặc định của component
Hình 4: Thanh công cụ mặc định của com_advertising
Tập tin toolbar.advertising.php hiển thị giao diện thanh công cụ cho đúng với từng sự kiện bằng cách phân tích biến $task
require_once(JApplicationHelper::getPath( 'toolbar_html' )): Đăng kí
sử dụng các phương thức trong tập tin toolbar.advertising.html.php
TOOLBAR_advertising::_NEW(): Gọi hàm _NEW()
TOOLBAR_advertising::_DEFAULT(): Gọi hàm _DEFAULT()
Cơ sở dữ liệu của com_advertising:
Mô hình quan niệm dữ liệu hình 5
Trang 20Hình 5: Mô hình quan niệm dữ liệu của com_advertising
Trong hinh 5 bảng jos_advertising sẽ chứa các thông tin về quảng cáo, còn bảng jos_menu và jos_users là bảng của hệ thống Joomla
Mô hình tổ chức dữ liệu:
Ở phiển bản Joomla 1.5 thì các bảng sẽ bắt đầu bởi tiền tố “jos_”
Jos_advertising ( id, name, link, phonenumber, email, iduser, image, created, modified, position, expiration, published)
Jos_advertising_menu (idadv, idmenu)
Mô hình vật lý dữ liệu:
Bảng Jos_advertising:
Trang 21Tên thuộc
tính
Kiểu dữ liệu
Kích thước
Ràng buộc toàn vẹn Mô tả
khách hàng
jos_users
tin ảnh hoặc flash
Bảng Jos_advertising:
Tên thuộc
tính
Kiểu dữ liệu
Kích thước
Ràng buộc toàn vẹn
Tạo cơ sở dữ liệu:
Tập tin install.mysql.sql để tạo ra các bảng trong cơ sở dữ liệu Trong tập tin này sử dụng các câu lệnh mysql để tạo ra bảng jos_advertising và jos_advertising_menu Tập tin này sẽ được sử dụng khi cài đặt component nhằm mục đích tạo ra các bảng trong cơ sở dữ liệu
Trang 22Tập tin uninstall.mysql.sql chứa các câu lệnh mysql để xoá bỏ các bảng trong
cơ sở dữ liệu đã được tạo ra khi cài đặt component Tập tin sẽ được thực thi khi người dùng gỡ bỏ component
Để làm việc với các bảng cơ sở dữ liệu trong Joomla đã hỗ trợ lớp Jtable cho phép tạo các đối tượng tương ứng với các bảng trong cơ sở dữ liệu Việc thực hiên các câu truy vấn dữ liệu sẽ nhanh chóng và dễ dàng tránh viết lại mã
Tập tin advertising.php trong thư mục tables có nhiệm vụ tạo ra các đối tượng làm việc với bảng dữ liệu jos_advertising
construct(&$db): Hàm khởi tạo đối tượng lưu trữ giá trị của bảng
jos_advertising, hàm này sử dụng phương khởi tạo thức kế thừa của lớp JTable, $db là một thể hiện của lớp JFactory
Tập tin advertising_menu.php có nhiệm vụ tạo ra đối tượng làm việc với bảng dữ liệu jos_advertising_menu
Tập tin admin.advertising.php lập trình các chức năng cho component bằng việc phân tích tham số $task Với mỗi chức năng thì tương ứng với một giá trị đã
được mặc định sẵn trong Joomla
$task = 'add': Sự kiện thêm mới
$task = 'edit': Sự kiện sửa
$task = 'apply': Sự kiện áp dụng
$task = 'save': Sự kiện lưu
$task = 'remove': Sự kiện xoá
$task = 'unpublish': Sự kiện tắt
$task = 'publish': Sự kiện bật
editAdvertising($option){}: Chức năng thêm mới và chỉnh sửa một
quảng cáo Tham số $option chứa tên component hiện hành, nó được
sử dụng để trả lại giao diện của component hiện hành khi thực hiện thành công một chức năng nào đó
getInstance('advertising', 'Table'): Khởi tạo đối tượng của lớp
JTable
Trang 23load($id): Lấy thông tin của quảng cáo có khoá bằng với biến $id
bind(JRequest::get('post')): Hàm gán những giá trị người dùng
nhập trên giao diện vào đối tượng TableAdvertising
setQuery($query): Gán câu truy vấn dữ liệu vào đối tương JFactory
loadObjectList(): Phương thức thực hiện câu truy vấn của lớp
JFactory và trả về một danh sách các đối tượng thoả mãn
JRequest::getVar('cid', array(0),'','array'): Phương thức lấy giá trị
của một biến với kiểu dữ liệu xác định
store(): Hàm lưu thông tin vào cơ sở dữ liệu
saveAdvertising($option,$task){}: Lưu một quảng cáo vào cơ sở dữ liệu
JTable::getInstance('advertising','Table'): Khởi tạo đối tượng bảng
bind(JRequest::get('post')): Gán giá trị người dùng đã nhập trên giao diện vào cho đối tượng bảng
JFactory::getUser(): Lấy thông của người dùng hiện tại
changeAdvertising($state=0){}: Thực hiện bật và tắt một quảng cáo
JRequest::getVar( 'cid' , array() , '' , 'array' ): Lấy khoá của những
quảng cáo được chọn để bật hay tắt Nếu tham số $state là 1 thì thực hiện bật một quảng cáo ngược lại thì thực hiện tắt một quảng cáo
implode( ',', $cid ): Chuyển đổi mảng $cid thành một chuỗi các
phần tử cách nhau bởi dấu “,”
showAdvertising($option){}: Lấy thông tin tất cả quảng cáo có trong
cơ sở dữ liệu để hiện thị lên component
removeAdvertising($option){}: Hàm xoá một quảng cáo trong cơ sở
dữ liệu, hàm này sẽ lấy danh sách khoá của những quảng cáo mà
người dùng chọn để xoá khỏi cơ sở dữ liệu
JRequest::getVar('cid', array(),'','array'): Trả về những khoá của
những bản ghi cần xoá
Tạo tập tin admin.advertising.html.php
Trang 24editAdvertising($option,$row,$menus,$advertising_menu){}: Hiển thị
giao diện quản lý chi tiết một quảng cáo
$rows danh sách bản ghi quảng cáo
$option chứa giá trị com_advertising
$pageNav là đối tượng phân trang khi số lượng bản ghi là quá nhiều
showAdvertising($rows,$option,$pageNav){}: Hiển thị giao diện quản
lý những quảng cáo đang có
$option: lưu tên component đang thao tác tham số này dùng để tạo
liên kết trả về giao diện chính của component khi thực hiện xong một chức năng
$row: lưu giữ giá trị một bản ghi quảng cáo
$menus: mảng các bản ghi menu
$advertising_menu: mảng các bản ghi menu mà một quảng cáo
được hiển thị trên đó
JHTML::_('behavior.calendar'): khởi tạo đối tượng calendar hiển
thị bảng lịch năm và cho phép chọn các giá trị tương ứng giúp cho người sử dụng có thể chọn ngày tháng năm trên giao diện trực quan
JHTML::_('grid.id',$i,$row->id): Tạo ra đối tượng checkbox với value = $row->id
JHTML::_('grid.published',$row,$i): Tạo đối tượng published có
sẵn sự kiện bật hoặc tắt
Chúng ta phải đặt đúng tên thuộc tính name="adminForm" của thẻ
<form > do Joomla quy định để thực hiện được các đoạn
javascript()
Giao diện thêm mới một quảng cáo hình 6
Trang 25Hình 6: Giao diện thêm mới một quảng cáo
Giao diện quản lý quảng cáo hình 7
Hình 7: Giao diện quản lý danh sách quảng cáo
Sau khi component đã hoàn thành chúng ta nén thư mục com_advertising với đuôi mở rộng là com_advertising.zip Người dùng muốn sử dụng chỉ cần thực hiện việc cài đặt phần mở rộng
Để hiển thị quảng cáo tại nhưng vị trí khác nhau trên trang web chúng ta cần
có module mod_advertising
Cấu trúc:
• mod_advertising.php: Tập tin thực hiện module
Trang 26• mod_advertising.xml: Tập tin cài đặt module
• helper.php: tập tin chứa các hàm xử lý dữ liệu của module
• Thư mục tmpl chứa tập tin _advertising.php dùng để hiển thị giao diện của module
• Tập tin mod_advertising.php
Tập tin này sử dụng các hàm xử lý dữ liệu của tập tin helper.php Tìm các quảng cáo thoả mãn điều kiện để hiển thi trên trang web
Tập tin helper.php chứa các hàm xử lý dữ liệu của module mod_advertising
getAdvertising($params,$position){}: Lấy những quảng cáo có vị trí
bằng với tham số $params, những quảng cáo này phải có thời hạn quảng cáo lớn hơn ngày hiện tại
Thư mục tmpl chứa các tập tin hiển thị giao diện của module Tập tin _advertising.php định dạng một quảng cáo để hiển thị lên trình duyệt
Trong tập tin Mod_advetsing.xml cần khai báo thêm tham số:
<param name="position" type="text" default="" label="Vị trí hiển thị:" description="Vị trí hiển thị:"></param>
Mỗi quảng cáo đều có vị trí hiển thị, khi người dùng muốn hiển thị quảng cáo nào thì sẽ nhập vị trí của quảng cáo đó
2.2.3.4 Ứng dụng tạo mới component com_comment
Trong phần mở rộng mặc định của Joomla không hỗ trợ người dùng phần quản lý bình luận của người xem, vì thế component com_comment được tạo ra để thực hiện chức năng quản lý những ý kiến của người xem Phần bình luận cũng là một phần quan trọng của một website điện tử
Component com_comment thực hiện chức năng quản lý bình luận của người đọc Tất cả bình luận phải được sự cho phép của quản trị viên mới được hiển thị cho người đọc
Cấu trúc component com_comment gồm có 2 phần:
Trang 27Front–end: Chứa các tập tin được sử dụng cho việc thực hiện chức năng thêm bình luận và hiển thị bình luận
• Addcomment.php: Có chức năng thêm một bình luận vào cơ sở dữ liệu
• Checkcode.php: Kiểm tra mã bảo vệ
• Comment.js: Chứa các hàm javascript
• Security.php: Tạo ra mã bảo vệ
Back – end: Chứa các tập tin làm việc với phần quản trị
• admin.comment.html.php: Chứa giao diện quản lý của component
• admin.comment.php: Chứa các hàm xử lý cho các sự kiện
• com_comment.xml: Tập tin cấu hình cho component
• install.comment.php: Hiển thị thông tin khi cài đặt mới component
• install.mysql.sql: Tạo cơ sở dữ liệu cho component
• toolbar.comment.html.php: Giao diện của thanh công cụ
• toolbar.comment.php: chứa hàm hiển thị giao diện công cụ component
• uninstall.comment.php: Thông báo khi xoá bỏ component thành công
• uninstall.mysql.sql: Xoá bỏ cơ sở dữ liệu
Component com_comment chỉ thực hiên chức năng quản lý bình luân Người quản trị chỉ có quyền xem xét bình luận và quyết định có cho phép hiển thị bình luận hay không Nếu những bình luận nào không thoả đáng sẽ bị xoá bỏ
Tập tin toolbar.comment.html.php hiển thị thanh công cụ gồm các hàm:
_EDIT(){}: Hàm hiển thị công cụ xoá một bình luận
_DEFAULT(){}: Hàm hiển thị công cụ chi tiết và xoá bình luận
Cơ sở dữ liệu của component com_comment hình 8
Trang 28Hình 8: Mô hình quan niệm dữ liệu của com_comment
Trang 29Tập tin install.mysql.sql tạo bảng jos_comment trong cơ sở dữ liệu khi com_comment được cài đặt
Tập tin uninstall.mysql.sql xoá bảng jos_comment trong cơ sở dữ liệu khi gỡ
bỏ com_comment
Tập tin admin.comment.php với các hàm:
changeAdvertising($state=0){}: Hàm bật tắt một bình luận, tham số
$state mặc định là 0 thực hiện nhiệm vụ tắt một quảng cáo, ngược lại
thì bật quảng cáo
removeComment($option){ }: Hàm xoá bình luận
showComment($option){ }: Hàm hiển thị danh sách bình luận
showDetailComment($option){}: Hàm hiển thị chi tiết một bình luận
Chức năng của component com_comment chỉ là hiển thị danh sách bình luận, hiển thị chi tiết một bình luận và xoá bình luận
Tập tin admin.comment.html.php hiển thị những giao diện trong quá trình xử
lý của component
showComment($option,$comment){}: Hàm hiển thị giao diện quản lý
các bình luận, tham số $comment chứa giá trị của một đối tượng bình luận
showDetailComment($option,$comments){}: Hàm hiển thị giao diện chi tiết một bình luận
Trong thư mục tables chứa tập tin comment.php tạo một lớp kế thừa từ lớp JTable để làm việc với cơ sở dữ liệu
Các tập tin trong phần front–end:
Tập tin addcomment.php thêm bình luận vào cơ sở dữ liệu, các tham số sẽ được truyền bằng kĩ thuật ajax
Tập tin security.php tạo mã an toàn Mã an toàn là các số ngẫu nhiêu và trả
về một tâp tin hình ảnh
Tập tin checkcode.php kiêm tra mã an toàn trước khi thêm bình luận được thêm vào cơ sở dữ liệu, khi tạo ra mã an toàn thì chuỗi số sẽ được lưu vào biến
Trang 30$_SESSION trong php Khi người dùng nhập vào mã an toàn sẽ được so sánh với biến $_SESSION nếu đúng thì bình luận sẽ được thêm mới vào cơ sở dữ liệu
Tập tin comment.js chứa các hàm xử lý dữ liệu trên form bình luận
checkcode(code,name,email,title,content,id){}: Hàm kiểm tra mã an toàn
addcomment(name,email,title,content,id){}: Hàm thêm bình luận vào
cơ sở dữ liệu
opencomment(){}: Hàm mở giao diện bình luận
closecomment(){}: Hàm đóng bảng bình luận
loadcode(){ }: Hàm nạp lại hình ảnh mã kiểm tra
removetext(id){}: Hàm xoá dữ liệu của đối tương có thuộc tính id
returntext(id){}: Hàm khôi phục dữ liệu mắc định của đối tượng có
thuộc tính id có giá trị bằng biến $id
Để hiển thị giao diện cho phép người xem gửi ý kiến chúng ta cần thêm plugin comment, plugin này sẽ được hiển thị ở cuối những bài viết
Giao diện gửi bình luân có dạng như hình 9:
Hình 9: Giao diện gửi bình luận
Trang 31Bình luận sẽ được hiển thị luôn trên plugin như hình 10:
Hình 10: giao diện bình luận
Trang 32PHẦN 3: CÀI ĐẶT WEBSITE TIN ĐIỆN TỬ
3.1 Cài đặt website trên hosting
Đăng kí một tên miền và một hosting để lưu trữ website Sau khi đăng kí thành công chúng ta tiến hành upload gói cài đặt Joomla lên host
Trong đề tài này sử dụng hosting miễn phí cung cấp bởi trang http://000webhost.com Để đăng kí host miễn phí chúng ta truy cập vào http://www.000webhost.com/order.php nếu chưa có tên miền thì chúng ta có thể đăng kí một tên miền miễn phí Ở đề tài này đã đăng kí tên miền miễn phí là http://tinnhanh.site11.com Sau khi đăng kí thành công chúng ta đăng nhập vào trang quản lý hosting vừa mới tạo http://members.000webhost.com/login.php
Khi đăng nhập thành công để vào trang quản lý chúng ta chọn vào Go toCPanel như hình 11:
Hình 11: Giao diện đăng nhập control panel của hosting
Giao diện quản lý như hình 12:
Hình 12: Giao diện quản lý hosting
Chúng ta có thể sử dụng các chương trình như FileZilla, Windows Commander, LeapFTP… để upload dữ liệu lên hosting
Trang 33Để kết nối với hosting cần các thông tin sau: Host, username, password Tài khoản FTP đã được gửi về mail mà chúng ta đăng kí hoặc chúng ta có thể vào View FTP Details như hình 13:
Hình 13: Quản lý Files trên hosting
Bảng thông tin tài khoản FTP như hình 14:
Hình 14: Chi tiết tài khoản FTP
Sau khi kết nối thành công chúng ta upload toàn bộ gói cài đặt của Joomla vào thư mục public_html Chúng ta chỉ cần chọn thư mục cần upload (bên trái giao diện) lên hosting rồi kéo thả sang phần muôn upload đến (phần phải của giao diện)
Trang 34Giao diện FileZilla khi kết nối thành công đến hosting như hình 15
Hình 15: Giao diện phần mềm upload FileZilla
Sau khi upload thành công chúng ta truy cập http://tinnhanh.site11.com để tiến hành cài đặt
Trang 35Các bước cài đặt:
Bước 1: Chọn ngôn ngữ cài đặt hình 16
Hình 16: Chọn ngôn ngữ cài đặt Joomla
Bước 2: Kiểm tra cấu hình server hình 17
Hình 17: Kiểm tra cấu hình server
Trang 36Bước 3: Thông tin bản quyền hình 18
Hình 18: Các thông tin về bản quyền
Bước 4: Thiết lập các thông số để kết nối tới cơ sở dữ liệu như hình 19
Hình 19: Thiết lập kết nối cơ sở dữ liệu
- Điền đầy đủ các thông tin sau:
- Chọn kiểu database: Mặc định chọn mysql
- Host name: Điền tên miền
- Username : Tài khoản đăng nhập cơ sở dữ liệu
- Password: Mật khẩu đăng nhập cơ sở dữ liệu