Обзор CMS

1. Обзор Системы

Tech4Lite — это легковесная система управления контентом (CMS), спроектированная специально для создания одностраничных сайтов (лендингов) и сайтов-визиток. Её архитектура проста и ориентирована на высокую скорость работы, что делает её отличным примером для веб-разработки на PHP без использования сторонних фреймворков.


2. Архитектура и Ключевые Концепции

Система построена на классическом стеке PHP + MySQL. Отсутствие фреймворков позволяет легко отслеживать всю логику работы.

  • Основная идея: Центральным элементом является концепция "Якорей" (Anchors). Администратор создает якорь (например, #about), который автоматически становится пунктом в меню навигации. Система тут же генерирует для него связанные "Блоки контента" (about-title и about-text), которые наполняются через админ-панель. Это позволяет интуитивно управлять секциями на главной странице.
  • Файловая структура:
    • index.php: Главный файл, отображающий лендинг.
    • page.php: Отвечает за отображение отдельных статических страниц.
    • /admin/: Вся логика панели администратора.
    • /install/: Скрипты для первоначальной установки системы.
    • /themes/: Директории с темами оформления.

3. Frontend (Клиентская часть)

Клиентская часть максимально оптимизирована для скорости загрузки.

  • Загрузка данных: При открытии index.php, скрипт сначала выполняет запросы к базе данных для получения всех настроек сайта, якорей, страниц, изображений и контент-блоков. Это минимизирует обращения к БД во время рендеринга страницы.
  • Отображение контента: Для вывода контента используется вспомогательная PHP-функция display_block(), которая проверяет наличие и непустое содержимое блока, что предотвращает ошибки.
  • Темы оформления: Система поддерживает два режима: "одна тема" или "две темы" (светлая/темная) с переключателем для пользователя. Это реализовано через динамическое подключение CSS-файла.
  • Оптимизация:
    • Изображения в галерее загружаются с атрибутом loading="lazy".
    • Карта в контактах загружается отложено с помощью JavaScript IntersectionObserver, что значительно улучшает показатели PageSpeed.
    • Реализован cookie-баннер, управляемый через localStorage.

4. Backend (Панель администратора)

Панель администратора (/admin/) предоставляет полный CRUD-функционал.

  • Структура: Интерфейс состоит из бокового меню (sidebar.php) и основной контентной части.
  • Основные разделы:
    • Главная: Управление глобальными настройками (название сайта, SEO, тексты).
    • Якоря в шапке: Создание и сортировка секций-якорей.
    • Текст и Код: Редактирование контента для каждой секции. Поддерживаются блоки типа text и code (HTML, CSS, JS).
    • Страницы: Управление статическими страницами (например, "Политика конфиденциальности").
  • Безопасность: Доступ к админ-панели защищен проверкой сессии (auth_check.php). Все формы защищены от CSRF-атак с помощью токенов.

5. Структура Базы Данных

Схема БД проста и логична, что идеально для обучения. Она описана в файле install/database.sql.

  • site_settings: Таблица "ключ-значение" для хранения глобальных настроек.
  • anchors: Хранит пункты меню для главной страницы.
  • content_blocks: "Сердце" CMS. Содержит текстовое или кодовое наполнение для всех секций.
  • users: Хранит данные администраторов. Пароли хешируются с использованием password_hash() и современного алгоритма Argon2ID.