MediaWiki:Common.js: Difference between revisions

From MU Bless Online Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(259 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
(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() {
mw.loader.using('mediawiki.util', function() {
//document.body.style.backgroundColor = 'green';
     $(document).ready(function() {
     $(document).ready(function() {
        // Проверяем, что элемент существует
        if ($('#ca-nstab-main').length) {
            if(myVariable == "true"){
            // Создаем новую вкладку
                if(userLang == 'ru'){
            var newTab = $('<li id="ca-custom"><a>Switch to Light theme</a></li>');
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-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");


$(document).ready(function(){
             // Сохранение переменной в localStorage
             // Сохранение переменной в localStorage
             $("#ca-custom").click(function(){
             $("#ca-custom").click(function(){
             var myVariable = localStorage.getItem("isLightTheme");
             if(myVariable == "true"){
            console.log(myVariable);
            localStorage.setItem("isLightTheme", "false");
            localStorage.setItem("isLightTheme", !myVariable);
            setCookie('isLightTheme', '0', 30);
             console.log(localStorage.getItem("isLightTheme"));
            } 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');
    }

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');
    }