Trang 3 / 5 FirstFirst 12345 LastLast
Hiển thị kết quả từ 21 đến 30 / 42
  1. #21
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    TRANG CHỦ (PHẦN 18)

    Kể từ phần này tôi sẽ hướng dẫn các bạn thực hiện các trang người dùng (Front).

    Tại thư mục gốc (Root), các bạn tạo file index.php để viết mã lệnh xử lý trang chủ.

    Nội dung file index.php như sau:
    PHP Code:
    <?php
    //Require các file cần thiết
    require 'configs/Config.php';
    require 
    'models/Product.php';

    //Khởi tạo đối tượng sản phẩm (Product)
    $productModel = new Product();

    //Lấy danh sách 6 sản phẩm mới nhất
    $productLatestList $productModel->getLatestList();

    //Tiêu đề trang
    $title 'Trang chủ';

    //View
    $view 'home/home.tpl.php';

    //Require layout
    require 'views/front/layout.tpl.php';
    ?>
    Mở file models/Product.php và thêm vào lớp Product khối lệnh mới dưới đây:
    PHP Code:
    public function getLatestList($limit 6){
    //SQL
    $sql "SELECT * FROM tbl_product ORDER BY product_id DESC LIMIT 0, $limit";

    //Query
    $this->db->query($sql);

    //Tạo mãng lưu trữ
    $listProductLatest = array();

    //Fetch
    while($row $this->db->fetch()){
    //Khởi tạo đối tượng ProductObj
    $productObj = new ProductObj();

    //Gán thông tin
    $productObj->setProductId($row***91;'product_id'***93;);
    $productObj->setCategoryId($row***91;'category_id'***93;);
    $productObj->setName($row***91;'name'***93;);
    $productObj->setDetail($row***91;'detail'***93;);
    $productObj->setImage($row***91;'image'***93;);
    $productObj->setPrice($row***91;'price'***93;);
    $productObj->setStatus($row***91;'status'***93;);
    $productObj->setCreated($row***91;'created'***93;);
    $productObj->setModified($row***91;'modified'***93;);

    //Gán vào mãng lưu trữ
    $listProductLatest***91;***93; = $productObj;
    }

    //Return
    return $listProductLatest;

    Trong thư mục views/front, tạo mới file layout.tpl.php để trình bày layout của website.

    Nội dung file views/front/layout.tpl.php như sau:
    Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Website giới thiệu sản phẩm - <?php echo $title; ?></title>
    </head>
    <body>
    
    <?php require Config::BASE_PATH . 'views/front/' . $view; ?>
    
    </body>
    </html>
    Trong thư mục views/front, tạo mới thư mục tên là home để chứa các file trình bày giao diện trang chủ.

    Trong thư mục views/front/home, tạo mới file home.tpl.php để trình bày giao diện trang chủ.

    Nội dung file views/front/home/home.tpl.php như sau:
    Code:
    <?php foreach($productLatestList as $productLatest): ?>
    <div style="padding:10px;">
    <p>
    <img src="<?php echo Config::SITE_URL . 'userfiles/' . $productLatest->getImage(); ?>" />
    </p>
    <h4>
    <a  href="<?php echo Config::SITE_URL . 'product-detail.php?product_id='  . $productLatest->getProductId(); ?>"><?php echo  $productLatest->getName(); ?></a>
    </h4>
    <p><?php echo number_format($productLatest->getPrice(), 0, '', '.'); ?> VNĐ</p>
    </div>
    <?php endforeach; ?>
    Các bạn truy cập trang chủ theo địa chỉ http://localhost để kiểm tra.
    Lê Trung Hiếu - Lập Trình Web & Di Động

  2. #22
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    TRANG DANH SÁCH SẢN PHẨM (PHẦN 19)

    Tại thư mục gốc (Root), các bạn tạo mới file product-list.php để viết mã lệnh xử lý trang danh sách sản phẩm.

    Nội dung file product-list.php như sau:
    PHP Code:
    <?php
    //Require các file cần thiết
    require 'configs/Config.php';
    require 
    'models/Product.php';

    //Lấy category_id từ URL (Nếu có)
    $category_id = isset($_GET***91;'category_id'***93;) ? ((int)$_GET***91;'category_id'***93;) : null;

    //Khởi tạo đối tượng sản phẩm (Product)
    $productModel = new Product();

    //Lấy danh sách sản phẩm
    $productActiveList $productModel->getActiveList($category_id);

    //Tiêu đề trang
    $title 'Sản phẩm';

    //View
    $view 'product/list.tpl.php';

    //Require layout
    require 'views/front/layout.tpl.php';
    ?>
    Mở file models/Product.php và thêm vào lớp Product khối lệnh mới dưới đây:
    PHP Code:
    public function getActiveList($category_id){
    //SQL
    $sql "SELECT * FROM tbl_product WHERE status = 1";

    //Nếu lấy sản phẩm theo danh mục
    if($category_id != null){
    $sql .= " AND category_id = $category_id";
    }

    //Sắp xếp
    $sql .= " ORDER BY product_id DESC";

    //Query
    $this->db->query($sql);

    //Tạo mãng lưu trữ
    $listProductActive = array();

    //Fetch
    while($row $this->db->fetch()){
    //Khởi tạo đối tượng ProductObj
    $productObj = new ProductObj();

    //Gán thông tin
    $productObj->setProductId($row***91;'product_id'***93;);
    $productObj->setCategoryId($row***91;'category_id'***93;);
    $productObj->setName($row***91;'name'***93;);
    $productObj->setDetail($row***91;'detail'***93;);
    $productObj->setImage($row***91;'image'***93;);
    $productObj->setPrice($row***91;'price'***93;);
    $productObj->setStatus($row***91;'status'***93;);
    $productObj->setCreated($row***91;'created'***93;);
    $productObj->setModified($row***91;'modified'***93;);

    //Gán vào mãng lưu trữ
    $listProductActive***91;***93; = $productObj;
    }

    //Return
    return $listProductActive;

    Trong thư mục views/front, tạo mới thư mục tên là product để chứa các file trình bày giao diện các trang sản phẩm.

    Trong thư mục views/front/product, tạo mới file list.tpl.php để trình bày giao diện trang danh sách sản phẩm.

    Nội dung file views/front/product/list.tpl.php như sau:
    Code:
    <?php foreach($productActiveList as $productActive): ?>
    <div style="padding:10px;">
    <p>
    <img src="<?php echo Config::SITE_URL . 'userfiles/' . $productActive->getImage(); ?>" />
    </p>
    <h4>
    <a  href="<?php echo Config::SITE_URL . 'product-detail.php?product_id='  . $productActive->getProductId(); ?>"><?php echo  $productActive->getName(); ?></a>
    </h4>
    <p><?php echo number_format($productActive->getPrice(), 0, '', '.'); ?> VNĐ</p>
    </div>
    <?php endforeach; ?>
    Các bạn truy cập trang danh sách sản phẩm theo địa chỉ http://localhost/product-list.php để kiểm tra.
    Lê Trung Hiếu - Lập Trình Web & Di Động

  3. #23
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    TRANG CHI TIẾT SẢN PHẨM (PHẦN 20)

    Tại thư mục gốc (Root), các bạn tạo mới file product-detail.php để viết mã lệnh xử lý trang chi tiết sản phẩm.

    Nội dung file product-detail.php như sau:
    PHP Code:
    <?php
    //Require các file cần thiết
    require 'configs/Config.php';
    require 
    'models/Product.php';

    //Lấy product_id từ URL
    $product_id = isset($_GET***91;'product_id'***93;) ? ((int)$_GET***91;'product_id'***93;) : 0;

    //Khởi tạo đối tượng sản phẩm (Product)
    $productModel = new Product();

    //Lấy thông tin sản phẩm
    $productActive $productModel->getActiveById($product_id);

    //Tiêu đề trang
    $title 'Chi tiết sản phẩm';

    //View
    $view 'product/detail.tpl.php';

    //Require layout
    require 'views/front/layout.tpl.php';
    ?>
    Mở file models/Product.php và thêm vào lớp Product khối lệnh mới dưới đây:
    PHP Code:
    public function getActiveById($product_id){
    //SQL
    $sql "SELECT * FROM tbl_product WHERE status = 1 AND product_id = $product_id";

    //Query
    $this->db->query($sql);

    //Fetch
    $this->db->fetch()

    //Khởi tạo đối tượng ProductObj
    $productObj = new ProductObj();

    //Gán thông tin
    $productObj->setProductId($row***91;'product_id'***93;);
    $productObj->setCategoryId($row***91;'category_id'***93;);
    $productObj->setName($row***91;'name'***93;);
    $productObj->setDetail($row***91;'detail'***93;);
    $productObj->setImage($row***91;'image'***93;);
    $productObj->setPrice($row***91;'price'***93;);
    $productObj->setStatus($row***91;'status'***93;);
    $productObj->setCreated($row***91;'created'***93;);
    $productObj->setModified($row***91;'modified'***93;);

    //Return
    return $productObj;

    Trong thư mục views/front/product, tạo mới file detail.tpl.php để trình bày giao diện trang chi tiết sản phẩm.

    Nội dung file views/front/product/detail.tpl.php như sau:
    Code:
    <div style="padding:10px;">
    <p>
    <img src="<?php echo Config::SITE_URL . 'userfiles/' . $productActive->getImage(); ?>" />
    </p>
    <h4><?php echo $productActive->getName(); ?></h4>
    <p><?php echo number_format($productActive->getPrice(), 0, '', '.'); ?> VNĐ</p>
    </div>
    Các bạn truy cập trang danh sách sản phẩm, sau đó nhấp vào tên sản phẩm để truy cập trang chi tiết sản phẩm.
    Lê Trung Hiếu - Lập Trình Web & Di Động

  4. #24
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    MENU (PHẦN 21)

    Menu website bao gồm hai nhóm menu chính:

    - Trang chủ: Liên kết tới trang chủ website.
    - Sản phẩm: Liên kết tới trang danh sách sản phẩm. Trong menu sản phẩm sẽ có các menu con tương ứng với các danh mục sản phẩm. Các menu con này được lấy động từ DB (Cụ thể là bảng tbl_category).

    Các bạn mở các file xử lý index.php, product-list.php, product-detail.php và chỉnh sửa lại như sau:

    - Ngay trước dòng lệnh "require 'models/Product.php';", các bạn thêm mới dòng lệnh sau:
    PHP Code:
    require 'models/Category.php'
    - Ngay trước dòng "//Tiêu đề trang", các bạn thêm mới khối lệnh sau:
    PHP Code:
    //Khởi tạo đối tượng Category
    $categoryModel = new Category();

    //Lấy danh sách danh mục sản phẩm
    $categoryActiveList $categoryModel->getActiveList(); 
    Mở file views/front/layout.tpl.php và thêm vào sau thẻ <body> khối lệnh sau:
    Code:
    <div style="padding:10px;">
    <ul>
    <li>
    <a href="<?php echo Config::SITE_URL; ?>">Trang chủ</a>
    </li>
    </ul>
    
    <ul>
    <li>
    <a href="<?php echo Config::SITE_URL . 'product-list.php'; ?>">Sản phẩm</a>
    </li>
    <?php foreach($categoryActiveList as $categoryActive): ?>
    <li>
    <a  href="<?php echo Config::SITE_URL . 'product-list.php?category_id=' .  $categoryActive->getCategoryId(); ?>"><?php echo  $categoryActive->getName(); ?></a>
    </li>
    <?php endforeach; ?>
    </ul>
    </div>
    Như vậy, đây là phần cuối cùng về loạt bài "Từng bước học lập trình PHP nâng cao qua dự án website giới thiệu sản phẩm". Với hai loạt bài về lập trình PHP từ cơ bản đến nâng cao tôi đã hướng dẫn, hi vọng các bạn có thêm kiến thức để có thể tự tìm hiểu, nghiên cứu PHP chuyên sâu.

    Mọi vấn đề liên quan tới loạt bài hướng dẫn này, các bạn vui lòng gửi bình luận tại trang Google+ của tôi tại địa chỉ https://plus.google.com/103116221369826139041.

    Chân thành cảm ơn sự quan tâm của các bạn!
    Lê Trung Hiếu - Lập Trình Web & Di Động

  5. #25
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    Cho các bạn quan tâm.
    Lê Trung Hiếu - Lập Trình Web & Di Động

  6. #26
    Tham gia
    08-10-2014
    Bài viết
    8
    Like
    0
    Thanked 5 Times in 4 Posts
    Học được hết cái này chắc tiêu luôn qá, nhìn mấy cái code thôi là muốn bùn ngủ.. hic nhưng phải cố thôi

  7. #27
    Tham gia
    08-10-2014
    Bài viết
    8
    Like
    0
    Thanked 5 Times in 4 Posts
    cái này là từ A đến Z hả ad ?

  8. #28
    Tham gia
    27-08-2015
    Bài viết
    531
    Like
    402
    Thanked 19 Times in 16 Posts
    Nhiều quá, bạn nên biên tập thành ebook, có cả hình mình họa thì tốt biết mấy, ai xem, down, học, share cũng tiện hơn.
    Phienmua.vn <--- Mô hình TMĐT đột phá

  9. #29
    Tham gia
    28-10-2015
    Bài viết
    15
    Like
    2
    Thanked 0 Times in 0 Posts
    thank filiallion !

  10. #30
    Tham gia
    22-10-2014
    Bài viết
    103
    Like
    0
    Thanked 12 Times in 11 Posts
    Các bạn copy code paste vào bộ editor như Netbeans, Zend Studio hay một số bộ editor khác để format lại code cho dễ đọc. Tôi cũng cần lưu ý với các bạn muốn học theo bài viết này thì nên học từng phần và tự gõ lại code của tôi vì vậy tôi sẽ không share source cho các bạn.
    Lê Trung Hiếu - Lập Trình Web & Di Động

Trang 3 / 5 FirstFirst 12345 LastLast

Tags for this Thread

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •