MediaWiki:Common.js: различия между версиями
Luciana (обсуждение | вклад) Нет описания правки |
Luciana (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
function getReverinDate(dateDiv) { | |||
function getReverinDate( | |||
const now = new Date(); | const now = new Date(); | ||
const startOfYear = new Date(now.getFullYear(), 0, 1); | const startOfYear = new Date(now.getFullYear(), 0, 1); | ||
| Строка 61: | Строка 6: | ||
const D_offset = 49; | const D_offset = 49; | ||
const D_r = ((dayOfYear - D_offset + 365) % 365) + 1; | const D_r = ((dayOfYear - D_offset + 365) % 365) + 1; | ||
const monthLengths = [30, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, | const monthLengths = [30, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 29]; | ||
const monthNames = ["Любимца", "Жреца", "Хранителя", "Правителя", "Воителя", | const monthNames = ["Любимца", "Жреца", "Хранителя", "Правителя", "Воителя", | ||
"Хозяина", "Купца", "Творца", "Плута", "Колдуна", "Отшельника", "Наставника"]; | "Хозяина", "Купца", "Творца", "Плута", "Колдуна", "Отшельника", "Наставника"]; | ||
const earthToReveraWeekDays = { | const earthToReveraWeekDays = { | ||
"Monday": "Вивидис", | "Monday": "Вивидис", | ||
| Строка 88: | Строка 31: | ||
const monthName = monthNames[monthIndex]; | const monthName = monthNames[monthIndex]; | ||
while (dateDiv.firstChild) { | while (dateDiv.firstChild) { | ||
dateDiv.removeChild(dateDiv.firstChild); | dateDiv.removeChild(dateDiv.firstChild); | ||
} | } | ||
let firstRow = document.createElement("div"); | let firstRow = document.createElement("div"); | ||
firstRow.classList.add("row"); | firstRow.classList.add("row"); | ||
firstRow.appendChild(document.createTextNode(`${reverinWeekDay}, ${dayCount} ${monthName}`)); | firstRow.appendChild(document.createTextNode(`${reverinWeekDay}, ${dayCount} ${monthName}`)); | ||
dateDiv.appendChild(firstRow); | dateDiv.appendChild(firstRow); | ||
} | } | ||
| Строка 135: | Строка 52: | ||
dateDiv.style.marginTop = "10px"; | dateDiv.style.marginTop = "10px"; | ||
dateDiv.style.fontWeight = "bold"; | dateDiv.style.fontWeight = "bold"; | ||
dateDiv.style.whiteSpace = "pre-line"; | dateDiv.style.whiteSpace = "pre-line"; | ||
dateDiv.appendChild(document.createTextNode("Загрузка...")); | dateDiv.appendChild(document.createTextNode("Загрузка...")); | ||
sidebar.appendChild(dateDiv); | sidebar.appendChild(dateDiv); | ||
getReverinDate(dateDiv); | |||
} | } | ||
} | } | ||
Версия от 17:15, 4 мая 2026
$(document).ready(function() {
function getReverinDate(dateDiv) {
const now = new Date();
const startOfYear = new Date(now.getFullYear(), 0, 1);
const dayOfYear = Math.floor((now - startOfYear) / (1000 * 60 * 60 * 24)) + 1;
const D_offset = 49;
const D_r = ((dayOfYear - D_offset + 365) % 365) + 1;
const monthLengths = [30, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 29];
const monthNames = ["Любимца", "Жреца", "Хранителя", "Правителя", "Воителя",
"Хозяина", "Купца", "Творца", "Плута", "Колдуна", "Отшельника", "Наставника"];
const earthToReveraWeekDays = {
"Monday": "Вивидис",
"Tuesday": "Аспирис",
"Wednesday": "Альтис",
"Thursday": "Эквилис",
"Friday": "Либерис",
"Saturday": "Реновис",
"Sunday": "Мистерис"
};
const earthDayOfWeek = new Date().toLocaleDateString("en-US", { weekday: "long" });
const reverinWeekDay = earthToReveraWeekDays[earthDayOfWeek] || "Неизвестный день";
let dayCount = D_r, monthIndex = 0;
while (dayCount > monthLengths[monthIndex]) {
dayCount -= monthLengths[monthIndex];
monthIndex++;
}
const monthName = monthNames[monthIndex];
while (dateDiv.firstChild) {
dateDiv.removeChild(dateDiv.firstChild);
}
let firstRow = document.createElement("div");
firstRow.classList.add("row");
firstRow.appendChild(document.createTextNode(`${reverinWeekDay}, ${dayCount} ${monthName}`));
dateDiv.appendChild(firstRow);
}
function insertReverinDate() {
let sidebar = document.getElementById("p-navigation") || document.getElementById("p-tb");
if (sidebar) {
let dateDiv = document.createElement("div");
dateDiv.id = "reverinDateWidget";
dateDiv.style.padding = "10px";
dateDiv.style.borderTop = "1px solid #ccc";
dateDiv.style.marginTop = "10px";
dateDiv.style.fontWeight = "bold";
dateDiv.style.whiteSpace = "pre-line";
dateDiv.appendChild(document.createTextNode("Загрузка..."));
sidebar.appendChild(dateDiv);
getReverinDate(dateDiv);
}
}
insertReverinDate();
});