Список пользователей

1
Админ
Постов: 287
2
VIP
Постов: 75
3
Элита
Постов: 62
4
Проверенные
Постов: 46
5
Проверенные
Постов: 45
6
Проверенные
Постов: 39
7
VIP
Постов: 36
8
VIP
Постов: 35

  • Страница 1 из 1
  • 1
Шаблон "Личные сообщения V1.0" для uCoz
Дата: Воскресенье, 28.06.2026, 00:10 | Сообщение # 1 | | Написал: Известный
Автор темы
Мурчанн не в сети
        Сообщений:287
         Регистрация:20.10.2016
За уважение окружающих За уважение окружающих За хорошее поведение За преданность форуму За любовь народа

Полная переработка системы личных сообщений в стиле VK/Messenger

Представляю вашему вниманию комплексный скрипт для модернизации системы ЛС на uCoz. Скрипт полностью преобразует устаревший интерфейс личных сообщений в современный, удобный и красивый мессенджер в стиле ВКонтакте.

Работает на всех страницах ЛС: список сообщений, просмотр сообщения, отправка нового ЛС.

Что делает скрипт

Перенос меню в правую колонку
Оригинальное горизонтальное меню uCoz (Принятые, Отправленные, Отправить ЛС и т.д.) полностью скрывается и переносится в правую колонку в виде красивых вертикальных кнопок с SVG-иконками и счётчиками непрочитанных.

Список сообщений в стиле VK

Таблица сообщений uCoz заменяется на карточки в стиле мессенджера:
Аватарка отправителя (загружается автоматически)
Имя автора
Превью последнего сообщения (подгружается асинхронно)
Дата отправки
Жёлтый фон для непрочитанных (как в старом VK)
Крестик удаления при наведении

Умное кэширование

Кэш сообщений (5 минут) список загружается мгновенно, затем проверяется на новые

Кэш аватарок (7 дней) аватарки не грузятся повторно

Кэш превью превью сообщений сохраняются в localStorage

Кэш групп пользователей (1 час) бейджи групп не грузятся повторно

Автоматическое определение группы

Скрипт сам загружает профиль отправителя и определяет его группу:

Администраторы — красно-оранжевый градиент

Модераторы — зелёный градиент

VIP — золотой градиент

Друзья — фиолетово-синий градиент

Заблокированные — тёмный градиент

Пользователи — светло-синий фон

Просмотр сообщения

При открытии сообщения:
Красивая карточка с шапкой (аватар + имя + бейдж группы + тема)
Цитаты предыдущих сообщений отображаются как в мессенджере (входящие слева, исходящие справа)

Форма ответа (VK-стиль)

Компактная форма с аватаркой пользователя
Панель инструментов: Жирный, Курсив, Фото, Ссылка, Смайлы
Всплывающая панель смайлов
Отправка через AJAX без перезагрузки страницы
Красивое уведомление об успешной отправке
Кнопка "Ответить" открывает форму ответа

Форма отправки нового ЛС

Полностью переработанная форма "Написать сообщение":
Поля: Получатель, Тема, Текст
Панель BB-кодов (жирный, курсив, фото, ссылка)
Панель смайлов
AJAX-отправка с красивым уведомлением
Автоматический переход в ЛС после отправки

Улучшенный чекбокс "Выбрать все"

Кастомный чекбокс с анимацией, синхронизированный со всеми чекбоксами в списке.

Панель действий внизу

При выборе сообщений появляется панель:
Счётчик выбранных сообщений
Красная кнопка удаления
Плавная анимация удаления карточек

Система уведомлений

Красивые уведомления в правом нижнем углу:

Зелёное — при успехе

Красное — при ошибере

Синее — информация

Автоскрытие через 4 секунды

Кнопка закрытия

Технические особенности

Производительность
Мгновенная загрузка из кэша (не ждём сервер)
Фоновое обновление — кэш показывается сразу, потом проверяются новые сообщения
Ленивая загрузка аватарок и превью
Двойной кэш — в памяти + в localStorage

Совместимость

Работает с AJAX-навигацией uCoz (MutationObserver)
Не ломает стандартные функции uCoz (del_item, new_message)
Синхронизация с оригинальными формами

Безопасность

Все действия через оригинальные формы uCoz
Проверка ответов сервера
Обработка ошибок сети



Установка
1. HTML-шаблон
В шаблон страницы ЛС добавьте:

Код
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BRO Chat |Твои диалоги</title>

<script>
// Передаём переменные uCoz в глобальные переменные
window.USER_DATA = {
avatar: '$USER_AVATAR_URL$',
username: '$USERNAME$',
group: '$USER_GROUP$'
};
</script>

<script src="/js/pm-header-role.js"></script>
<link rel="stylesheet" href="/.s/src/base.min.css" />
<link rel="stylesheet" href="/.s/src/layer7.min.css" />
<link rel="stylesheet" href="https://bro.usite.pro/css/bro-message01.css?v=3" media="all">

</head>
<body>

<!-- МЕНЮ -->
<div class="header">
<div class="header-inner">

<a href="/" class="logo">DOM <span class="logo-box">LinkUp</span></a>

<form class="vk-search" action="/search" method="get">
<span class="vk-search-icon"></span>
<input type="text" name="q" placeholder="Поиск" />
</form>

$GLOBAL_GLOCKE$

<?if($USER_LOGGED_IN$)?>
<div class="nav-cta-wrapper">
<div class="nav-cta">

<!-- Пользователь -->
<div class="user-box" id="userMenu">

<!-- Аватар -->
<img src="$USER_AVATAR_URL$"
alt="$USERNAME$"
class="user-avatar real-avatar"
onerror="this.style.display='none';
this.nextElementSibling.style.display='block';">

