Инструменты пользователя

Инструменты сайта


manual:file_manager:test

file_manager

📖 ТЕХНИЧЕСКИЙ ПАСПОРТ МОДУЛЯ file_manager (ПОФАЙЛОВЫЙ РАЗБОР)

Каждая директория и файл внутри капсулы модуля modules/file_manager/ выполняют строго изолированную роль, подчиненную глобальному ядру Universal CMS [INDEX].

📁 1. Системные шлюзы и Логика (PHP-Бэкенд)

  • init.php — Входной шлюз модуля (Регистратор)
    • За что отвечает: Первым принимает управление от роутера ядра (core/router.php) [INDEX].
    • Логика: Проверяет сессию пользователя. Если пользователь гость — блокирует доступ. Если авторизован — динамически регистрирует модуль в главном меню шаблонизатора ({menu}) [INDEX].
  • controller.php — Главный мозг модуля (Диспетчер команд)
    • За что отвечает: Обрабатывает любые POST/GET запросы, прилетающие от JavaScript из браузера [INDEX].
    • Логика: Содержит функции actionUpload(), actionDelete(), actionRename(), actionChangeAccess(). Он не решает, можно ли юзеру смотреть файл, он лишь выполняет физические действия (перенос, удаление, вызов FFmpeg) и делает записи в БД [INDEX].
  • core_api.php — Внутреннее окно связи (Шлюз безопасности)
    • За что отвечает: Единственная точка входа для других модулей (например, для модуля Книжной библиотеки library) [INDEX].
    • Логика: Когда библиотека просит файл проекта, этот файл проверяет права текущего юзера. Он лезет в БД file_manager.db в таблицу files_catalog, смотрит поле access_level [INDEX]. Если там стоит private и ID юзера не совпадает с владельцем — шлюз рубит запрос до того, как файл скачается, выдавая ошибку 403 [INDEX].

👑 2. Панель управления Суперадмина (Root-контроль)

  • admin_panel.php — Локальный пульт управления модулем
    • За что отвечает: Настройки модуля, доступные исключительно для роли superuser (Главный Root) [INDEX].
    • Логика: Генерирует форму в глобальном Дашборде ядра, где Суперадмин может:
      • Задать разрешенные расширения файлов (запретить .exe, .sh) [INDEX].
      • Изменить цвет вкладок (theme_tab_color) и фон интерфейса менеджера [INDEX].
      • Напрямую читать файл действий file_actions.log [INDEX].
    • Связь с БД/Конфигом: Записывает настройки в локальный modules/file_manager/config.ini [INDEX].

🎨 3. Визуальный слой (Фронтенд и Интерфейс)

  • view.html — Каркас интерфейса (Таблица и 4 вкладки со скриншота)
    • За что отвечает: Чистая разметка HTML5. Содержит сетку (Grid) для вывода папок проектов Игоря (как папки «test», «мурманск») и зону Drag-and-Drop для перетаскивания файлов мышкой [INDEX]. Внизу содержит разметку 4-х вкладок («README», «Лицензия», «Комментарий», «Лог действий») [INDEX]. Не содержит PHP-кода!
  • assets/css/manager.css — Локальный стиль оформления
    • За что отвечает: Стилизация интерфейса менеджера. Важный момент: цвета вкладок и фона здесь прописаны через CSS-переменные (–tab-color), которые динамически подставляются из локального config.ini [INDEX].
  • assets/js/manager.js — Двигатель интерфейса (JavaScript)
    • За что отвечает: Перехватывает сброс файлов мышкой (переводит Drag-and-Drop в поток данных), отправляет асинхронные запросы fetch() к controller.php [INDEX]. Отвечает за плавное переключение нижних вкладок без перезагрузки страницы (запрашивает тексты из папки logs/) [INDEX].

📦 4. Локальные данные, Бортовые журналы и Переводы

  • config.ini — Локальный файл конфигурации модуля
    • За что отвечает: Хранит лимиты и настройки внешнего вида, заданные Суперадмином через admin_panel.php [INDEX]. Полностью изолирован от ядра [INDEX].
  • file_manager.db — База данных SQLite (Сердце учета)
    • За что отвечает: Хранит всю информацию о правах, приватности, хэшах и виртуальных папках [INDEX].
    • Связь с кодом: Именно поля этой БД (access_level, virtual_folder, is_deleted) определяют поведение controller.php и core_api.php [INDEX]. Физический файл на диске переименован в безопасный ID, а его реальное русское имя помнит только эта БД [INDEX].
  • lang/ — Папка децентрализованных переводов
    • ru.php — Хранит перевод кнопок и вкладок интерфейса на русский язык.
    • fr.php — Позволяет расширить менеджер французским или любым другим языком без ковыряния в ядре [INDEX].
  • logs/ — Контент вкладок и история (Текстовая база)
    • file_actions.log — Сюда контроллер пишет каждую загрузку/удаление в формате дата|юзер|действие|результат [INDEX].
    • readme.txt — Текстовый файл. Его содержимое модуль core_edit выводит и позволяет редактировать во вкладке «README» [INDEX].
    • license.txt — Юридические условия папки проекта (Вкладка «Лицензия») [INDEX].
    • comments.txt — Личные заметки пользователя о проекте (Вкладка «Комментарий») [INDEX].

🔒 5. Физическое заблокированное хранилище

  • storage/ — Директория изолированных пространств
    • За что отвечает: Сюда физически падают файлы [INDEX]. Доступ из браузера напрямую по ссылкам сюда закрыт через .htaccess ядра [INDEX].
    • igor/, alisa/, root_admin/ — Персональные папки пользователей, которые создаются автоматически при их первой загрузке файла [INDEX]. Зайти в папку alisa/ скрипт позволит только в том случае, если в сессии ядра $_SESSION['username'] === 'alisa', либо если файл имеет статус public в БД file_manager.db [INDEX].
Только авторизованные участники могут оставлять комментарии.
manual/file_manager/test.txt · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki