Hướng dẫn tạo website tin tức phần 14: Tạo chức năng lưu trữ cài đặt trong admin 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 14: Tạo chức năng lưu trữ cài đặt trong admin 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.
Xin chào tất cả các bạn, 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 bằng PHP. Ở trong bài trước, chúng ta đã hoàn thiện các chức năng liên quan đến bài viết, trong bài học ngày hôm nay, mình sẽ hướng dẫn các bạn xây dựng các chức năng cài đặt, chỉnh sửa thông tin cho ứng dụng. Chúng ta bắt tay vào làm thôi nhé!
Đây là một số chức năng liên quan đến hoạt động và các thông tin về SEO của ứng dụng như tiêu đề, mô tả, từ khoá,...
Các đặc điểm và chức năng trong phần này là:
Các bạn tạo table website và chạy lệnh SQL dưới đây:
CREATE TABLE `website` ( `title` text COLLATE utf8_unicode_ci NOT NULL, `descr` longtext COLLATE utf8_unicode_ci NOT NULL, `keywords` text COLLATE utf8_unicode_ci NOT NULL, `status` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; INSERT INTO `website` (`title`, `descr`, `keywords`, `status`) VALUES ('Newspage', '', '', 0);
Trong đó:
title
: tiêu đề websitedescr
: mô tả websitekeywords
: từ khoá websitestatus
: trạng thái websitestatus = 0
: Không hoạt độngstatus = 1
: Hoạt độngMình đã insert sẵn 2 field title và status luôn rồi nhé!
Các bạn mở file admin/templates/setting.php lên và chèn đoạn code này vào:
<?php // Nếu đăng nhập if ($user) { // Nếu tài khoản là tác giả if ($data_user['position'] == 0) { echo '<div class="alert alert-danger">Bạn không có đủ quyền để vào trang này.</div>'; } // Ngược lại tài khoản là admin else if ($data_user['position'] == 1) { echo '<h3>Cài đặt chung</h3>'; // Mở/đóng hoạt động website // Chỉnh sửa thông tin website } } else { new Redirect($_DOMAIN); // Trở về trang index } ?>
Chức năng này sẽ thay đổi trạng thái của website (đóng hoặc mở) dựa vào field status ở table website, thường dùng khi trong quá trình bảo trìn hay nâng cấp.
Mở file admin/templates/setting.php và copy đoạn code này bên dưới dòng // Mở/đóng hoạt động website:
echo ' <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Trang thái hoạt động</h3> </div> <div class="panel-body"> <form method="POST" id="formStatusWeb" onsubmit="return false;"> '; // Trạng thái website $sql_get_stt_web = "SELECT status FROM website"; if ($db->num_rows($sql_get_stt_web)) { $data_web = $db->fetch_assoc($sql_get_stt_web, 1); if ($data_web['status'] == '0') { echo ' <div class="radio"> <label><input type="radio" value="1" name="stt_web"> Mở</label> </div> <div class="radio"> <label><input type="radio" value="0" name="stt_web" checked> Đóng</label> </div> '; } else if ($data_web['status'] == '1') { echo ' <div class="radio"> <label><input type="radio" value="1" name="stt_web" checked> Mở</label> </div> <div class="radio"> <label><input type="radio" value="0" name="stt_web"> Đóng</label> </div> '; } } echo ' <button type="submit" class="btn btn-primary">Lưu</button><br><br> <div class="alert alert-danger hidden"></div> </form> </div> </div> ';
Các bạn mở file admin/js/form.js lên và chèn đoạn code này vào:
// Trạng thái website $('#formStatusWeb button').on('click', function() { $stt_web = $('#formStatusWeb input[name="stt_web"]:radio:checked').val(); $.ajax({ url : $_DOMAIN + 'setting.php', type : 'POST', data : { stt_web : $stt_web, action : 'stt_web' }, success : function() { $('#formStatusWeb .alert').attr('class', 'alert alert-success'); $('#formStatusWeb .alert').html('Thay đổi thành công.'); location.reload(); }, error : function() { $('#formStatusWeb .alert').removeClass('hidden'); $('#formStatusWeb .alert').html('Đã có lỗi xảy ra, hãy thử lại.'); } }); });
Để thực hiện chức năng này các bạn tạo file admin/setting.php và dán đoạn code này vào:
<?php // Kết nối database và thông tin chung require_once 'core/init.php'; // Nếu đăng nhập if ($user) { // Nếu tồn tại POST action if (isset($_POST['action'])) { // Xử lý POST action $action = trim(addslashes(htmlspecialchars($_POST['action']))); // Trạng thái website if ($action == 'stt_web') { $stt_web = trim(htmlspecialchars(addslashes($_POST['stt_web']))); $sql_stt_web = "UPDATE website SET status = '$stt_web'"; $db->query($sql_stt_web); $db->close(); } // Chỉnh sửa thông tin website } else { new Redirect($_DOMAIN); // Trở về trang index } } else { new Redirect($_DOMAIN); // Trở về trang index }
Ok! Bây giờ các bạn chạy lại và xem kết quả nhé!
Các bạn mở file admin/templates/setting.php lên và chèn nội dung này bên dưới dòng // Chỉnh sửa thông tin website:
$sqlGetInfoWeb = "SELECT title, descr, keywords FROM website"; if ($db->num_rows($sqlGetInfoWeb)) { $data_web = $db->fetch_assoc($sqlGetInfoWeb, 1); } echo ' <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Chỉnh sửa thông tin</h3> </div> <div class="panel-body"> <form method="POST" id="formInfoWeb" onsubmit="return false;"> <div class="form-group"> <label>Tiều đề website</label> <input type="text" class="form-control" value="' . $data_web['title'] . '" id="title_web"> </div> <div class="form-group"> <label>Mô tả website</label> <textarea class="form-control" id="descr_web">' . $data_web['descr'] . '</textarea> </div> <div class="form-group"> <label>Từ khoá website</label> <input type="text" class="form-control" value="' . $data_web['keywords'] . '" id="keywords_web"> </div> <button class="btn btn-primary" type="submit">Lưu</button><br><br> <div class="alert alert-danger hidden"></div> </form> </div> </div> ';
Copy đoạn code này và dán vào file js/form.js:
// Chỉnh sửa thông tin website $('#formInfoWeb button').on('click', function() { $title_web = $('#title_web').val(); $descr_web = $('#descr_web').val(); $keywords_web = $('#keywords_web').val(); $.ajax({ url : $_DOMAIN + 'setting.php', type : 'POST', data : { title_web : $title_web, descr_web : $descr_web, keywords_web : $keywords_web, action : 'info_web' }, success : function() { $('#formInfoWeb .alert').attr('class', 'alert alert-success'); $('#formInfoWeb .alert').html('Thay đổi thành công.'); location.reload(); }, error : function() { $('#formInfoWeb .alert').removeClass('hidden'); $('#formInfoWeb .alert').html('Đã có lỗi xảy ra, hãy thử lại.'); } }); });
Các bạn copy và dán đoạn code này bên dưới dòng // Chỉnh sửa thông tin website ở file admin/setting.php:
else if ($action == 'info_web') { $title_web = trim(htmlspecialchars(addslashes($_POST['title_web']))); $descr_web = trim(htmlspecialchars(addslashes($_POST['descr_web']))); $keywords_web = trim(htmlspecialchars(addslashes($_POST['keywords_web']))); $sql_info_web = "UPDATE website SET title = '$title_web', descr = '$descr_web', keywords = '$keywords_web' "; $db->query($sql_info_web); $db->close(); }
Xong, giờ các bạn tải lại trang và chỉnh sửa các thông tin thử nhé!
Qua bài này chúng ta đã xây dựng xong các chức năng cài đặt của ứng dụng tin tức này. Trong bài kế tiếp, mình sẽ hướng dẫn các bạn xây dựng các chức năng về tài khoản. Nếu có thắc mắc, các bạn cứ comment bên dưới hoặc đăng lên group kèm theo đường dẫn bài viết để được hỗ trợ nhanh 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 14: Tạo chức năng lưu trữ cài đặt trong admin đã 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!