Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 6-Bài 1. Thiết kế bố cục (layouts) cho giao diện Frontend

Tác giả: Dương Nguyễn Phú Cường #8158
Ngày đăng: Hồi xưa đó
Lượt xem: 282

Step 1: tạo layouts cho Frontend

  • Tạo thư mục templates\frontend
  • Tạo file cấu trúc chính templates\frontend\layout.html.twig
<!doctype html>
<html lang="vi" class="h-100">

<head>
  <!-- Required meta tags -->
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <!-- Bootstrap CSS -->
  <link rel="stylesheet" href="/assets/vendor/bootstrap/css/bootstrap.min.css" type="text/css" />
  <!-- Font awesome -->
  <link rel="stylesheet" href="/assets/vendor/font-awesome/css/font-awesome.min.css" type="text/css" />

  <!-- Custom css - Các file css do chúng ta tự viết -->
  <link rel="stylesheet" href="/assets/frontend/css/style.css" type="text/css" />

  <!-- Block title - Đục lỗ trên giao diện bố cục chung, đặt tên là `title` -->
  <title>Nền tảng - Kiến thức cơ bản về WEB |
    {% block title %}
    {% endblock %}
  </title>
  <!-- End block title -->

  <!-- Block custom-styles - Đục lỗ trên giao diện bố cục chung, đặt tên là `custom-styles` -->
  {% block customstyles %}
  {% endblock %}
  <!-- End block custom-styles -->
</head>

<body>
  <!-- header -->
  {{ include('frontend/layouts/includes/header.html.twig') }}
  <!-- end header -->
  <main role="main">
    <!-- Block content - Đục lỗ trên giao diện bố cục chung, đặt tên là `content` -->
    {% block content %}
    {% endblock %}
    <!-- End block content -->
  </main>

  <!-- footer -->
  {{ include('frontend/layouts/includes/footer.html.twig') }}
  <!-- end footer -->

  <!-- Optional JavaScript -->
  <!-- jQuery first, then Popper.js, then Bootstrap JS -->
  <script src="/assets/vendor/jquery/jquery.min.js"></script>
  <script src="/assets/vendor/popperjs/popper.min.js"></script>
  <script src="/assets/vendor/bootstrap/js/bootstrap.min.js"></script>
  <script src="/assets/vendor/feather/feather.min.js"></script>

  <!-- Custom script - Các file js do mình tự viết -->
  <script src="/assets/frontend/js/app.js"></script>

  <!-- Block custom-scripts - Đục lỗ trên giao diện bố cục chung, đặt tên là `custom-scripts` -->
  {% block customscripts %}
  {% endblock %}
  <!-- End block custom-scripts -->
</body>

</html>
  • Chúng ta sẽ tách phần giao diện header ra file riêng.
  • Tạo thư mục templates\frontend\layouts\includes\
  • Tạo file templates\frontend\layouts\includes\header.html.twig`
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <div class="container">
        <a class="navbar-brand" href="https://nentang.vn">Nền tảng</a>
        <div class="navbar-collapse collapse" id="navbarCollapse" style="">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item active">
                    <a class="nav-link" href="/">Trang chủ <span class="sr-only">(current)</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/backend/pages/dashboard.php">Quản trị</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/frontend/product/list.php">Sản phẩm</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/frontend/pages/about.php">Giới thiệu</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="/frontend/pages/contact.php">Liên hệ</a>
                </li>
            </ul>
            <form class="form-inline mt-2 mt-md-0" method="get" action="/frontend/product/search.php">
                <input class="form-control mr-sm-2" type="text" placeholder="Tìm kiếm" aria-label="Search"
                    name="keyword_tensanpham">
                <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Tìm kiếm</button>
            </form>
        </div>
        <ul class="navbar-nav px-3">
            <li class="nav-item text-nowrap">
                <a class="nav-link" href="/frontend/checkout/cart.php">Giỏ hàng</a>
            </li>
            <li class="nav-item text-nowrap">
                {% if session['email'] %}
                <!-- Nếu đã đăng nhập thì hiển thị Thông tin Tài khoản -->
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                      Cá nhân
                    </a>
                    <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                      <a class="dropdown-item" href="#">Thông tin</a>
                      <a class="dropdown-item" href="#">Danh sách Đặt hàng</a>
                      <div class="dropdown-divider"></div>
                      <a class="dropdown-item" href="/frontend/auth/logout.php">Đăng xuất</a>
                    </div>
                </li>
                {% else %}
                <!-- Nếu chưa đăng nhập thì hiển thị nút Đăng nhập -->
                <a class="nav-link" href="/frontend/auth/login.php">Đăng nhập</a>
                {% endif %}
            </li>
        </ul>
    </div>
</nav>
  • Tạo file templates\frontend\layouts\includes\footer.html.twig`
