Xây dựng website tin tức trên nền tảng joomla cms

  • Số trang: 72 |
  • Loại file: PDF |
  • Lượt xem: 41 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

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:
- Xem thêm -