Post Like And Dislike System On Google Sheet
ဒါကတော့ blog site မှာ blog post တခုရဲ့အဆင့်ကို user ကကြယ်များဖြင့်အဆင့်သတ်မှတ်ချင်ရင်သတ်မှတ်လို့ရအောင်ဖန်တီးထားတဲ့ Star Rating System ပါ။ထို Star Rating System တခုကို Google Sheet ဖြင့်ဖန်တီးပြသွားမှာဖြစ်ပါတယ်။
စတင်ဖန်တီးရန် အောက်က link ကို copy ယူ၍ Browser မှာဖွင့်ပါ။(မှတ်ချက် → Mobile ဖုန်းဖြင့်တည်ဆောက်ပါက Browser Desktop site သို့ ပြောင်းပါ)
https://docs.google.com/spreadsheets/u/0/- Start a new spreadsheet ➕ ကိုနှိပ်ပါ
- Untitled Spreadsheet နေရာမှာ →
Project nameသတ်မှတ်၍ရေးပါ - Sheet1 ကိုနှိပ် → Rename ကိုနှိပ် →
Sheet nameသတ်မှတ်၍ရေးပါ(သတိ → စာလုံး(space)မခြားရပါ) - line 1 ကို →
Headerအဖြစ်သတ်မှတ်ပါ။အောက်ကနမူနာကြည့်၍ရေးပါ
| A | B | C | D | E | F | G | H | I | J | K | L | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Post ID | Like | Dislike | |||||||||
| 2 |
- save ဖြစ်တဲ့ထိစောင့်ပါ။
-
Extensionsကိုနှိပ် - Apps Script ကိုနှိပ်
- code.gs တွင် အောက်က code ကို copy ယူထည့်
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Your_Sheet_Name");
var action = e.parameter.action;
var postId = e.parameter.postId;
var data = Sheet.getDataRange().getValues();
var rowIndex = -1;
for (var i = 1; i < data.length; i++) {
if (data[i][0] == postId) {
rowIndex = i + 1;
break;
}
}
if (rowIndex == -1) {
sheet.appendRow([postId, 0, 0]);
rowIndex = sheet.getLastRow();
}
if (action == "like") {
var current = sheet.getRange(rowIndex, 2).getValue();
sheet.getRange(rowIndex, 2).setValue(current + 1);
} else if (action == "dislike") {
var current = sheet.getRange(rowIndex, 3).getValue();
sheet.getRange(rowIndex, 3).setValue(current + 1);
}
var likeCount = sheet.getRange(rowIndex, 2).getValue();
var dislikeCount = sheet.getRange(rowIndex, 3).getValue();
var result = {
postId: postId,
likes: likeCount,
dislikes: dislikeCount
};
return ContentService.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}
Your_Sheet_Nameနေရာတွင်မိမိ SheetName ထည့်ပေးပါ
- ကိုနှိပ်။save ဖြစ်တဲ့ထိစောင့်ပါ
- save ဖြစ်သွားပြီဆို →
Deployကိုနှိပ်ပါ - New deployment ကိုရွေးပါ
- ⚙️ ကိုနှိပ်ပါ။
- Web app ကိုရွေးပါ
- New description နေရာတွင်မိမိ →
sheet nameရေးထည့်ပါ - Execute as နေရာမှာ မိမိ gmail မှန်မမှန်စစ်ပါ
- Who has access နေရာတွင် →
Anyoneကိုရွေးပါ - Deploy ကိုနှိပ်
- Authorize access ကိုနှိပ်
- sign in လုပ်ဖို့မိမိ →
gmail accountကိုနှိပ် - Advanced ကိုနှိပ်
- Go to Untitled project (unsafe). ကိုနှိပ်
- Allow ကိုနှိပ်
- Web app link ကို →
copyယူ၍မှတ်သားထားပါ။အောက်ကပုံကိုကြည့်ပါ။Template တွင်ထည့်သွင်းအသုံးပြုရမည်ဖြစ်သည်
- dashboard ထဲက Theme ကိုနှိပ်
- HTML🔻ကိုနှိပ်
- <data.post.body/> ရှာပါ(သတိ - template တခုနှင့်တစ်ခုမတူသဖြင့် <data.post.body/> သည်တခုထက်ပို၍ရှိနိုင်သည်။နောက်ဆုံး <data.post.body/> အောက်တွင် အောက်က code ကို copy ယူ၍ထည့်ပါ
<div class='vote-box' expr:id='"vote-box-" + data:post.id'>
<button class='vote-btn like' expr:onclick='"vote(\"like\", \"" + data:post.id + "\")"'><i class='fa fa-thumbs-up'/>
<span class='vote-count' expr:id='"like-count-" + data:post.id'>0</span>
</button>
<button class='vote-btn dislike' expr:onclick='"vote(\"dislike\", \"" + data:post.id + "\")"'><i class='fa fa-thumbs-down'/>
<span class='vote-count' expr:id='"dislike-count-" + data:post.id'>0</span>
</button>
</div>
- </body>ရှာပါ။တွေ့ပြီဆိုရင်အောက်က css & js code ကို copy ယူ၍အဲဒီ</body> အပေါ်ကနေထည့်ပါ။
<script>//<![CDATA[
const SCRIPT_URL = "Your_Web_App_Link_Here";
function vote(action, postId) {
fetch(`${SCRIPT_URL}?action=${action}&postId=${postId}`)
.then(res => res.json())
.then(data => {
document.getElementById("like-count-" + postId).innerText = data.likes;
document.getElementById("dislike-count-" + postId).innerText = data.dislikes;
});
}
window.addEventListener("DOMContentLoaded", () => {
document.querySelectorAll(".vote-box").forEach(box => {
const postId = box.id.replace("vote-box-","");
fetch(`${SCRIPT_URL}?action=get&postId=${postId}`)
.then(res => res.json())
.then(data => {
document.getElementById("like-count-" + postId).innerText = data.likes;
document.getElementById("dislike-count-" + postId).innerText = data.dislikes;
});
});
});
//]]></script>
Your_Web_App_Link_Hereနေရာမှာမိမိ Web App Link ဖြင့်အစားထိုးပါ။- save ကိုနှိပ်ပြီးပြီ

