Hướng dẫn tạo website tin tức phần 21: Tạo header và footer front-end

Hướng dẫn tạo website tin tức phần 21: Tạo header và footer front-end là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Hướng dẫn tạo website tin tức phần 21: Tạo header và footer front-end sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và PHP nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Hello, chào mừng các bạn đã quay trở lại với series hướng dẫn xây dựng trang tin tức PHP. Ở trong bài học trước, chúng ta đã kết nối database và viết rewrite url cho client. Bài học hôm nay, mình sẽ hướng dẫn các bạn xây dựng header và footer cho client. Bài viết này sẽ nghiêng về HTML nhiều hơn. Không luyên thuyên nữa, chúng ta bắt đầu ngay thôi.

1. Xây dựng header admin

Vì đây là series hướng dẫn code chứng năng, vì thế mình sẽ không đề cập đến vấn đề SEO, nên trong cặp thẻ head của client mình chỉ khai báo những thẻ thiết yếu cho project thôi. Nếu bạn nào muốn tìm hiểu SEO, hãy tham khảo series này.

Trước tiên chúng ta cần lấy các thông tin của website ở table website. Các bạn mở file core/init.php lên và chèn tiếp đoạn code này vào:

$_DOMAIN = 'http://localhost/newspage/';
// Lấy thông tin website
$sql_get_data_web = "SELECT * FROM website";
if ($db->num_rows($sql_get_data_web)) {
    $data_web = $db->fetch_assoc($sql_get_data_web, 1);
}
//Bây giờ chúng ta sẽ bắt đầu code cho phần header. Các bạn mở file includes/header.php lên và copy nội dung này vào:
<?php
 
$title_error_404 = 'Không tìm thấy trang';
 
// Url bài viết
if (isset($_GET['sp']) && isset($_GET['id'])) {
    $slug_post = trim(htmlspecialchars($_GET['sp']));
    $id_post = trim(htmlspecialchars($_GET['id']));
 
    // Kiểm tra bài viết tồn tại
    $sql_check_post = "SELECT id_post, slug, title FROM posts WHERE slug = '$slug_post' AND id_post = '$id_post'";
    if ($db->num_rows($sql_check_post)) {
        $data_post = $db->fetch_assoc($sql_check_post, 1);
 
        $title = $data_post['title'];
        // ...
    } else {
        $title = $title_error_404;
    }
// Url chuyên mục
} else if (isset($_GET['sc'])) {
    $slug_cate = trim(htmlspecialchars($_GET['sc']));
 
    // Kiểm tra chuyên mục tồn tại
    $sql_check_cate = "SELECT url, label FROM categories WHERE url = '$slug_cate'";
    if ($db->num_rows($sql_check_cate)) {
        $data_cate = $db->fetch_assoc($sql_check_cate, 1);
 
        $title = $data_cate['label'];
        // ...
    } else {
        $title = $title_error_404;
    }
} else {
    $title = $data_web['title'];
    // ...
}
 
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo $title; ?></title>
    <!-- ... -->
 
    <link rel="stylesheet" href="<?php echo $_DOMAIN; ?>admin/bootstrap/css/bootstrap.min.css">
</head>
<body>


  • Ở trong bài trước chúng ta đã cùng rewrite url của các link bài viết, chuyên mục rồi, vì thế để muốn lấy title cho website chúng ta cần kiểm tra các điều kiện như sau:Nếu có tham số spid => Link bài viết => Lấy title bài viết
  • Nếu có tham số sc => Link chuyên mục => Lấy nhãn chuyên mục
  • Không có tham số => Link trang chủ => Lấy title website

Ngoài ra các bạn để ý trong đoạn code trên mình có comment "..." ở một số chỗ, đây là bài tập dành cho các bạn :v Việc làm rất đơn giản, ngoài title ra các bạn chỉ cần xử lý thêm các thành phần khác như description, keyword,... Trường hợp khi bài viết hoặc chuyên mục không tồn tại thì ở các thành phần đó các bạn có thể lấy dữ liệu của table website.

2. Xây dựng footer admin

Chúng ta sẽ code ỏ file includes/footer.php. Phần này thì vô cùng đơn giản, các bạn chỉ include các thư viện js cần thiết vào thôi:

 <script src="<?php echo $_DOMAIN; ?>admin/bootstrap/js/bootstrap.min.js"></script>
        <script src="<?php echo $_DOMAIN; ?>admin/js/jquery.min.js"></script>
    </body>
</html> 


Bây giờ các bạn chạy thì chưa có gì đâu :v Các bạn cần thực hiện một thao tác nhỏ nữa...3. Include các file vào index

Các bạn mở file index.php lên và paste đoạn code này vào:

<?php
 
// Kết nối database 
require 'core/init.php';
 
// Header
require 'includes/header.php';
 
// Content
require 'templates/content.php';
 
// Footer
require 'includes/footer.php';
 
?> 

Việc cuối cùng là tạo 1 file templates/content.php nữa là xong, chúng ta sẽ code nó vào bài tiếp theo. Giờ thì OK rồi đấy, các bạn chạy lại và view source xem đã được kết quả như hình bên dưới không: Ngoài ra các bạn có thể nhập các link bài viết, chuyên mục để test xem code có hoạt động không nhé!

4. Lời kết

Kết thúc bài này ở đây, mình hi vọng các bạn đã nắm được cách kiểm tra tiêu đề web qua các dạng link. Qua bài sau, chúng ta sẽ đi xây dựng các layout client cho ứng dụng này. Nếu có thắc mắc gì các bạn cứ comment bên dưới hoặc đăng trên group kèm theo link bài viết để được hỗ trợ sớm nhất. Cảm ơn các bạn đã theo dõi, chúc các bạn thành công!

Hy vọng với bài viết về Hướng dẫn tạo website tin tức phần 21: Tạo header và footer front-end đã giải đáp giúp bạn phần nào về kiến thức lập trình PHP. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!