MediaWiki:Gadget-LiveClock.js

Версия от 16:03, 14 октября 2026; Buto (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
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);
    });
});