<!-- Дефолтный аватар -->
<img src="/.s/src/profile/img/profile_photo_thumbnail.png"
alt="default"
class="user-avatar default-avatar"
style="display:none;">

<!-- Выпадающее меню -->
<div class="user-dropdown">
<div class="user-dropdown-header">
<span class="username">$USERNAME$</span>
</div>

<a href="/index/14" class="dropdown-item icon-messages">Личные сообщения</a>
<a href="/index/11" class="dropdown-item icon-settings">Настройки</a>
<a href="/index/8" class="dropdown-item icon-profile">Моя страница</a>
<a href="/index/15" class="dropdown-item icon-users">Пользователи</a>

<div class="dropdown-separator"></div>

<a href="$LOGOUT_LINK$" class="dropdown-item icon-logout logout">Выход</a>

</div>

</div>

</div>
</div>

<script>
document.addEventListener("click", function (e) {
const userBox = document.getElementById("userMenu");
if (!userBox) return;

if (userBox.contains(e.target)) {
userBox.classList.toggle("active");
} else {
userBox.classList.remove("active");
}
});
</script>
<?endif?>

</div>
</div>
</div>

</div>
</div>

<!-- КОНТЕНТ -->
<div class="container">
<!-- Левая колонка -->
<aside class="left-col">
$GLOBAL_MENU$
</aside>


<!-- Центральная колонка -->
<main class="center-col">
<div class="center-content" id="ajaxBody">
$BODY$
</div>
</main>

<!-- Правая колонка -->
<aside class="right-col">
<div class="right-block">
<div class="right-block-header">Действия</div>
<div class="right-block-content">
<!-- Сюда JavaScript добавит кнопки меню -->
</div>
</div>

<!-- Блок информации -->
<div class="right-block">
<div class="right-block-header">Информация</div>
<div class="right-block-content">
<!-- Сюда можно добавить информацию о пользователе используйте глобальный блок -->
<p>Здесь будет дополнительная информация</p>
</div>
</div>
</aside>
</div>

<script src="https://bro.usite.pro/js/hide-old-pm-form.js"></script>

<script>
// Передаём переменные uCoz в глобальные переменные
window.USER_DATA = {
avatar: '$USER_AVATAR_URL$',
username: '$USERNAME$',
group: '$USER_GROUP$'
};
</script>

<script src="https://bro.usite.pro/js/pm-message05.js?v=9"></script>

</body>
</html>




Обратная связь
Если нашли баги или есть предложения по улучшению, пишите в комментариях!
Версия: 1.0
Автор: [Мурчанн]
Совместимость: uCoz
Лицензия: свободное использование

Видео



Это пока лишь первая версия реализации. Основной причиной, по которой не удалось добиться функциональности, аналогичной социальной сети «ВКонтакте», является отсутствие доступа к API платформы. На данный момент сервис не предоставляет возможность работы с личными сообщениями, поэтому реализовать построение диалогов по тому же принципу, что и во «ВКонтакте», невозможно.

Будем надеяться, что в будущем разработчики откроют необходимый API. В таком случае я смогу реализовать скрипт, который будет строить диалоги практически так же, как это сделано во «ВКонтакте».

Пока же работа будет сосредоточена на дальнейшем развитии и совершенствовании текущей модели обработки сообщений. Уже сейчас она демонстрирует стабильную работу и успешно справляется со своими основными задачами.

Мурчанн

Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.
Дата: Воскресенье, 28.06.2026, 05:33 | Сообщение # 2 | | Написал: Известный
Автор темы
Мурчанн не в сети
        Сообщений:287
         Регистрация:20.10.2016
За уважение окружающих За уважение окружающих За хорошее поведение За преданность форуму За любовь народа

Внесены следующие изменения и исправления:

Добавлены заглушки для пустых папок. Теперь, если в папке отсутствуют сообщения, отображается уведомление Сообщений нет. Ранее существовал баг, из-за которого в пустых папках могли отображаться сообщения из других папок. Эта проблема полностью устранена каждая папка теперь отображает только свои сообщения.

Исправлена работа массового удаления сообщений. Ранее скрипт лишь имитировал процесс удаления, не выполняя его фактически. Теперь массовое удаление работает корректно: сообщения отмечаются и действительно удаляются.

Продолжается доработка скрипта. Впереди ещё ряд улучшений, направленных на повышение стабильности, производительности и удобства работы.

Общий дизайн меняться не будет основные изменения коснутся только функциональной части.

В ближайшее время скрипт будет проходить активное тестирование.. 2

Общая папка принятые..

Мурчанн

Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.
Дата: Понедельник, 29.06.2026, 05:17 | Сообщение # 3 | | Написал: Известный
Автор темы
Мурчанн не в сети
        Сообщений:287
         Регистрация:20.10.2016
За уважение окружающих За уважение окружающих За хорошее поведение За преданность форуму За любовь народа

Последние изменения при открытии формы кнопка меняет цвет на красный.
Изменён цвет статуса друга с серого на градиентный более яркий и красочный.



Ширина встроенного видео с YouTube и других сервисов теперь автоматически подстраивается под ширину страницы, предотвращая растягивание сайта.



Добавлена дополнительная функция, которая определяет тип вложения в личных сообщениях (аудио, видео и т. д.) и отображает соответствующий статус, указывающий, какой тип содержимого находится в сообщении.



Добавлен контроль ширины вставляемых изображений.



Скрипт стал немного умнее и получил ряд улучшений. 12

Мурчанн

Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.
  • Страница 1 из 1
  • 1
Поиск: