intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

LẬP TRÌNH WEB CHUYÊN SÂU VỚI CMS JOOMLA_Bài 8

Chia sẻ: Mr. Lonely | Ngày: | Loại File: PDF | Số trang:30

194
lượt xem
70
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Model: là những gì liên quan đến dữ liệu của ứng dụng. Model sẽ chịu trách nhiệm thao tác trực tiếp với database như truy xuất, cập nhật, thêm mới. Model sẽ lấy thông tin và trả về cho View, nó cũng sẽ chịu trách nhiệm thông báo cho Controller những thay đổi dữ liệu nếu có. View: View sẽ chịu trách nhiệm hiển thị thông tin. Ta có thể xem View như các trang web, hoặc các form trong ứng dụng windows.

Chủ đề:
Lưu

Nội dung Text: LẬP TRÌNH WEB CHUYÊN SÂU VỚI CMS JOOMLA_Bài 8

  1. TRUNG TÂM TIN HỌC ĐẠI HỌC KHOA HỌC TỰ NHIÊN-TP.HCM LẬP TRÌNH WEB CHUYÊN SÂU VỚI CMS JOOMLA 1
  2. TRUNG TÂM TIN HỌC ĐẠI HỌC KHOA HỌC TỰ NHIÊN-TP.HCM Bài 8: Component theo mô hình MVC Giới thiệu mô hình MVC 1. 2. Mô hình MVC trong Joomla Tạo MVC Component 3. 2
  3. Bài 8: Component theo mô hình MVC 1. Giới thiệu mô hình MVC Model: là những gì liên quan đến § dữ liệu của ứng dụng. Model sẽ chịu trách nhiệm thao tác trực tiếp với database như truy xuất, cập nhật, thêm mới. Model sẽ lấy thông tin và trả về cho View, nó cũng sẽ chịu trách nhiệm thông báo cho Controller những thay đổi dữ liệu nếu có. View: View sẽ chịu trách nhiệm § hiển thị thông tin. Ta có thể xem View như các trang web, hoặc các form trong ứng dụng windows. Controller: là những lớp sẽ lắng § nghe những thao tác chuột và bàn phím từ người dùng, nó sẽ tác động đến Model và View để thay đổi khi cần thiết. 3
  4. Bài 8: Component theo mô hình MVC 2. Mô hình MVC trong Joomla § Đa số các component ở Front End được phát triển theo mô hình MVC § Joomla cung cấp 1 framework giúp ta sẽ dàng xây dựng các component theo mô hình MVC – Cung cấp các class JModel, JView, JController giúp ta xây dựng Model, View và Controller dễ dàng hơn. – Nếu tuân thủ quy tắc đặt tên cho Model, View, Controller thì ta sẽ dễ dàng truy xuất qua lại giữa các lớp. Ví dụ: View truy xuất dữ liệu từ Model. 4
  5. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Các bước để tạo 1 component theo mô hình MVC: – Khởi tạo component • Tạo cấu trúc cây thư mục • Khởi tạo code cho các file của component – Thêm 1 chức năng vào component • Thêm code vào file controller • Tạo file model (nếu cần) • Tạo view 5
  6. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo component – Tạo cấu trúc cây thư mục Giải thích: models: chứa các model • Tables: chứa các class kế thừa lớp • JTable, lớp này dùng để xử lý dữ liệu của 1 bảng. views: chứa các view. Mỗi view là một • thư mục. Trong thư mục có ít nhất các tập tin và thư mục như hình. controller.php: file xử lý controller • tencom.php: file khởi động component • ( nếu là com back end thì admin.tencom.php) 6
  7. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo component – Tạo cấu trúc cây thư mục Ví dụ: tạo com_chu_de 7
  8. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo Component – Khởi tạo code cho file controller.php. • Quy ước đặt tên class controller: + Controller Ví dụ: com_tencom thì tên class controller là: TenComController 8
  9. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo Component – Khởi tạo code cho file controller.php: Copy code bên dưới và sửa lại TenCom và TenView (cho biết trang khởi động của component) defined('_JEXEC') or die('Restricted access'); jimport('joomla.application.component.controller'); class TenComController extends JController { function display(){ parent::display(); } } 9
  10. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo Component – Khởi tạo code cho file khởi động (tencom.php): Copy đoạn code bên dưới và sửa lại tên class controller. defined('_JEXEC') or die('Restricted access'); require_once (JPATH_COMPONENT.DS.'controller.php'); $controller = new TenComController(); $controller->execute( JRequest::getVar('task')); $controller->redirect(); 10
  11. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo Component – Khởi tạo code cho view mặc định của com, nghĩa là khi ta truy xuất com: index.php?option=com_tencom thì view mặc định sẽ hiển thị. • Trong file view.html.php, tạo class cho View • Quy ước đặt tên class: TenCom + View + TenView Ví dụ: tạo view hello cho com_tencom thì tên class của view là TenComViewHello 11
  12. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Khởi tạo Component – Khởi tạo code file view.html.php: copy code bên dưới và sửa lại tên view. defined('_JEXEC') or die('Restricted access'); jimport( 'joomla.application.component.view'); class TenComViewTenView extends JView{ function display($tpl = null){ parent::display($tpl); } } 12
  13. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Thêm 1 chức năng vào component Các bước thực hiện: – Bước 1: Thêm code vào file controller để xử lý chức năng cần thêm – Bước 2: Tạo model (nếu cần) chứa các hàm xử lý dữ liệu và nghiệp vụ. – Bước 3: Tạo view để hiển thị giao diện. Trong view sẽ gọi các hàm của model để xử lý dữ liệu và nghiệp vụ. 13
  14. Bài 8: Component theo mô hình MVC 3. Tạo MVC Component § Thêm 1 chức năng vào component – Ví dụ 1: thêm chức năng hiển thị danh sách các chủ đề – Ta sẽ truy xuất chức năng này thông qua url = index.php?option=com_chu_de&task=dschu_ de 14
  15. Bài 8: Component theo mô hình MVC Hiển thị danh sác chủ đề § Bước 1: thêm vào controller.php hàm xử lý cho task=dschude defined('_JEXEC') or die('Restricted access'); jimport('joomla.application.component.controller'); class ChuDeController extends JController { function display(){ parent::display(); } function dschude() { //chọn view hiển thị JRequest::setVar(‘view’,’chude’); parent::display(); } } 15
  16. Bài 8: Component theo mô hình MVC Hiển thị danh sác chủ đề § Bước 2: Tạo model chứa các hàm xử lý dữ liệu và nghiệp vụ. – Model chứa 1 class kế thừa class JModel – Quy ước đặt tên class: TenCom + Model + TenView Ví dụ: tạo model cho View dskhachang của com_khach_hang thì tên class sẽ là Khach_hangModelDSKhachHang 16
  17. Bài 8: Component theo mô hình MVC JModel § Các phương thức thường dùng – static addIncludePath( path : string='' ) : array – &getDBO( ) : JDatabase – static &getInstance( type : string, prefix : string='' ) : JModel – &_getList( query : string, limitstart : int =0, limit : int=0 ) : array 17
  18. Bài 8: Component theo mô hình MVC JModel § Ví dụ: thực hiện truy vấn trong JModel defined('_JEXEC') or die('Restricted access'); jimport( 'joomla.application.component.model' ); class Chu_deModelChu_de extends JModel { function getData(){ $lenhsql = “SELECT * FROM #__chu_de”; $data = $this->_getList($lenhsql); /* hoặc $db =& $this->getDBO(); $db->setQuery($lenhsql); $data = $db->loadObjectList(); */ return $data; } } 18
  19. Bài 8: Component theo mô hình MVC JModel § Ví dụ: truy xuất model chu_de và gọi các phương thức của model jimport( 'joomla.application.component.model' ); JModel::addIncludePath(“duong_dan_den_model_chu_de”); $model =& JModel::getInstance(“Chu_de”,”Chu_deModel”); $data = $model->getData(); 19
  20. Bài 8: Component theo mô hình MVC Hiển thị danh sác chủ đề § Bước 2: trong thư mục models, tạo file chu_de.php chứa model chu_de defined('_JEXEC') or die('Restricted access'); jimport( 'joomla.application.component.model' ); class Chu_deModelChu_de extends JModel { function getData(){ $query = ' SELECT * FROM #__chu_de'; $data = $this->_getList($query); return $data; } } 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2