MediaWiki:Common.js: различия между версиями
Luciana (обсуждение | вклад) Отмена версии 4300, сделанной Luciana (обсуждение) Метки: отмена отменено |
Luciana (обсуждение | вклад) Нет описания правки Метка: ручная отмена |
||
| Строка 1: | Строка 1: | ||
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ | |||
$(document).ready(function() { | |||
function fetchReverinYear(callback) { | |||
$.ajax({ | |||
url: "/wiki/index.php?title=Шаблон:Текущий_год_Альдморры&action=raw", | |||
dataType: "text", | |||
success: function(data) { | |||
console.log("Сырые данные из шаблона:", data); // Отладка | |||
let reverinYear = parseInt(data.trim(), 10); | |||
if (!isNaN(reverinYear)) { | |||
console.log("Год Альдморры загружен:", reverinYear); | |||
callback(reverinYear); | |||
} else { | |||
console.error("Ошибка: невозможно прочитать год. Получено:", data); | |||
callback(null); | |||
} | |||
}, | |||
error: function() { | |||
console.error("Ошибка загрузки шаблона через raw HTML."); | |||
callback(null); | |||
} | |||
}); | |||
} | |||
function | function getReverinDate(reverinYear) { | ||
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; // 18 февраля - 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 weekDays = ["Вивидис", "Аспирис", "Альтис", "Эквилис", "Либерис", "Реновис", "Мистерис"]; | |||
let dayCount = D_r, monthIndex = 0; | |||
while (dayCount > monthLengths[monthIndex]) { | |||
dayCount -= monthLengths[monthIndex]; | |||
monthIndex++; | |||
} | |||
const reverinWeekDay = weekDays[(D_r - 1) % 7]; | |||
return `${reverinWeekDay} \n${dayCount} ${monthNames[monthIndex]}, ${reverinYear}`; | |||
} | |||
function insertReverinDate() { | |||
let sidebar = document.getElementById("p-navigation") || document.getElementById("p-tb"); | |||
if (sidebar) { | |||
let dateDiv = document.createElement("div"); | let dateDiv = document.createElement("div"); | ||
dateDiv.id = "reverinDateWidget"; | dateDiv.id = "reverinDateWidget"; | ||
| Строка 13: | Строка 57: | ||
dateDiv.style.fontWeight = "bold"; | dateDiv.style.fontWeight = "bold"; | ||
dateDiv.style.whiteSpace = "pre-line"; | dateDiv.style.whiteSpace = "pre-line"; | ||
dateDiv.innerText = "Загрузка | dateDiv.innerText = "Загрузка..."; | ||
sidebar.appendChild(dateDiv); | |||
fetchReverinYear(function(reverinYear) { | |||
if (reverinYear) { | |||
dateDiv.innerText = getReverinDate(reverinYear); | |||
} else { | |||
dateDiv.innerText = "Ошибка загрузки даты"; | |||
} | |||
}); | |||
} | } | ||
} | } | ||
insertReverinDate(); | |||
}); | }); | ||
Версия от 23:28, 25 февраля 2025
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
$(document).ready(function() {
function fetchReverinYear(callback) {
$.ajax({
url: "/wiki/index.php?title=Шаблон:Текущий_год_Альдморры&action=raw",
dataType: "text",
success: function(data) {
console.log("Сырые данные из шаблона:", data); // Отладка
let reverinYear = parseInt(data.trim(), 10);
if (!isNaN(reverinYear)) {
console.log("Год Альдморры загружен:", reverinYear);
callback(reverinYear);
} else {
console.error("Ошибка: невозможно прочитать год. Получено:", data);
callback(null);
}
},
error: function() {
console.error("Ошибка загрузки шаблона через raw HTML.");
callback(null);
}
});
}
function getReverinDate(reverinYear) {
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; // 18 февраля - 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 weekDays = ["Вивидис", "Аспирис", "Альтис", "Эквилис", "Либерис", "Реновис", "Мистерис"];
let dayCount = D_r, monthIndex = 0;
while (dayCount > monthLengths[monthIndex]) {
dayCount -= monthLengths[monthIndex];
monthIndex++;
}
const reverinWeekDay = weekDays[(D_r - 1) % 7];
return `${reverinWeekDay} \n${dayCount} ${monthNames[monthIndex]}, ${reverinYear}`;
}
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.innerText = "Загрузка...";
sidebar.appendChild(dateDiv);
fetchReverinYear(function(reverinYear) {
if (reverinYear) {
dateDiv.innerText = getReverinDate(reverinYear);
} else {
dateDiv.innerText = "Ошибка загрузки даты";
}
});
}
}
insertReverinDate();
});