Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » RuBoard — Внешний вид / Дополнительный функционал

Модерирует : batva, DimoN

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
[font=monospace]
// ==UserScript==
// @name         RuBoard — OnLine
// @namespace    iNNOKENTIY21.RuBoard
// @version      2025-06-09
// @description  Раскраска ника в зависимости от онлайн он или нет
// @author       iNNOKENTIY21
// @match        *://forum.ru-board.com/*
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js
// @icon         http://forum.ru-board.com/favicon.ico
// @grant        none
// ==/UserScript==
 
(function() {
    'use strict';
 
// Функция для получения статуса онлайн пользователей
function fetchOnlineUsers(callback) {
    var Protocol = window.location.protocol;
    $.ajax({
        type: 'GET',
        url: Protocol + '//forum.ru-board.com/whosonline.cgi',
        dataType: 'html',
        cache: false,
        success: function (html) {
            var onlineUsers = {};
            $('tr.dats td:first-child > b > a', html).each(function () {
                var name = $('font', this);
                if (name.length > 0) {
                    onlineUsers[$(name).html()] = 'mod';
                } else {
                    onlineUsers[$(this).html()] = 'mem';
                }
            });
            callback(onlineUsers);
        }
    });
}
 
// Функция для изменения цвета элемента
function changeElementColor(element, color) {
    if (element) {
        element.style.color = color; // Изменяем цвет текста
    } else {
        console.warn(`Элемент не найден.`);
    }
}
 
// Функция для подсветки ника пользователя
function highlightUserName(userName, color) {
    const regex = new RegExp(`\\b(${userName})\\b`, 'g'); // Регулярное выражение для поиска ника
    $('body *').contents().filter(function() {
        return this.nodeType === Node.TEXT_NODE && this.nodeValue.trim() !== '';
    }).each(function() {
        const newHtml = this.nodeValue.replace(regex, `<span style="color: ${color};">$1</span>`); // Изменяем цвет текста
        if (newHtml !== this.nodeValue) { // Проверяем, изменился ли текст
            $(this).replaceWith(newHtml);
        }
    });
}
 
// Функция для обновления цвета в зависимости от статуса пользователя
function updateUserStatusColor(userName, status) {
    const colorMap = {
        'mod': '#f66', // Красный для модераторов
        'mem': '#33cc80' // Зеленый для пользователей
    };
 
    // Определяем цвет в зависимости от статуса
    const color = colorMap[status] || '#ccc'; // Серый для оффлайн
 
    // Подсвечиваем ник в ссылках
    $('a.m > b').filter(function() {
        return $(this).text().trim() === userName; // Фильтруем элементы по тексту
    }).each(function() {
        changeElementColor(this.parentNode, color); // Изменяем цвет для родительского элемента <a>
    });
 
    // Подсвечиваем ник в других текстах на странице
    highlightUserName(userName, color);
}
 
// Основная функция, которая запускает процесс
function main() {
    if (document.cookie.indexOf('amembernamecookie') >= 0 && document.cookie.indexOf('apasswordcookie') >= 0) {
        fetchOnlineUsers(function (onlineUsers) {
            $(document).ajaxComplete(function () {
                $('a.m > b, tr[bgcolor="#FFFFFF"] td:last-child.dats > a', 'table').each(function () {
                    var userName = $(this).text().trim(); // Получаем ник пользователя
                    var status = onlineUsers[userName]; // Получаем статус пользователя
                    updateUserStatusColor(userName, status);
                });
            });
        });
    }
}
 
// Запускаем основную функцию
main();
 
})();
[/font=monospace]



----------
RuBoard — Внешний вид

Всего записей: 3718 | Зарегистр. 16-08-2012 | Отправлено: 13:46 09-06-2025
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » RuBoard — Внешний вид / Дополнительный функционал


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru