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