<footer class="footer mt-auto py-3">
    <div class="container">
        <span>Bản quyền &copy; bởi <a href="https://nentang.vn">Nền Tảng</a> - <script>document.write(new Date().getFullYear());</script>.</span>
        <span class="text-muted">Hành trang tới Tương lai</span>

        <p class="float-right">
            <a href="#">Về đầu trang</a>
        </p>
    </div>
</footer>
 

Chương trình học


  1. Bức tranh tổng thể về Lập trình WEB 1
    1. Sơ đồ vận hành của một Website #1311
  2. Cài đặt môi trường Lập trình PHP 1
    1. Các chương trình cần thiết để Lập trình Web #8136
  3. Thực hiện Dự án PHP thực tế mẫu - sử dụng TWIG template
  4. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế CSDL 3
    1. Mô hình thiết kế CSDL mẫu NetaShop #7896
    2. Tạo cấu trúc (schema) database netashop #7897
    3. Tạo dữ liệu mẫu (data seed / dummy data) cho netashop #7898
  5. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế Backend 6
    1. Thiết kế bố cục (layouts) cho giao diện Backend #7900
    2. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) danh mục phẳng #8180
    3. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) danh mục có liên kết khóa ngoại #8183
    4. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) upload hình Sản phẩm (upload đơn, mỗi lần 1 file) #8186
    5. Tạo API lấy dữ liệu báo cáo thống kê #8194
    6. Tạo trang Dashboard #8199
  6. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế Frontend 11
    1. Thiết kế bố cục (layouts) cho giao diện Frontend #8158
    2. Thực hiện Trang chủ Frontend #8160
    3. Thực hiện Trang Đăng nhập Login #8164
    4. Thực hiện Trang Đăng ký Register #8167
    5. Thực hiện chức năng Kích hoạt Tài khoản #8174
    6. Thực hiện Trang Liên hệ (có gởi mail thông báo) #8178
    7. Thực hiện chức năng Đăng xuất #8192
    8. Thực hiện Trang chi tiết Sản phẩm #8213
    9. Thực hiện Xử lý cho phép Đặt hàng trong trang Chi tiết Sản phẩm #8215
    10. Thực hiện Trang Giỏ hàng #8218
    11. Thực hiện Trang tìm kiếm Sản phẩm #8225
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Bức tranh tổng thể về Lập trình WEB 1
    1. Sơ đồ vận hành của một Website #1311
  2. Cài đặt môi trường Lập trình PHP 1
    1. Các chương trình cần thiết để Lập trình Web #8136
  3. Thực hiện Dự án PHP thực tế mẫu - sử dụng TWIG template
  4. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế CSDL 3
    1. Mô hình thiết kế CSDL mẫu NetaShop #7896
    2. Tạo cấu trúc (schema) database netashop #7897
    3. Tạo dữ liệu mẫu (data seed / dummy data) cho netashop #7898
  5. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế Backend 6
    1. Thiết kế bố cục (layouts) cho giao diện Backend #7900
    2. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) danh mục phẳng #8180
    3. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) danh mục có liên kết khóa ngoại #8183
    4. Tạo chức năng CRUD (Thêm, Sửa, Xóa, Xem) upload hình Sản phẩm (upload đơn, mỗi lần 1 file) #8186
    5. Tạo API lấy dữ liệu báo cáo thống kê #8194
    6. Tạo trang Dashboard #8199
  6. Dự án thực tế mẫu (TWIG template) - Trang web bán hàng trực tuyến - Thiết kế Frontend 11
    1. Thiết kế bố cục (layouts) cho giao diện Frontend #8158
    2. Thực hiện Trang chủ Frontend #8160
    3. Thực hiện Trang Đăng nhập Login #8164
    4. Thực hiện Trang Đăng ký Register #8167
    5. Thực hiện chức năng Kích hoạt Tài khoản #8174
    6. Thực hiện Trang Liên hệ (có gởi mail thông báo) #8178
    7. Thực hiện chức năng Đăng xuất #8192
    8. Thực hiện Trang chi tiết Sản phẩm #8213
    9. Thực hiện Xử lý cho phép Đặt hàng trong trang Chi tiết Sản phẩm #8215
    10. Thực hiện Trang Giỏ hàng #8218
    11. Thực hiện Trang tìm kiếm Sản phẩm #8225

Bài học trước Bài học tiếp theo