Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
9Activity
0 of .
Results for:
No results containing your search query
P. 1
Component Cho Joomla

Component Cho Joomla

Ratings: (0)|Views: 2,698|Likes:
Published by river_11576

More info:

Published by: river_11576 on Dec 05, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/15/2011

pdf

text

original

 
Component là một thành phần mở rộng lớn nhất và phức tạp nhất của Joomla CMS. Các component cóthể xem như là các ứng dụng con và nếu joomla là một hệ điều hành thì các component là các ứng dụngdesktop. Ví dụ component nội dung (com_content) là một ứng dụng mini xử lý tất cả các vấn đề về nội dungđược trả lại như thế nào mỗi khi có yêu cầu duyệt nội dung được đưa ra. Một component có hai thành phầnchính: phần quản trị và phần trên site. Phần trên site là phần được sử dụng để tải về các trang khi được triệugọi trong quá trình hoạt động của một website thông thường. Phần quản trị cung cấp giao diện để cấu hình,quản lý các khía cạnh khác nhau của component và được truy cập thông qua ứng dụng quản trị của JoomlaBắt đầu từ phiên bản Joomla 1.5.x hoặc các phiên bản sau này, Joomla đã đưa vào một framework mới,mang lại những thuận tiên rất lớn cho những người phát triển. Các đoạn code giờ đây rất dễ dàng để kiểmtra và khá rõ ràng. Framework này đưa ra một mẫu thiết kế mới, thiết kế MVC (Model-View-Controller)trong Joomla.Model-View-Controller (gọi tắt là MVC) là một mẫu thiết kế phần mềm được dùng để tổ chức các đoạn mãtheo cách mà việc xử lý dữ liệu và biểu diễn dữ liệu tách rời nhau. Điều này tạo ra tiền đề cho hướng tiếpcận sau này khi mà việc xử lý dữ liệu được nhóm vào trong một section, khi đó giao diện hay quá trình tươngtác với người dùng bao quanh dữ liệu có thể được định dạng và tùy biến lại mà không phải lập trình lại việcxử lý dữ liệu nữa.
1 – Model:
là thành phần của component đóng gói dữ liệu cho ứng dụng. Nó thường cung cấp các thủ tụcđể quản lý, thao tác dữ liệu theo một cách nào đó, trong đó có thêm các thủ tục để lấy dữ liệu từ model. Cóthể là bổ sung (insert), loại bỏ (delete) hay cập nhật (update) thông tin về một trường nào đó trong cơ sở dữ liệu (CSDL). Theo cách này, nếu một ứng dụng chuyển đổi sang việc sử dụng một file bình thường để lưu trữ thông tin của nó thay vì sử dụng CSDL thì chỉ có thành phần Model là thay đổi còn các thành phần View vàController là không đổi.
2 – View:
là một thành phần của component được sử dụng để trả lại dữ liệu từ model theo cách phù hợpvới tương tác. Đối với ứng dụng web, view thông thường là các trang HTML để trả lại dữ liệu. View lấy dữ liệutừ Model (dữ liệu này được chuyển qua View tới Controller). Sau cùng là đưa dữ liệu vào trong template (dữ liệu này sẽ hiển thị với người dùng). View không làm thay đổi dữ liệu, nó chỉ hiển thị dữ liệu lấy từ Model màthôi)
3 – Controller:
Controller chịu trách nhiệm phản hồi các hành động của người dùng. Trong các ứng dụngweb, một hành động của người dùng thông thường là một yêu cầu tải trang. Controller sẽ xác định yêu cầugì được người dùng đưa ra và phản hồi thích hợp bằng việc yêu cầu Model tính toán dữ liệu phù hợp vàchuyển từ Model vào View. Controller không thể hiện dữ liệu từ Model, nó kích hoạt các phương thức trongModel để hiệu chỉnh dữ liệu và sau đó chuyển từ Model sang View để hiển thị dữ liệuTrong Joomla, mô hình MVC được hỗ trợ thông qua 3 lớp JModel, JView và Jcontroller.
II. Khởi tạo một component
Một component đầy đủ có cấu trúc như sau:Thư mục admin chứa các thành phần tạo nên giao diện quản trị cho component ở Joomla Back-End, thư mục site chứa các thành phần tạo nên giao diện site cho component ở Joomla Front-End và file XML chứathông tin mô tả về cài đặt. Ví dụ ở đây là xây dựng một component hiển thị lời chào lấy từ CSDL theo môhình MVC của Joomla.Đối với một component cơ bản (không có phần quản trị) chỉ cần 5 file được đặt trong các thư mục models,views trong thư mục chính sites:Hello.php: đây là file đầu vào cho component.Controller.php: file này chứa controller cơ bản cho componentView/hello/view.html.php: file này nhận dữ liệu cần thiết và đặt nó vào templateView/hello/tmpl/default.php: file này là template cho đầu ra, hiển thị lên siteHello.xml: đây là một file XML nói cho joomla biết cách cài đặt component như thế nàoTuy nhiên đó chỉ là mô hình View-Controller đơn giản, không tuân theo mẫu MVC một cách chính xác, bởiView chỉ được hiển thị dữ liệu chứ không chứa nó. Khi đó ta sẽ chuyển dữ liệu ra khỏi View và đưa nó vàoModel. Component lúc này sẽ cần thêm các file:• Models/hello.phpNếu có thêm phần quản trị, sẽ có thêm thư mục admin cũng chứa các thư mục như controllers, models,views có các file tương tự như phần site và một số file/thư mục đặc biệt như: file SQL (cài đặt và gỡ bỏ bảngtrong CSDL), thư mục tables, v.v.. Trong bài này, chúng ta sẽ lấy ví dụ xây dựng 1 component là Hello hiểnthị một lời chào lấy từ CSDL 
II. Tổng quan về component trong Joomla
!
Thiết kế component Joomla
!
theo mô hình MVC
 
B1: Tạo điểm vào cho component (hello.php)
Joomla luôn luôn được truy cập thông qua một điểm vào duy nhất là file index.php cho các ứng dụng trênsite (administrator/index.php cho ứng dụng quản trị). Sau đó ứng dụng sẽ tải các component cần thiết dựatrên giá trị chọn lựa trong URL hoặc trong dữ liệu POST. Đối với component này, URL sẽ có dạng:index.php?option=com_hello&view=hello sẽ tải file chính (components/com_hello/hello.php)Code:<?php // no direct accessdefined( '_JEXEC' ) or die( 'Restricted access' ); // Require the base controllerrequire_once( JPATH_COMPONENT.DS.'controller.php' ); // Require specific controller if requestedif($controller = JRequest::getWord('controller')) {$path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';if (file_exists($path)) {require_once $path;} else {$controller = '';}} // Create the controller$classname = 'HelloController'.$controller;$controller = new $classname( ); // Perform the Request task$controller->execute( JRequest::getVar( 'task' ) ); // Redirect if set by the controller$controller->redirect();?>Câu lệnh đầu tiên là câu lệnh kiểm tra bảo mật. JPATH_COMPONENT là đường dẫn tuyệt đối tớicomponent hiện tại (ví dụ ở đây là: components/com_hello) và tương tự với admin component làJPATH_COMPONENT_ADMINISTRATOR (administrator/components).DS là dấu phân cách thư mục trong hệ thống của bạn: có thể là “\” hoặc “/”. Điều này được thiết lập tự động bởi framework, vì vậy lập trình viên không phải quan tâm đến việc phát triển các phiên bản khác nhaucho các hệ điều hành khác nhau. DS sẽ luôn được sử dụng khi tham chiếu đến các file trên máy chủ cục bộ.Sau khi tải controller cơ bản, chương trình sẽ kiểm tra một controller cụ thể cần đến. (Với component Hellođơn giản, controller cơ bản chỉ là một controller nhưng khi mở rộng sau này sẽ có rất nhiều controller).Lớp Jrequest:getVar() sẽ tìm đến một biến trong URL hoặc POST dữ liệu, bởi vậy nếu URL là:index.php?option=com_hello&controller=controller_name thì tên của Controller ở đây sẽ được lấy về bằngcâu lệnh: Jrequest::getVar(‘controller’);Bây giờ, component đã có controller cơ sở (ở đây là HelloController, trong file com_hello/controller.php)và nếu cần thiết, ta sẽ bổ sung thêm các controller dạng như HelloControllerController1,HelloControllerController2, v.v.. (tương ứng với com_hello/controller1.php, com_hello/controller2.php, v.v..).Sau khi Controller được tạo ra, Controller sẽ chạy nhiệm vụ như được chỉ định trong URL:index.php?option=com_hello&task=sometask. Nếu không có nhiệm vụ nào được chỉ ra trong URL thì nhiệmvụ mặc định “display” sẽ được giả định. Khi nhiệm vụ “display” được sử dụng thì biến “view” sẽ quyết địnhcái gì được hiển thị. Ngoài ra còn các nhiệm vụ khác như “save”, “edit”, “new”, …Controller có thể quyết định thực hiện tải một trang (redirect), thông thường là sau khi một nhiệm vụnhư “save” được hoàn thành.KL: Điểm vào chính (hello.php) về bản chất đã thông qua việc điều khiển controller thực hiện các nhiệm vụđược đặt ra trong request.

Activity (9)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Ms.CeRes liked this
linhitc liked this
luandoson liked this
Ho Van Ngoc liked this
giaungocthach liked this
SakuraPham liked this
NhimKoi liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->