Модернизация и обновление сайта веб-разработчика: Проект Revation
Данный кейс представляет собой процесс глубокой модернизации и рефакторинга собственного веб-ресурса (revation.ru), выступающего в качестве портфолио, каталога услуг и платформы для продажи программного обеспечения. Проект был реализован как демонстрация возможностей современных веб-технологий и переведен на самую актуальную версию системы управления контентом — Joomla 5.

Цели и технические задачи модернизации
В условиях быстро меняющихся стандартов веб-разработки корпоративный сайт должен не только эффективно выполнять функции лидогенерации, но и служить эталоном технического исполнения. Перед обновлением были поставлены следующие задачи:
- Полный переход на архитектуру Joomla 5 с отказом от устаревших расширений и зависимостей (включая минимизацию использования jQuery в пользу нативного JavaScript).
- Внедрение современного адаптивного интерфейса на базе фреймворка Helix Ultimate и Bootstrap 5.3.8.
- Реализация комплексной системы аутентификации, объединяющей классические методы, беспарольный вход (WebAuthn) и авторизацию через социальные сети (VK ID, Yandex, Google).
- Интеграция полноценной E-commerce платформы на базе J2Store для прямой продажи цифровых товаров (софта, плагинов, макросов).
- Оптимизация производительности и настройка продвинутой системы поиска с автодополнением.
Архитектура интерфейса и навигация
Интерфейс спроектирован с упором на технологичность, высокую скорость отклика и удобство пользователя на любых устройствах. Использован шаблонный фреймворк Helix Ultimate.
Структура и типографика
В основу дизайна легка строгая цветовая схема (темные тона с контрастными оранжевыми акцентами) и универсальная типографика. Для всех текстовых элементов, включая заголовки (H1-H3) и навигационные ссылки, применен шрифт Open Sans (с плотностями от 100 до 900), подключенный через Google Fonts.
Конфигурация адаптивности шаблона:
"data":{"breakpoints":{"tablet":991,"mobile":480},"header":{"stickyOffset":"100"}}
Реализована "липкая" шапка (Sticky Header), фиксирующаяся после прокрутки в 100px, что обеспечивает постоянный доступ к навигации.
Многоуровневое Mega Menu и Off-Canvas
Основная навигация (Десктоп) построена с использованием Mega Menu. Пункт «Услуги» (/catalog) раскрывается в виде широкого контейнера (900px), разделенного на три логические колонки (col-sm-4). Каждая колонка содержит тематические группы (Разработка сайтов, Услуги Joomla, SMM, Продвижение, Софт), снабженные иконками FontAwesome 6 (например, fa-globe, fa-joomla, fa-rocket).
Для мобильных устройств (и в качестве дополнительного меню на десктопе) реализована панель Off-Canvas (выдвигается слева), вызываемая кликом по кастомному "бургеру" с анимацией трансформации.
Интерактивные анимации (Hero Section)
Главный визуальный акцент первой секции (#sp-slider) — это интерактивная композиция с использованием CSS-анимаций. Блок содержит вращающиеся шестеренки (.gear-container), линии-провода (.zastavka-wire) и сменяющиеся изображения в мониторе (.zastavka-slide-item), символизирующие процесс разработки и модернизации сайтов.
E-commerce ядро: Интеграция J2Store
Для реализации каталога услуг и продажи цифрового программного обеспечения (софт, скрипты) внедрен компонент J2Store. Выбор этого расширения обусловлен его легковесностью и глубокой интеграцией с нативными материалами (статьями) Joomla, что позволяет превратить любую страницу в полноценный товар.
Асинхронная корзина покупок
Реализован AJAX-модуль мини-корзины, встроенный в боковую панель (Off-Canvas Right). Для мгновенного обновления статуса корзины без перезагрузки страницы написан кастомный JavaScript (интегрирован через jQuery.noConflict()):
$(document).bind('after_adding_to_cart', function(element,data, type){
var murl = '/cart/ajaxmini';
$.ajax({
url : murl,
// ... обновление DOM элементов J2Store
});
});
Многоуровневая система аутентификации
В целях обеспечения максимального удобства для клиентов, на сайте реализована передовая система входа в личный кабинет, объединяющая три различных метода.
1. Классическая авторизация и WebAuthn
Стандартная форма (логин/пароль) усилена кнопкой переключения видимости пароля (passwordview.min.js). Нативно интегрирован протокол FIDO2 WebAuthn, позволяющий авторизоваться с помощью биометрии (Touch ID, Windows Hello) — кнопка "Войти без пароля".
2. Социальная авторизация (Akeeba Social Login)
Внедрен плагин социальной аутентификации, переработанный для совместимости с Joomla 5. Пользователи могут в один клик войти на сайт через свои аккаунты:
- Google (интеграция по OAuth 2.0).
- Yandex ID (интеграция через OAuth Yandex).
- VK ID. Для кнопки VK был написан дополнительный JavaScript-сниппет, принудительно переопределяющий цвета (
#0077ff) и заливку SVG-иконки для точного соответствия брендбуку ВКонтакте.
Инструменты поиска и коммуникации
Интеллектуальный поиск (Smart Search)
На сайте внедрен многовекторный поиск. В шапке сайта расположена скрытая панель поиска, вызываемая по клику на иконку. Поиск использует компонент com_finder.
- Awesomplete: Библиотека (версии 1.1.7) обеспечивает функцию автодополнения (Auto-suggest) при вводе запроса.
- OpenSearch: В
<head>внедрен тегapplication/opensearchdescription+xml, позволяющий браузерам индексировать поисковый движок сайта и искать по нему напрямую из адресной строки.
Формы обратной связи и Email-маркетинг
В качестве основного инструмента лидогенерации (обсуждение проекта, заказ звонка) используется компонент QuickForm3 (QF3). Формы вызываются в модальных окнах через классы-триггеры (например, qf3modal specifications). За счет асинхронной загрузки (AJAX) формы не утяжеляют DOM-дерево при загрузке страницы.
Для рассылки уведомлений и новостей в подвал сайта (Footer) интегрирован модуль AcyMailing (v1040). Он обеспечивает строгую валидацию email-адресов через регулярные выражения и отправляет данные без перезагрузки (AJAX), что существенно повышает конверсию.
Использованные технологии
| Технология / Компонент | Версия | Роль в архитектуре проекта |
|---|---|---|
| Joomla! CMS | 5.x | Базовое ядро платформы, маршрутизация, ACL, WebAuthn. |
| J2Store | Latest | E-commerce ядро, продажа софта и услуг, AJAX-корзина. |
| Helix Ultimate | 2.0+ | Фронтенд-фреймворк, Bootstrap 5.3.8, Mega Menu. |
| Akeeba Social Login | Modified | Авторизация пользователей через VK, Yandex, Google. |
| QuickForm3 (QF3) | 3.3.05 | Асинхронные формы заказа, защита от спама. |
| AcyMailing | v1040 | Модуль подписки на email-рассылку. |
Заключение
Модернизация сайта Revation.ru демонстрирует возможности актуальной платформы Joomla 5 в связке с современными инструментами (J2Store, WebAuthn, Social Login). Проект получил высокопроизводительный, адаптивный интерфейс с глубокой интеграцией e-commerce и многоуровневой системой авторизации. Если вам требуется профессиональное обновление, перенос или разработка сайта с нуля, ознакомьтесь с ответами на частые технические вопросы.
Развернуть полный вид сайта Revation на Джумле 5

Примечание: текущее состояние и внешний вид действующего сайта могут отличаться.
Почему для продажи софта выбран J2Store, а не VirtueMart?
Для продажи цифровых товаров (плагины, скрипты) или фиксированных услуг не требуется тяжеловесный функционал (сложные склады, сотни характеристик). J2Store использует стандартные материалы Joomla (com_content) как карточки товаров, что делает систему максимально быстрой, легкой в управлении и идеально подходящей для сайта-визитки с функциями магазина.
Как работает функция OpenSearch?
Тег <link rel="search" type="application/opensearchdescription+xml"> передает браузеру XML-файл с описанием поискового движка сайта. После того как пользователь один раз воспользуется поиском на сайте, браузер запомнит его. В дальнейшем, если в адресной строке Chrome начать вводить "revation.ru" и нажать Tab, поиск будет осуществляться напрямую по базе данных сайта.
Зачем нужен отдельный JavaScript для стилизации кнопки VK ID?
Стандартные плагины социальной авторизации иногда используют устаревшие или не точные брендовые цвета (например, старый синий цвет ВКонтакте). JS-скрипт (button.style.setProperty) принудительно переопределяет цвета кнопки на актуальные (HEX: #0077ff) сразу после загрузки DOM, обеспечивая строгое соответствие брендбуку.
Что за скрипт Awesomplete и почему не используется jQuery UI Autocomplete?
Awesomplete — это ультралегкая (около 2 КБ) JavaScript-библиотека для создания выпадающих списков автодополнения (автокомплит). В отличие от jQuery UI, она работает на чистом (Vanilla) JavaScript и не требует подключения тяжелых зависимостей. Это соответствует парадигме Joomla 5 — отказ от лишнего использования jQuery для ускорения рендеринга страниц.
Как реализован переключатель светлой и темной темы?
В боковой панели находится чекбокс (#themeToggle) с иконками солнца и луны. При его переключении JavaScript меняет класс на теге <body> (или <html>) и сохраняет выбор в LocalStorage браузера. CSS сайта содержит переменные (Custom Properties), цвета которых переопределяются в зависимости от активного класса темы.