Top Ad unit 728 × 90

Xây dựng MY_Controller

Xin chào các bạn!




Hôm trước mình cũng đã cùng các bạn đi xây dựng giao diện của các  trang như quản trị của quản trị viên và trang giao diện người dùng đúng không nào? (xem lại xây dựng giao diện trang quản trịxây dựng giao diện của trang người dùng).

Hôm nay chúng ta tiếp tục đi xây dựng file MY_Controller giúp chúng ta kiểm soát toàn hệ thống của mình và dễ dàng chỉnh sửa nhé!

OK! Bắt đầu nào!



Để các bạn có thể tạo được file MY_Controller.php thì các bạn vào đường dẫn như sau: application/core/ và tạo một file MY_Controller.php . Các bạn chú ý nhé trong phần tên file mình chia thành 2 phần thì cái phần mà mình tô đậm là phần bắt buộc phải viết như vậy và nếu các bạn muốn thay đổi theo ý của mình thì các bạn vào config/config.php rồi tìm đến dòng 117 trong file đó để thay đổi theo ý của mình, còn ở đây mình sẽ để nguyên.

Ok! Miên man vậy thôi chúng ta vào phần chính nhé!

Khi tạo file xong chúng ta sẽ tạo 1 lớp kế thừa từ CI_Controller:

<?php
        class MY_Controller extends CI_Controller{
             
        }
?>

Bên trong lớp này chúng ta tạo hàm construct(). Tác dụng của hàm này chắc các bạn đều biết nên mình sẽ không nói ở đây.

Các bạn cùng đi tạo giống mình nhé!

<?php

        class MY_Controller extends CI_Controller{

              public $data = array();// khởi tạo biến trung gian để truyền dữ liệu sang view

                        function __construct(){

                             parent::__construct(); // kế thừa từ CI_Controller

                             // lấy link

                             $controller = $this->uri->rsegment(1);

                             switch($controller){

                                 case "admin":

                                      $this->load->helper(); // tạo tại helpers với nội dung trả về là link của trang admin

                                       $this->_check_login(); // dùng để kiểm tra xem quản trị viên đã đăng nhập chưa.

                                       $login = $this->session->userdata('login'); // lấy dữ liệu từ session

                                       $this->load-> model('admin_model'); // phần này các bạn có thể xem tại đây!

                                       $admin_info = $this->admin_model->get_info($login['id']);

                                       $this->data['admin_info'] = $admin_info;

                                       break; 

                                   default:

                                      $this->load->model('catalog_model');
                                      $input = array();
                                      $input['where'] = array('parent_id' => 0);
                                      $catalog_list = $this->catalog_model->get_list($input);
                                      foreach ($catalog_list as $row)
                                     {
                                            $input['where'] = array('parent_id' => $row->id);
                                            $subs = $this->catalog_model->get_list($input);
                                            $row->subs = $subs;
                                       }
                                       $this->data['catalog_list'] = $catalog_list;
                                       $this->load->model('news_model');
                                       $input = array();
                                       $input['limit'] = array(5, 0);
                                       $news_list = $this->news_model->get_list($input);
                                      $this->data['news_list'] = $news_list;

                              }

                        }


                         private function _check_login()
                         {
                               $controller = $this->uri->rsegment('1');
                               $controller = strtolower($controller);
   
                               $login = $this->session->userdata('login');
                               //neu ma chua dang nhap,ma truy cap 1 controller khac login
                               if(!$login && $controller != 'login')
                               {
                                   redirect(admin_url('login'));
                               }
                              //neu ma admin da dang nhap thi khong cho phep vao trang login nua.
                             if($login && $controller == 'login')
                             {
                                   redirect(admin_url('home'));
                                }
                       }

        }

?>

Vậy là mình cùng các bạn đã tạo thành công file MY_Controller rồi!
Chúc các bạn thành công!


Nhớ share cho bạn bè ủng hộ mình để mình có thêm động lực viết những tiếp theo hay hơn các bạn nhé! Mình cảm ơn các bạn nhé!

Xem thêm:


  1. Xây dựng cơ sở dữ liệu cho trang tin tức
Xây dựng MY_Controller Reviewed by Thế Giới Tri Thức on tháng 10 05, 2017 Rating: 5

Không có nhận xét nào:

All Rights Reserved by THẾ GIỚI TRI THỨC © 2018
Thiết kế bởi: THẾ GIỚI TRI THỨC

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.