WEB TIN TỨC PHP CĂN BẢN
Bài 1: PHP trang tin tức - Tạo database và cấu trúc folder admin Bài 2: PHP trang tin tức - Viết thư viện xử lý database admin Bài 3: PHP trang tin tức - Viết thư viện session và functions admin Bài 4: PHP trang tin tức - Kết nối database và cấu trúc index admin Bài 5: PHP trang tin tức - Xây dựng header và footer admin Bài 6: PHP trang tin tức - Tạo chức năng đăng nhập, đăng xuất admin Bài 7: PHP trang tin tức - Xây dựng sidebar, content và phân trang admin Bài 8: PHP trang tin tức - Các chức năng chuyên mục admin Bài 9: PHP trang tin tức - Các chức năng chuyên mục admin (tiếp theo) Bài 10: PHP trang tin tức - Các chức năng của hình ảnh admin Bài 11: PHP trang tin tức - Các chức năng của hình ảnh admin (tiếp theo) Bài 12: PHP trang tin tức - Các chức năng của bài viết admin Bài 13: PHP trang tin tức - Các chức năng của bài viết admin (tiếp theo) Bài 14: PHP trang tin tức - Các chức năng cài đặt admin Bài 15: PHP trang tin tức - Các chức năng của tài khoản admin Bài 16: PHP trang tin tức - Các chức năng của tài khoản admin (tiếp theo) Bài 17: PHP trang tin tức - Các chức năng của profile admin Bài 18: PHP trang tin tức - Các chức năng của profile admin (tiếp theo) Bài 19: PHP trang tin tức - Xây dựng dashboard admin và fix bug Bài 20: PHP trang tin tức - Cấu trúc folder client Bài 21: PHP trang tin tức - Kết nối database và rewrite url Bài 22: PHP trang tin tức - Xây dựng header và footer client Bài 23: PHP trang tin tức - Xây dựng layout client Bài 24: PHP trang tin tức - Hiển thị danh sách bài viết mới nhất Bài 25: PHP trang tin tức - Hiển thị danh sách bài viết chuyên mục Bài 26: PHP trang tin tức - Hiển thị nội dung bài viết Bài 27: PHP trang tin tức - Xây dựng chức năng tìm kiếm Bài 28: PHP trang tin tức - Xây dựng các trang con và clear source (End)
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Bài 14: PHP trang tin tức - Các chức năng cài đặt admin

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é!

1. Khái quát

Đâ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á,... 

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Các đặc điểm và chức năng trong phần này là:

  • Phân quyền admin (chỉ có admin mới có quyền truy cập)
  • Chế độ đóng/mở hoạt động của ứng dụng
  • Chỉnh sửa các thông tin về SEO của ứng dụng

2. Tạo table thông tin website

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);
php trang tin tuc cac chuc nang cai dat admin table website jpg

Trong đó:

  • title: tiêu đề website
  • descr: mô tả website
  • keywords: từ khoá website
  • status: trạng thái website
    • status = 0: Không hoạt động
    • status = 1: Hoạt động

Mình đã insert sẵn 2 field titlestatus luôn rồi nhé!

 3. Phân quyền 

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
}

?>
Sau đó, các bạn tải lại trang, chúng ta sẽ được kết quả như thế này:

php trang tin tuc cac chuc nang cai dat admin ket qua phan quyen jpg4. Chức năng trạng thái hoạt động

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.

Xây dựng template

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>
';

Viết Ajax gửi dữ liệu

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.');
		}
	});
});

Viết PHP xử lý dữ liệu

Để 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é! 

5. Chức năng chỉnh sửa thông tin

Xây dựng template

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>
';

VIết Ajax gửi dữ liệu

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.');
		}

	});
});

VIết PHP xử lý dữ liệu

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é!

6. Lời kết

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!

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top