Полная переработка системы личных сообщений в стиле 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-шаблон В шаблон страницы ЛС добавьте:
<!-- Блок информации --> <div class="right-block"> <div class="right-block-header">Информация</div> <div class="right-block-content"> <!-- Сюда можно добавить информацию о пользователе используйте глобальный блок --> <p>Здесь будет дополнительная информация</p> </div> </div> </aside> </div>
Обратная связь Если нашли баги или есть предложения по улучшению, пишите в комментариях! Версия: 1.0 Автор: [Мурчанн] Совместимость: uCoz Лицензия: свободное использование
Видео
Это пока лишь первая версия реализации. Основной причиной, по которой не удалось добиться функциональности, аналогичной социальной сети «ВКонтакте», является отсутствие доступа к API платформы. На данный момент сервис не предоставляет возможность работы с личными сообщениями, поэтому реализовать построение диалогов по тому же принципу, что и во «ВКонтакте», невозможно.
Будем надеяться, что в будущем разработчики откроют необходимый API. В таком случае я смогу реализовать скрипт, который будет строить диалоги практически так же, как это сделано во «ВКонтакте».
Пока же работа будет сосредоточена на дальнейшем развитии и совершенствовании текущей модели обработки сообщений. Уже сейчас она демонстрирует стабильную работу и успешно справляется со своими основными задачами.
Добавлены заглушки для пустых папок. Теперь, если в папке отсутствуют сообщения, отображается уведомление Сообщений нет. Ранее существовал баг, из-за которого в пустых папках могли отображаться сообщения из других папок. Эта проблема полностью устранена каждая папка теперь отображает только свои сообщения.
Исправлена работа массового удаления сообщений. Ранее скрипт лишь имитировал процесс удаления, не выполняя его фактически. Теперь массовое удаление работает корректно: сообщения отмечаются и действительно удаляются.
Продолжается доработка скрипта. Впереди ещё ряд улучшений, направленных на повышение стабильности, производительности и удобства работы.
Общий дизайн меняться не будет основные изменения коснутся только функциональной части.
В ближайшее время скрипт будет проходить активное тестирование..
Последние изменения при открытии формы кнопка меняет цвет на красный. Изменён цвет статуса друга с серого на градиентный более яркий и красочный.
Ширина встроенного видео с YouTube и других сервисов теперь автоматически подстраивается под ширину страницы, предотвращая растягивание сайта.
Добавлена дополнительная функция, которая определяет тип вложения в личных сообщениях (аудио, видео и т. д.) и отображает соответствующий статус, указывающий, какой тип содержимого находится в сообщении.
Добавлен контроль ширины вставляемых изображений.
Скрипт стал немного умнее и получил ряд улучшений.