i
LỜ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.
ii
LỜ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
iii
MỤ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
iv
2.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
v
3.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
1
PHẦ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.
2
-
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
3
1.3.
Một số khái niệm trong Joomla
1.3.1. Front-end
Phần mặt trước phía trang chủ mà ai cũng có thể xem thấy.
1.3.2. Back-end
Phần quản trị dành cho các thành viên có quyền quản trị hệ thống Joomla.
1.3.3. Template
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ể.
4
PHẦ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).
5
-
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
.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 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
6
• onAfterDisplayContent
• onPrepareContent
• onBeforeDisplay
• onBeforeContentSave
• onBeforeDisplayContent
• onContentPrepareForm
• onContentPrepareData
Tương ứng với mỗi sự kiện thì plugin sẽ được thực thi tại một thời điểm nhất
định, mỗi sự kiện sẽ có vị trí hiển thị nhất định trên template.
Một tập tin .xml để phục vụ cho việc cài đặt plugin khi chúng ta
đóng gói. Tập tin XML này sẽ mang tất cả các thông số về tên plugin, tên tác giả,
địa chỉ email, license… Mục đích chính của tập tin này là để đặt những tập tin vào
đúng các thư mục front-end và back-end khi cài đặt. Ngoài ra nó còn chứa các đối
tượng hiện thị dữ liệu hoặc các tham số cần sử dụng cho plugin.
Tập tin .xml thường có các thông tin sau:
Tên module
tác giả
ngày tạo
bản quyền
địa chỉ email
liên kết website của tác giả
phiên bản
mô tả về module
……………
7
……………
Trong tập tin cài đặt thẻ phải chọn thuộc tính type="plugin" là cài
đặt một plugin và group="content" là cài đặt plugin vào nhóm content.
Thẻ khai báo các tập tin có trong một plugin.
Thẻ 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
8
như 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
9
thê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_.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 _.php tập
tin này sẽ hiển thị giao diện của module.
• Mod_.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ẻ .
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.
10
modshowtopnewsHelper::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.
11
2.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.
12
Component 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.
2.2.3.2. Thiết kế component
Cách đặt tên component được bắt đầu bằng com_
Một component sẽ gồm hai phần:
-
Phần front-end bao gồm các tập tin được sử dụng để tương tác với
trang người dùng.
-
Phần back-end bao gồm các tập tin được sử dụng để tương tác với
trang quản trị.
Hình 2: Cấu trúc thư mục component
13
2.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.
14
JToolBarHelper::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.
15
Hì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: