MediaWiki:Gadget-LiveClock.js: различия между версиями

Материал из Тептар
Перейти к навигации Перейти к поиску
Нет описания правки
Метка: отменено
Нет описания правки
Метка: ручная отмена
 
Строка 1: Строка 1:
console.log("Скрипт LiveClock запущен!");
mw.loader.using(['mediawiki.util']).then(function () {
mw.loader.using(['mediawiki.util']).then(function () {
     console.log("Модуль mediawiki.util успешно загружен");
     // Обертка jQuery для ожидания полной загрузки HTML-каркаса страницы
   
    $(function () {
    var purgeUrl = mw.util.getUrl(mw.config.get('wgPageName'), { action: 'purge' });
        if (mw.config.get('wgUserName') === null) return;
   
    var clockNode = mw.util.addPortletLink(
        'p-personal',
        purgeUrl,
        '00:00:00', // Изначальный текст
        'pt-liveclock',
        'Очистить кэш',
        '',
        '#pt-userpage'
    );


    console.log("Результат создания элемента clockNode:", clockNode);
        var purgeUrl = mw.util.getUrl(mw.config.get('wgPageName'), { action: 'purge' });
       
        // Добавляем элемент
        var clockNode = mw.util.addPortletLink(
            'p-personal',
            purgeUrl,
            '00:00:00', // Временный текст, чтобы элемент сразу имел ширину
            'pt-liveclock',
            'Очистить кэш текущей страницы',
            '',
            '#pt-userpage'
        );


    if (!clockNode) {
        // ДИАГНОСТИКА: Если движок не нашел, куда вставлять часы
        console.error("ОШИБКА: Движок не смог найти меню 'p-personal' для вставки часов. Возможно, у вас используется нестандартная тема оформления.");
        if (!clockNode) {
        return;
            console.error('Гаджет Живые часы: Ошибка. Не найдено верхнее меню "p-personal" в текущей теме оформления.');
    }
            return;
   
        }
    var link = clockNode.querySelector('a') || clockNode;
       
    link.style.fontWeight = 'bold';
        var link = clockNode.querySelector('a') || clockNode;
        link.style.fontWeight = 'bold';


    function updateTime() {
        function updateTime() {
        var d = new Date();
            var d = new Date();
        var h = String(d.getHours()).padStart(2, '0');
            var h = String(d.getHours()).padStart(2, '0');
        var m = String(d.getMinutes()).padStart(2, '0');
            var m = String(d.getMinutes()).padStart(2, '0');
        var s = String(d.getSeconds()).padStart(2, '0');
            var s = String(d.getSeconds()).padStart(2, '0');
        link.textContent = h + ':' + m + ':' + s;
            link.textContent = h + ':' + m + ':' + s;
    }
        }


    updateTime();
        updateTime();
    setInterval(updateTime, 1000);
        setInterval(updateTime, 1000);
     console.log("Часы успешно запущены!");
     });
});
});

Текущая версия от 16:03, 14 октября 2026

mw.loader.using(['mediawiki.util']).then(function () {
    // Обертка jQuery для ожидания полной загрузки HTML-каркаса страницы
    $(function () {
        if (mw.config.get('wgUserName') === null) return;

        var purgeUrl = mw.util.getUrl(mw.config.get('wgPageName'), { action: 'purge' });
        
        // Добавляем элемент
        var clockNode = mw.util.addPortletLink(
            'p-personal',
            purgeUrl,
            '00:00:00', // Временный текст, чтобы элемент сразу имел ширину
            'pt-liveclock',
            'Очистить кэш текущей страницы',
            '',
            '#pt-userpage'
        );

        // ДИАГНОСТИКА: Если движок не нашел, куда вставлять часы
        if (!clockNode) {
            console.error('Гаджет Живые часы: Ошибка. Не найдено верхнее меню "p-personal" в текущей теме оформления.');
            return;
        }
        
        var link = clockNode.querySelector('a') || clockNode;
        link.style.fontWeight = 'bold';

        function updateTime() {
            var d = new Date();
            var h = String(d.getHours()).padStart(2, '0');
            var m = String(d.getMinutes()).padStart(2, '0');
            var s = String(d.getSeconds()).padStart(2, '0');
            link.textContent = h + ':' + m + ':' + s;
        }

        updateTime();
        setInterval(updateTime, 1000);
    });
});