CMS"Belloo Dating"-"LovesUa"

Itnull

Admin
Регистрация
22.05.13
Сообщения
28.890
Реакции
13.360
Веб-сайт
itnull.me

CMS"​

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

1. Системные требования и характеристики хостинга​

Этот скрипт оптимизирован для работы на большинстве виртуальных хостингов (cPanel, ISPmanager, FastPanel, DirectAdmin, HestiaCP) и выделенных VPS/VDS серверах на базе Linux (Ubuntu 20.04/22.04/24.04, Debian 11/12, AlmaLinux/Rocky Linux).

🖥️ 1.1. Веб-сервер​

  • Веб-сервер: Apache 2.4+ или связка Nginx + Apache (где Nginx выступает как Reverse Proxy).
  • Модули Apache (обязательно включены:(
    • mod_rewrite — для работы ЧПУ-ссылок (маршрутизация страниц).
    • mod_headers — для настройки заголовков безопасности, CORS и браузерного кэша.
    • mod_deflate — для GZIP-сжатия передаваемого трафика (HTML, CSS, JS, SVG, JSON).
    • mod_expires — для долгосрочного кэширования статических ресурсов.
  • Поддержка файлов .htaccess: Директива AllowOverride All (разрешение на чтение правил из .htaccess).
  • SSL-сертификат (HTTPS:( Обязателен (например, бесплатный Let's Encrypt). Требуется для безопасности, PWA-приложения, HTML5-геолокации и WebRTC-видеозвонков.

🐘 1.2. Интерпретатор PHP​

  • Рекомендуемая версия PHP: PHP 7.4 (также полностью поддерживаются версии PHP 7.1, 7.2, 7.3).
  • Необходимые модули и расширения PHP:
    • mysqli — работа с базой данных MySQL/MariaDB.
    • curl — взаимодействие со сторонними API (Pusher, геокодирование карт, авторизация через соцсети, платежные шлюзы).
    • gd — обработка, сжатие, обрезка и генерация аватаров и фотографий пользователей.
    • mbstring — корректная обработка многобайтовых строк UTF-8 и кириллицы.
    • fileinfo — валидация MIME-типов загружаемых файлов.
    • zip — распаковка и экспорт тем, плагинов и языковых пакетов.
    • intl — поддержка интернационализации и локализации дат.
    • xml / dom — парсинг и работа со структурированными XML/HTML данными.
    • json — кодирование и декодирование JSON-ответов.
    • openssl — шифрование и безопасные сетевые запросы.
    • exif — автоповорот фотографий, сделанных на смартфоны.
  • Рекомендуемые параметры php.ini:
    Ini, TOML

    upload_max_filesize = 50M
    post_max_size = 50M
    memory_limit = 256M
    max_execution_time = 120
    max_input_vars = 3000
    allow_url_fopen = On
    short_open_tag = On
    session.auto_start = Off

🗄️ 1.3. База данных (MySQL)​

  • СУБД: MySQL 5.7+ или MariaDB 10.2+ (поддерживается и MySQL 8.0).
  • Кодировка базы данных: utf8mb4 (сопоставление / collation: utf8mb4_unicode_ci или utf8_general_ci) — для полноценной поддержки эмодзи в чатах и профилях.
  • SQL Mode: Стандартный режим (рекомендуется отключить строгий ONLY_FULL_GROUP_BY в случае возникновения специфических группировок).

📁 1.4. Права доступа к файлам и папкам (Permissions)​

Веб-сервер должен иметь права на запись (chmod 755 или 775, владелец www-data или пользователь хостинга) к следующим каталогам:
  • assets/sources/ (и все вложенные папки: uploads/, presets/ и т.д.).
  • assets/includes/ (для создания config.php во время установки).
  • install/ (на время первой установки).

⚙️ 1.5. Рекомендуемые характеристики​

  • Процессор: 1–2 ядра (vCPU).
  • Оперативная память: от 1 ГБ (рекомендуется 2 ГБ для стабильной работы при высокой нагрузке).
  • Дисковое пространство: от 15–20 ГБ SSD / NVMe.

2. Инструкция по установке на хостинг​

  1. Загрузка файлов: Загрузите содержимое папки проекта на ваш хостинг в корневую директорию сайта (public_html или www/vash-sait.com).
  2. Создание базы данных: Создайте новую базу данных MySQL, пользователя и назначьте ему полные права на эту базу.
  3. Запуск инсталлятора: Откройте в браузере адрес вашего сайта: [https://vash-sait.com/install/](https://vash-sait.com/install/).
  4. Проверка системы: Инсталлятор проверит параметры сервера на соответствие требованиям.
  5. Ввод данных: Введите параметры подключения к БД (хост, логин, пароль, название базы данных).
  6. Завершение: После установки система создаст assets/includes/config.php и заполнит базу данных актуальными таблицами со всеми исправлениями.

3. Отчёт о выполненных работах и оптимизации (Changelog)​

Ниже приведен полный перечень задач, решенных и реализованных в кодовой базе проекта:

🟢 1. Добавлен новый раздел «Онлайн» (Online Users)​

  • Кнопка в меню: В левой навигационной панели пользователя создан раздел «Онлайн» (рядом с «Люди рядом», «Встречи», «Самые популярные», «Сообщения», «Взаимодействие»).
  • Серверный обработчик: В assets/includes/core.php разработана функция onlineUsers(), которая динамически выбирает реальных пользователей и активных ботов онлайн с учетом фильтров по полу, возрасту, городу и с пагинацией.
  • Шаблон страницы: Создан интерфейс themes/default/layout/online/content.phtml для отображения карточек пользователей с кнопками симпатий, лайков и перехода в чат.
  • Маршрутизация: Добавлен роутинг в index.php, AJAX-обработчики в requests/user.php (case 'online' / case 'online_filter') и функции быстрого перехода в themes/default/js/lovesua.js.

🟢 2. Полный ребрендинг платформы (Bello Dating $\rightarrow$ LovesUa)​

  • SEO и тексты: Все упоминания названия Bello / Belloo Dating заменены на LovesUa в мета-тегах <title>, <meta description>, Open Graph, текстах страниц, подвале сайта, PWA-манифесте (mobile/manifest.webmanifest) и системных письмах.
  • Стили и скрипты:
    • Переименованы файлы стилей: themes/default/css/lovesua.css, mobile/css/lovesua.css, mobile/css/lovesua20.css.
    • Главный JS-файл переименован в themes/default/js/lovesua.js.
    • Создан обработчик requests/lovesua.php.
  • База данных: Обновлены записи бренда, слоганы, описания и дефолтные настройки в таблицах config, settings, site_theme, languages.
  • Инсталлятор: Обновлен интерфейс install/index.php, проверки install/check.php и дамп структуры install/schema.sql.

🟢 3. Исправлена ошибка 403 Forbidden при экспорте пресетов​

  • Суть проблемы: При попытке скачать JSON-файл конфигурации темы (assets/sources/presets/*.json) сервер возвращал ошибку 403 Forbidden.
  • Решение:
    • В корневом .htaccess расширение json исключено из списка глобально запрещенных файлов.
    • В папке assets/sources/presets/ создан файл правил .htaccess, разрешающий безопасное прямое скачивание JSON-пресетов браузером.

🟢 4. Оптимизация базы ботов и жесткий лимит (150 фейковых пользователей)​

  • Очистка базы: Удалено 3 925 избыточных ботов вместе с зависимыми данными (фото, лайки, визиты, уведомления, диалоги). Оставлена сбалансированная база из ровно 150 активных профилей.
  • Жесткий лимит (Hard Cap = 150:( В функции generateDemoUsers() (assets/includes/core.php) и в requests/user.php внедрен контроль лимита — новые боты больше не генерируются автоматически без ограничений.
  • Панель управления: В дашборде администратора зафиксированы лимиты fakeUserLimit = 150 и fakeUserUsage = 150.
  • Реальные пользователи: Подтверждено, что живые пользователи регистрируются с флагом fake = 0 и не имеют никаких ограничений на регистрацию.

🟢 5. Отключение неработающей рекламы AdSense и очистка консоли браузера​

  • В таблице config и плагинах adsWeb (реклама на ПК) и adsMobile (мобильная реклама) очищены демонстрационные коды рекламных блоков с тестовым ID ca-pub-6206822267839373.
  • В мобильных шаблонах mobile/templates/modals/ad.html и директивах mobile/js/directives.js убраны жестко зашитые обращения к pagead2.googlesyndication.com.
  • Полностью устранены ошибки HTTP 400 и предупреждения Tracking Prevention blocked access to storage в консоли разработчика (F12).

🟢 6. Очистка отладочных логов в JavaScript​

  • В файле lovesua.js удалены технические логи console.log(5000), console.log(120000) и console.log('activity detected').
  • В модуле историй themes/plugins/story.js заглушено служебное сообщение No story provided..

🟢 7. Исправление PHP-ошибки в чате (Warning non-numeric value)​

  • Суть проблемы: Предупреждение Warning: A non-numeric value encountered in core.php on line 4845 возникало из-за наличия в базе старых диалогов с удаленными пользователями (last_access возвращал строку 'noData').
  • Решение:
    • В функция getUserFriends() (core.php) и в realtime.php SQL-запрос соединен через INNER JOIN users u, что исключает диалоги с несуществующими аккаунтами.
    • Добавлено строгое приведение типов (int)$last_access, (int)$fake, (int)$online_day.
    • Очищено 10 устаревших записей в таблице chat.

🟢 8. Комплексная оптимизация под Google Lighthouse / PageSpeed​

  • Серверные правила (.htaccess:(
    • Включено GZIP-сжатие (mod_deflate).
    • Настроено кэширование браузера mod_expires (медиа и шрифты — 1 год, стили и JS — 1 месяц).
    • Добавлены заголовки безопасности (X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy).
  • Доступность (Accessibility — 93%:(
    • Добавлен тег <html lang="uk">.
    • Обновлен <meta name="viewport"> с поддержкой масштабирования (maximum-scale=5.0).
    • Добавлен семантический тег <main id="main-content" role="main"> и атрибуты aria-label для всех полей форм и кнопок.
    • Прописаны атрибуты alt, width и height для изображений.
  • Скорость (Performance — 97% ПК / 80% Mobile:(
    • Добавлен preconnect и параметр &display=swap для шрифтов Google Fonts.
    • Добавлен preload для фонового изображения и логотипа первого экрана (LCP).
    • Вторичные CSS-файлы переведены на неблокирующую асинхронную загрузку.
    • Убран блокирующий клиентский редирект на смартфонах.
  • SEO (100%) и Agentic Browsing (100%:(
    • Установлены <meta charset="UTF-8">, <link rel="canonical">, <meta name="theme-color"> и <meta name="robots">.

4. Результаты аудита Google Lighthouse / PageSpeed​

Показатель / КатегорияВерсия для ПК (Desktop)Мобильная версия (Mobile)Статус
Performance (Скорость / Core Web Vitals)97% 🟢80% 🟢Отлично
Accessibility (Доступность интерфейса)93% 🟢93% 🟢Отлично
SEO (Поисковая оптимизация)100% 🟢100% 🟢Идеально
Agentic Browsing (Семантика и структура)100% 🟢100% 🟢Идеально
Best Practices (Стандарты веб-разработки)70% 🟡67% 🟡На боевом сервере с HTTPS: 95–100%

5. Структура проекта​

Plaintext

CMS/
├── .htaccess # Главные правила Apache (сжатие GZIP, кэш, безопасность, ЧПУ)
├── index.php # Главная точка входа платформы
├── mobile.php # Точка входа мобильной адаптации
├── README.md # Этот документ
├── administrator/ # Панель управления (Админка)
├── assets/
│ ├── includes/
│ │ ├── connect.php # Подключение и системные настройки
│ │ ├── core.php # Главное ядро функций (онлайн, боты, чат, пользователи)
│ │ ├── realtime.php # Обработка событий реального времени
│ │ └── config.php # Файл конфигурации БД (создается инсталлятором)
│ └── sources/
│ ├── presets/ # Пресеты тем и языков (.htaccess с разрешением на скачивание)
│ └── uploads/ # Папка для загрузки фото, видео и медиа
├── install/ # Мастер установки платформы
│ ├── index.php # Пошаговый веб-инсталлятор
│ ├── check.php # Проверка совместимости сервера
│ └── schema.sql # Базовый обновленный дамп структуры БД (чистая установка)
├── mobile/ # Мобильная PWA версия сайта
│ ├── index.php # Шаблон мобильного веб-приложения
│ ├── manifest.webmanifest # Манифест PWA LovesUa
│ ├── css/ # Стили мобильной версии (lovesua.css, lovesua20.css)
│ └── js/ # Контроллеры и директивы AngularJS
├── requests/ # AJAX-обработчики запросов
│ ├── lovesua.php # Главный обработчик AJAX
│ ├── user.php # Обработка пользовательских действий, фильтров и раздела "Онлайн"
│ └── api.php # Внутренний REST API
└── themes/
├── default/ # Основная тема оформления
│ ├── layout/ # Шаблоны страниц (онлайн, меню, чат, контейнер)
│ │ ├── online/ # Шаблон раздела "Онлайн"
│ │ └── container.phtml # Главный контейнер авторизованной зоны
│ ├── css/ # Стили темы (lovesua.css)
│ └── js/ # Скрипты темы (lovesua.js)
└── landing1/ # Главный лендинг неавторизованных пользователей
└── layout/index/ # Шаблон первого экрана и формы регистрации/входа


 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу