MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(127 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
function setCookie(name, value, days) { | |||
var expires = ""; | |||
if (days) { | |||
var date = new Date(); | |||
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); | |||
expires = "; expires=" + date.toUTCString(); | |||
} | |||
document.cookie = name + "=" + (value || "") + expires + "; path=/"; | |||
} | |||
// Google Analytics gtag.js tracking code | // Google Analytics gtag.js tracking code | ||
Line 15: | Line 24: | ||
gtag('config', 'G-J726V56N70'); | gtag('config', 'G-J726V56N70'); | ||
})(); | })(); | ||
//Удаление активного языка | //Удаление активного языка | ||
Line 25: | Line 35: | ||
parentElement.remove(); | parentElement.remove(); | ||
} | } | ||
} | } | ||
// Смена ссылки на главную по языкам | // Смена ссылки на главную по языкам | ||
Line 51: | Line 43: | ||
// Проверяем, что элемент существует | // Проверяем, что элемент существует | ||
var myVariable = localStorage.getItem("isLightTheme"); | var myVariable = localStorage.getItem("isLightTheme"); | ||
// Смена ссылки у Заглавной страницы | |||
var mainInscr = document.getElementById("n-mainpage-description"); | |||
var userLang = mw.config.get('wgUserLanguage'); | |||
console.log(userLang); | |||
mw.loader.using('mediawiki.util', function() { | mw.loader.using('mediawiki.util', function() { | ||
//document.body.style.backgroundColor = 'green'; | |||
$(document).ready(function() { | $(document).ready(function() { | ||
if(myVariable == "true"){ | if(myVariable == "true"){ | ||
if( | if(userLang == 'ru'){ | ||
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru'); | |||
logoLink.setAttribute('href', logoLinkHref + '/ru'); | |||
var newTab = $('<li id="ca-custom"><a>Тёмная тема</a></li>'); | var newTab = $('<li id="ca-custom"><a>Тёмная тема</a></li>'); | ||
} else if(userLang == 'vi'){ | |||
} else if( | mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi'); | ||
logoLink.setAttribute('href', logoLinkHref + '/vi'); | logoLink.setAttribute('href', logoLinkHref + '/vi'); | ||
var newTab = $('<li id="ca-custom"><a>Chủ đề tối</a></li>'); | var newTab = $('<li id="ca-custom"><a>Chủ đề tối</a></li>'); | ||
} | } | ||
else{ | |||
var newTab = $('<li id="ca-custom"><a>Dark theme</a></li>'); | |||
} | |||
} else{ | } else{ | ||
if(userLang == 'ru'){ | |||
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru'); | |||
logoLink.setAttribute('href', logoLinkHref + '/ru'); | |||
var newTab = $('<li id="ca-custom"><a>Светлая тема</a></li>'); | var newTab = $('<li id="ca-custom"><a>Светлая тема</a></li>'); | ||
} else if( | } else if(userLang == 'vi'){ | ||
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi'); | |||
logoLink.setAttribute('href', logoLinkHref + '/vi'); | |||
var newTab = $('<li id="ca-custom"><a>Chủ đề nhẹ nhàng</a></li>'); | var newTab = $('<li id="ca-custom"><a>Chủ đề nhẹ nhàng</a></li>'); | ||
} | |||
else{ | |||
var newTab = $('<li id="ca-custom"><a>Light theme</a></li>'); | |||
} | } | ||
} | } | ||
Line 83: | Line 84: | ||
// Добавляем новую вкладку после вкладки "Читать" | // Добавляем новую вкладку после вкладки "Читать" | ||
$('#ca-nstab-main').after(newTab); | $('#ca-nstab-main').after(newTab); | ||
$('#ca-nstab-special').after(newTab); | |||
}); | }); | ||
}); | }); | ||
$(document).ready(function(){ | |||
//var iframes = document.querySelectorAll('.youtube-iframe'); | //var iframes = document.querySelectorAll('.youtube-iframe'); | ||
var iframes = document.querySelectorAll('iframe'); | var iframes = document.querySelectorAll('iframe'); | ||
Line 95: | Line 96: | ||
iframe.src = iframe.getAttribute('data-src'); | iframe.src = iframe.getAttribute('data-src'); | ||
}); | }); | ||
const isTouchDevice = 'ontouchstart' in window || /Mobi|Android|iPad|iPhone|iPod/.test(navigator.userAgent); | |||
if (!isTouchDevice) { | |||
/*$('.weaponsli').on('mouseenter', function() { | |||
// Показываем первый дочерний элемент (tooltip) | |||
$(this).children(':first-child').css('display', 'block'); | |||
}); | |||
$('.weaponsli').on('mouseleave', function() { | |||
// Скрываем tooltip, когда курсор уходит с элемента | |||
$(this).children(':first-child').css('display', 'none'); | |||
}); | |||
$('.weaponsli').on('mousemove', function(e) { | |||
const tooltip = $(this).children(':first-child'); | |||
// Получаем размеры tooltip | |||
var tooltipWidth = tooltip.outerWidth(); | |||
var tooltipHeight = tooltip.outerHeight(); | |||
// Начальные координаты для расположения tooltip | |||
var tooltipX = e.pageX + 10; // смещение вправо от курсора | |||
var tooltipY = e.pageY - tooltipHeight - 10; // по умолчанию располагаем выше курсора | |||
// Получаем размеры видимой области окна (области, которую видит пользователь) | |||
var windowHeight = $(window).height(); | |||
var windowWidth = $(window).width(); | |||
var scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали | |||
// Проверяем, не выходит ли tooltip за верхнюю границу видимой области | |||
if (tooltipY < scrollTop) { | |||
// Если tooltip выходит за верхнюю границу видимой области, перемещаем его под курсор | |||
tooltipY = e.pageY + 10; | |||
} | |||
// Проверка, не выходит ли tooltip за правую границу экрана | |||
if (tooltipX + tooltipWidth > windowWidth) { | |||
tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево | |||
} | |||
// Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана | |||
if (tooltipY + tooltipHeight > windowHeight + scrollTop) { | |||
// Если tooltip выходит за нижнюю границу, размещаем его **выше** курсора | |||
tooltipY = e.pageY - tooltipHeight - 10; | |||
} | |||
// Применяем новые координаты | |||
tooltip.css({ | |||
left: tooltipX -170 + 'px', | |||
top: tooltipY + 'px' | |||
}); | |||
});*/ | |||
$('.weaponsli').on('mouseenter', function() { | |||
// Показываем первый дочерний элемент (tooltip) | |||
$(this).children(':first-child').css('display', 'block'); | |||
}); | |||
$('.weaponsli').on('mouseleave', function() { | |||
// Скрываем tooltip, когда курсор уходит с элемента | |||
$(this).children(':first-child').css('display', 'none'); | |||
}); | |||
$('.weaponsli').on('mousemove', function(e) { | |||
const tooltip = $(this).children(':first-child'); | |||
// Получаем размеры tooltip | |||
const tooltipWidth = tooltip.outerWidth(); | |||
const tooltipHeight = tooltip.outerHeight(); | |||
// Начальные координаты для расположения tooltip — по умолчанию под курсором | |||
var tooltipX = e.pageX + 10; // смещение вправо от курсора | |||
var tooltipY = e.pageY + 10; // по умолчанию располагаем ниже курсора | |||
// Получаем размеры видимой области окна (области, которую видит пользователь) | |||
const windowHeight = $(window).height(); | |||
const windowWidth = $(window).width(); | |||
const scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали | |||
// Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана | |||
if (tooltipY + tooltipHeight > windowHeight + scrollTop) { | |||
// Если нет места снизу, размещаем tooltip над курсором | |||
tooltipY = e.pageY - tooltipHeight - 10; | |||
} | |||
// Проверка, не выходит ли tooltip за правую границу экрана | |||
if (tooltipX + tooltipWidth > windowWidth) { | |||
tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево | |||
} | |||
// Применяем новые координаты | |||
tooltip.css({ | |||
left: tooltipX -170 + 'px', | |||
top: tooltipY + 'px' | |||
}); | |||
}); | |||
} | |||
$("a").removeAttr("title"); | |||
// Сохранение переменной в localStorage | // Сохранение переменной в localStorage | ||
Line 145: | Line 201: | ||
if(myVariable == "true"){ | if(myVariable == "true"){ | ||
localStorage.setItem("isLightTheme", "false"); | localStorage.setItem("isLightTheme", "false"); | ||
setCookie('isLightTheme', '0', 30); | |||
} else{ | } else{ | ||
localStorage.setItem("isLightTheme", "true"); | localStorage.setItem("isLightTheme", "true"); | ||
setCookie('isLightTheme', '1', 30); | |||
} | } | ||
location.reload(true); | location.reload(true); | ||
}); | }); | ||
Line 196: | Line 253: | ||
console.log('Element not found'); | console.log('Element not found'); | ||
} | } | ||
Latest revision as of 15:21, 7 November 2024
/* Any JavaScript here will be loaded for all users on every page load. */
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
// Google Analytics gtag.js tracking code
(function() {
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-J726V56N70";
document.head.appendChild(gtagScript);
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-J726V56N70');
})();
//Удаление активного языка
var currlang;
const usedLanguage = $('.mw-pt-languages-selected');
if (usedLanguage) {
currlang = usedLanguage.attr('lang');
const parentElement = usedLanguage.parent();
if (parentElement) {
parentElement.remove();
}
}
// Смена ссылки на главную по языкам
var logoLink = document.getElementsByClassName('mw-wiki-logo')[0];
var logoLinkHref = logoLink.getAttribute('href');
// Проверяем, что элемент существует
var myVariable = localStorage.getItem("isLightTheme");
// Смена ссылки у Заглавной страницы
var mainInscr = document.getElementById("n-mainpage-description");
var userLang = mw.config.get('wgUserLanguage');
console.log(userLang);
mw.loader.using('mediawiki.util', function() {
//document.body.style.backgroundColor = 'green';
$(document).ready(function() {
if(myVariable == "true"){
if(userLang == 'ru'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru');
logoLink.setAttribute('href', logoLinkHref + '/ru');
var newTab = $('<li id="ca-custom"><a>Тёмная тема</a></li>');
} else if(userLang == 'vi'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi');
logoLink.setAttribute('href', logoLinkHref + '/vi');
var newTab = $('<li id="ca-custom"><a>Chủ đề tối</a></li>');
}
else{
var newTab = $('<li id="ca-custom"><a>Dark theme</a></li>');
}
} else{
if(userLang == 'ru'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru');
logoLink.setAttribute('href', logoLinkHref + '/ru');
var newTab = $('<li id="ca-custom"><a>Светлая тема</a></li>');
} else if(userLang == 'vi'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi');
logoLink.setAttribute('href', logoLinkHref + '/vi');
var newTab = $('<li id="ca-custom"><a>Chủ đề nhẹ nhàng</a></li>');
}
else{
var newTab = $('<li id="ca-custom"><a>Light theme</a></li>');
}
}
// Добавляем новую вкладку после вкладки "Читать"
$('#ca-nstab-main').after(newTab);
$('#ca-nstab-special').after(newTab);
});
});
$(document).ready(function(){
//var iframes = document.querySelectorAll('.youtube-iframe');
var iframes = document.querySelectorAll('iframe');
Array.prototype.forEach.call(iframes, function(iframe) {
iframe.src = iframe.getAttribute('data-src');
});
const isTouchDevice = 'ontouchstart' in window || /Mobi|Android|iPad|iPhone|iPod/.test(navigator.userAgent);
if (!isTouchDevice) {
/*$('.weaponsli').on('mouseenter', function() {
// Показываем первый дочерний элемент (tooltip)
$(this).children(':first-child').css('display', 'block');
});
$('.weaponsli').on('mouseleave', function() {
// Скрываем tooltip, когда курсор уходит с элемента
$(this).children(':first-child').css('display', 'none');
});
$('.weaponsli').on('mousemove', function(e) {
const tooltip = $(this).children(':first-child');
// Получаем размеры tooltip
var tooltipWidth = tooltip.outerWidth();
var tooltipHeight = tooltip.outerHeight();
// Начальные координаты для расположения tooltip
var tooltipX = e.pageX + 10; // смещение вправо от курсора
var tooltipY = e.pageY - tooltipHeight - 10; // по умолчанию располагаем выше курсора
// Получаем размеры видимой области окна (области, которую видит пользователь)
var windowHeight = $(window).height();
var windowWidth = $(window).width();
var scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали
// Проверяем, не выходит ли tooltip за верхнюю границу видимой области
if (tooltipY < scrollTop) {
// Если tooltip выходит за верхнюю границу видимой области, перемещаем его под курсор
tooltipY = e.pageY + 10;
}
// Проверка, не выходит ли tooltip за правую границу экрана
if (tooltipX + tooltipWidth > windowWidth) {
tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
}
// Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
// Если tooltip выходит за нижнюю границу, размещаем его **выше** курсора
tooltipY = e.pageY - tooltipHeight - 10;
}
// Применяем новые координаты
tooltip.css({
left: tooltipX -170 + 'px',
top: tooltipY + 'px'
});
});*/
$('.weaponsli').on('mouseenter', function() {
// Показываем первый дочерний элемент (tooltip)
$(this).children(':first-child').css('display', 'block');
});
$('.weaponsli').on('mouseleave', function() {
// Скрываем tooltip, когда курсор уходит с элемента
$(this).children(':first-child').css('display', 'none');
});
$('.weaponsli').on('mousemove', function(e) {
const tooltip = $(this).children(':first-child');
// Получаем размеры tooltip
const tooltipWidth = tooltip.outerWidth();
const tooltipHeight = tooltip.outerHeight();
// Начальные координаты для расположения tooltip — по умолчанию под курсором
var tooltipX = e.pageX + 10; // смещение вправо от курсора
var tooltipY = e.pageY + 10; // по умолчанию располагаем ниже курсора
// Получаем размеры видимой области окна (области, которую видит пользователь)
const windowHeight = $(window).height();
const windowWidth = $(window).width();
const scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали
// Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
// Если нет места снизу, размещаем tooltip над курсором
tooltipY = e.pageY - tooltipHeight - 10;
}
// Проверка, не выходит ли tooltip за правую границу экрана
if (tooltipX + tooltipWidth > windowWidth) {
tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
}
// Применяем новые координаты
tooltip.css({
left: tooltipX -170 + 'px',
top: tooltipY + 'px'
});
});
}
$("a").removeAttr("title");
// Сохранение переменной в localStorage
$("#ca-custom").click(function(){
if(myVariable == "true"){
localStorage.setItem("isLightTheme", "false");
setCookie('isLightTheme', '0', 30);
} else{
localStorage.setItem("isLightTheme", "true");
setCookie('isLightTheme', '1', 30);
}
location.reload(true);
});
});
var element1 = document.getElementsByClassName('vector-search-box-input')[0];
element1.placeholder = 'MU Bless Online Wikipedia';
var parent = document.getElementById('footer-places-about');
var firstChild = parent.firstElementChild;
firstChild.innerHTML = 'About MU Bless Online Wikipedia';
//Изменение языков на флажки
const selectedElement = $('.mw-pt-languages-list');
if (selectedElement.length) {
selectedElement.children('li').each(function() {
const anchor = $(this).find('a');
if (anchor.length) {
const hrefValue = anchor.attr('href');
const langValue = anchor.attr('lang');
var img;
if (langValue == 'vi'){
img = '/images/c/cf/Vi.png';
}
else if(langValue == 'ru'){
img = '/images/f/fb/Ru.png';
}
else if(langValue == 'en'){
img = '/images/0/0a/Usa.png';
}
$('<a>', {
href: hrefValue
}).append($('<img>', {
class: 'languageimg',
src: img,
alt: langValue
})).appendTo(selectedElement);
}
$(this).remove();
});
} else {
console.log('Element not found');
}