Chọn lớp và môn học để bắt đầu hành trình khám phá kiến thức nhé! 🚀
🔐
Trang quản lý
Nhập mật khẩu để vào trang quản lý nội dung bài học
⚙️ Quản lý bài học
Thêm bài học và đồng bộ tự động với Google Sheets
📝 Thêm bài học mới
📋 Danh sách bài học
0 bài được chọn
Lớp
Môn
Bài học
Video
PDF
Chưa có bài học nào.
📖 Hướng dẫn thiết lập Google Sheets
1
Tạo Google Sheets mới. Tên tab sheet có thể là bất kỳ — code tự lấy sheet đầu tiên.
2
Vào Tiện ích mở rộng → Apps Script. Xóa code cũ, dán code bên dưới và nhấn Lưu.
3
Nhấn Deploy → New deployment. Type = Web app. "Execute as" = Me, "Who has access" = Anyone. Deploy, sao chép URL.
4
Dán URL vào ô Google Apps Script URL ở đầu trang quản lý, nhấn Lưu URL. Xong!
📝 Code Apps Script
function doPost(e) {
try {
if (!e || !e.postData || !e.postData.contents) {
return respond({ status: "error", message: "No POST data" });
}
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var data = JSON.parse(e.postData.contents);
// ✅ THÊM 1 BÀI MỚI (append, không xóa dữ liệu cũ)
if (data.action === "add") {
// Nếu sheet trống thì thêm tiêu đề trước
if (sheet.getLastRow() === 0) {
sheet.appendRow(["Lop","Mon","Chuong","TenBai",
"YouTube","PDF","GhiChu"]);
}
sheet.appendRow([
data.lop || "",
data.mon || "",
data.chuong || "",
data.bai || "",
data.video || "",
data.pdf || "",
data.note || ""
]);
return respond({ status: "ok" });
}
// 🔄 ĐỒNG BỘ TOÀN BỘ (xóa và ghi lại)
if (data.action === "sync") {
sheet.clearContents();
sheet.appendRow(["Lop","Mon","Chuong","TenBai",
"YouTube","PDF","GhiChu"]);
data.lessons.forEach(function(r) {
sheet.appendRow([
r.lop || "", r.mon || "", r.chuong || "",
r.bai || "", r.video || "", r.pdf || "", r.note || ""
]);
});
return respond({ status: "ok", count: data.lessons.length });
}
return respond({ status: "error", message: "Unknown action" });
} catch(err) {
return respond({ status: "error", message: err.toString() });
}
}
function doGet(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var rows = sheet.getDataRange().getValues();
rows.shift(); // Bỏ hàng tiêu đề
return respond({ status: "ok", data: rows });
} catch(err) {
return respond({ status: "error", message: err.toString() });
}
}
function respond(obj) {
return ContentService
.createTextOutput(JSON.stringify(obj))
.setMimeType(ContentService.MimeType.JSON);
}
⚠️ Quan trọng: Sau khi cập nhật code, bạn phải Deploy lại:
Deploy → Manage deployments → chọn deployment hiện có → nhấn ✏️ Edit → New version → Save.
Không cần tạo deployment mới, URL vẫn giữ nguyên.
✏️ Sửa bài học
Cập nhật thông tin rồi lưu để đồng bộ lại Google Sheets.
Xóa bài đã chọn?
Các bài này sẽ bị xóa khỏi website và đồng bộ lại Google Sheets.