วิกิพีเดีย:สคริปต์ผู้ใช้/สคริปต์/บังคับลาพักร้อนจากวิกิพีเดีย

การทำงาน

แก้
  • ป้องกันมิให้ผู้ใช้ล็อกอินก่อนวันที่กำหนดไว้ เพื่อบังคับให้การลาพักร้อนจากวิกิพีเดียเคร่งครัดมากยิ่งขึ้นโดยอัตโนมัติ
  • หากผู้ใช้ล็อกอิน จะล็อกเอาต์โดยอัตโนมัติ
  • ผู้ใช้ยังคงสามารถอ่านหรือแก้ไขวิกิพีเดียโดยไม่ล็อกอินได้อยู่

การใช้งาน

แก้
  1. คัดลอกโค้ดส่วนนี้ไปที่ไฟล์จาวาสคริปต์ของผู้ใช้ หรือที่ไฟล์สกินใด ๆ ต่อไปนี้ (common.js, vector.js, timeless.js, modern.js, monobook.js, minerva.js) หากต้องการให้มีผลเฉพาะสกินที่เลือกหรือลดความเคร่งครัดให้น้อยลง
  2. ตั้งค่าวันและเวลาที่คุณจะเลิกพักร้อน เช่น หากจะพักร้อนถึงวันที่ 14 มีนาคม พ.ศ. 2556 (หรือ ค.ศ. 2013) เวลา 01:02:03 ก็ให้เขียนว่า
        var date = { year: 2556, month: 3, day: 14};
        var time = { hours: 1, minutes: 2, seconds: 3};

จากนั้น ให้บันทึกหน้าดังกล่าว และรีเฟรชหน้า (Mozilla: กด Reload (หรือ Ctrl-R), IE/Opera: Ctrl-F5, Safari: Cmd-R, Konqueror Ctrl-R) เป็นอันเสร็จพิธี ขอให้สนุกกับวันพักผ่อนจากวิกิพีเดียครับ!

ข้อควรระวัง

แก้
  • ระวังอย่าตั้งค่าวันที่ผิดพลาด เพราะคุณจะไม่สามารถล็อกอินเข้ามาแก้ไขได้อีกจนกว่าจะหมดเวลา
    • ค่าวันที่ใช้พุทธศักราช
    • เวลาใช้ระบบ 24 ชั่วโมง อย่างไรก็ดี หากเวลาในแต่ละหน่วยเป็นเลขหลักหน่วยหลักเดียว ห้ามใส่เลข 0 นำหน้า
  • หากเกิดข้อผิดพลาดขึ้นหรือต้องการกลับมาก่อนกำหนด เลือกหนึ่งในวิธีต่อไปนี้
    • ปิดจาวาสคริปต์
    • หากสคริปต์ไม่ได้ทำงานในไฟล์จาวาสคริปต์ของผู้ใช้ ให้เปิดลิงก์ "https://th.wikipedia.org/wiki/พิเศษ:การตั้งค่า?useskin=__สกิน__#mw-prefsection-rendering" โดยแทน "__สกิน__" ด้วยชื่อสกินของวิกิพีเดียที่สคริปต์ไม่ได้ทำงาน แล้วเปลี่ยนสกินเป็นอย่างอื่น
    • อีกทางหนึ่ง สามารถแก้ไขไฟล์จาวาสคริปต์ผู้ใช้ของคุณในโหมดดีบั๊กได้ (ปิดการใช้จาวาสคริปต์ทั้งหมดจากของผู้ใช้ แต่ยังเปิดของระบบ) โดยเพิ่ม ?debug=1 ต่อท้ายยูอาร์แอล (หรือหากมี ? ในยูอาร์แอลอยู่แล้ว ใช้ &แทน)
    • ในกรณีที่ไม่สามารถแก้ปัญหาได้ ให้แจ้งผู้ดูแลระบบให้ยกเลิกการบังคับลาพักร้อนได้

สคริปต์

แก้
/*** BEGIN WIKIBREAK ENFORCER ***/
$(document).ready(function() {

	/***
	อ่านคำชี้แจงที่ [[วิกิพีเดีย:สคริปต์ผู้ใช้/สคริปต์/บังคับลาพักร้อนจากวิกิพีเดีย]]

	Warning: We use Buddhist Era instead of Christian Era here.
	You can convert these two eras by following formula; BE = CE + 543.
	***/
	/*** Start editing here ***/

	// When you want to end your break?
	// no leading zeroes. (example: 9 - correct, 09 - incorrect)

	var date = { year: ..., month: ..., day: ...};
	var time = { hours: ..., minutes: ..., seconds: ... };

	/*** Stop editing here ***/
	date.year -= 543;
	var currentDate = new Date();
	var enforcedBreakEnd = new Date(
		date.year,date.month-1,date.day,time.hours,time.minutes,time.seconds);
	if (currentDate <= enforcedBreakEnd) {
		alert("Enforced wikibreak until "+enforcedBreakEnd.toLocaleString()
			+ "\n(now is "+currentDate.toLocaleString()+")\n\nBye!");
		location = "//"+location.host+"/w/index.php?title="
			+ "Special:Userlogout&returnto=Main_Page";
	}
});
/*** END WIKIBREAK ENFORCER ***/