| Следующая версия | Предыдущая версия |
| manual:application_core:test [2026/07/12 15:57] – создано - внешнее изменение 127.0.0.1 | manual:application_core:test [2026/07/12 21:31] (текущий) – внешнее изменение 127.0.0.1 |
|---|
| тест | arch-linux\\ |
| | css/php/js\\ |
| | ffmpeg - автономный без установки\\ |
| | tauri+php+js\\ |
| | автономная библиотека wire-guard\\ |
| | |
| | - UCMS Kernel - создание ядра приложения и модулей, а так-же шаблонов. |
| | - UCMS install - создание временного модуля установки приложения (англ. application installation) |
| | - UCMS Dashboard - создание подключаемого модуля панель управления (англ. dashboard) |
| | - UCMS File - создание подключаемого модуля файловая библиотека (англ. file, от file library) |
| | - UCMS Bcw - создание подключаемого модуля сайта-визитки (англ. BCW, от business card website) |
| | - UCMS Book - создание подключаемого модуля книжная библиотека (англ. book, от book library) |
| | - UCMS Blog - создание подключаемого модуля блога (англ. blog, от web log) |
| | - UCMS Video - создание подключаемого модуля видеохостинга (лат. video и англ. hosting) |
| | - UCMS Sns - создание подключаемого модуля социа́льная сеть (англ. SNS от social networking service) |
| | |
| | <code> |
| | ucms_stick/ <-- Автономная папка-капсула на ПК или флешке |
| | │ |
| | ├── LICENSE <-- Юридическая свобода (Лицензия MIT/Apache 2.0 на весь комплект) |
| | ├── README.md <-- Краткая инструкция по запуску run.cmd для читателя книги |
| | ├── server/ <-- Портативное окружение (Apache / PHP) |
| | ├── run.cmd <-- Скрипт запуска локального сервера в 1 клик |
| | │ |
| | └── ucms/ <-- ЕДИНОЕ ВЕБ-ПРИЛОЖЕНИЕ (APP_ROOT) |
| | │ |
| | ├── .htaccess <-- Единое перенаправление всех запросов на index.php |
| | ├── index.php <-- Входная точка ядра (запуск сессий, вызов роутера) |
| | ├── version.txt <-- Текущая версия системы (например, "1.0.0") |
| | ├── LICENSE <-- Лицензия на само веб-приложение |
| | ├── README.md <-- Описание структуры папок ucms для изучающих код |
| | │ |
| | ├── config/ <-- КОНФИГУРАЦИЯ |
| | │ └── config.ini <-- Создается автоматически при первой установке |
| | │ |
| | ├── core/ <-- ЖЕСТКОЕ СИСТЕМНОЕ ЯДРО (ДНК системы) |
| | │ ├── router.php <-- Маршрутизатор, проверка config.ini, защита CORS |
| | │ ├── database.php <-- SQLite обертка (авто-подключение core_main.db) |
| | │ ├── system.php <-- (Наш прошлый сборщик паспорта version.json) |
| | │ │ |
| | │ ├── logger.php <-- ГЛАВНЫЙ КЛАСС ЛОГИРОВАНИЯ (Сборщик всех багов) |
| | │ │ - Перехватывает ошибки PHP через set_error_handler |
| | │ │ - Перехватывает фатальные сбои через register_shutdown_function |
| | │ │ - Форматирует и записывает баги в файлы ниже |
| | │ │ |
| | │ ├── template.php <-- Шаблонизатор (обработка тегов {content}, {auth}) |
| | │ ├── paths.php <-- Карта относительной автономности путей |
| | │ │ |
| | │ ├── security.php <-- ГЛОБАЛЬНЫЙ ДИСПЕТЧЕР БЕЗОПАСНОСТИ (Цепляет списки ниже) |
| | │ ├── security/ <-- Базы данных и списки черного контура защиты |
| | │ │ ├── black_ip.dat <-- Локальный список забаненных IP адресов за флуд |
| | │ │ ├── bad_logins.dat <-- Запрещенные ники (admin, root, moder, system, null) |
| | │ │ └── weak_pwd.dat <-- База топ-1000 известных паролей (запрет к установке юзерами) |
| | │ │ |
| | │ │ |
| | │ ├── system.php <-- НАШ НОВЫЙ ФАЙЛ: СИСТЕМНЫЙ ИНСПЕКТОР (Сборщик паспорта) |
| | │ │ - Сканирует версию PHP и подключенные модули (FFI, SQLite) |
| | │ │ - Читает лимиты из php.ini (upload_max_filesize, memory_limit) |
| | │ │ - Обходит папку /modules/, собирая версии из файлов init.php |
| | │ │ - Генерирует или обновляет файл version.json одной функцией |
| | │ │ |
| | │ └── lang/ <-- СИСТЕМНЫЕ ПЕРЕВОДЫ ЯДРА (Только база) |
| | │ ├── ru.php <-- Перевод системных ошибок и ядра на русский |
| | │ └── en.php <-- Перевод системных ошибок на английский |
| | │ |
| | ├── logs/ <-- НОВАЯ ИЗОЛИРОВАННАЯ ПАПКА ДЛЯ ЛОГОВ СИСТЕМЫ |
| | │ ├── php_errors.log <-- КЛАССИЧЕСКИЕ БАГИ (Сюда пишутся опечатки в коде, забытые ';' и т.д.) |
| | │ ├── sql_errors.log <-- СБОИ БАЗЫ ДАННЫХ (Ошибки запросов к SQLite, блокировки таблиц WAL) |
| | │ └── security_attacks.log <-- ЛОГ АТАК (Сюда security.php пишет IP-адреса тех, кто подбирает пароли) |
| | │ |
| | ├── templates/ <-- ГЛОБАЛЬНЫЙ ДИЗАЙН (Каркас по умолчанию) |
| | │ ├── errors/ <-- ПАПКА КРАСИВЫХ СУВЕРЕННЫХ ЗАГЛУШЕК ДЛЯ ПОЛЬЗОВАТЕЛЯ |
| | │ │ ├── 403.html <-- Доступ запрещен (Например, юзер без прав лезет в Dashboard) |
| | │ │ ├── 404.html <-- Модуль или страница не найдены |
| | │ │ └── 500.html <-- Критическая ошибка (Когда упал PHP или база данных) |
| | │ │ |
| | │ ├── main.html <-- Шаблон Dashboard (содержит теги {content}, {menu}) |
| | │ ├── auth.html <-- Шаблон страницы входа (содержит тег {auth}) |
| | │ └── assets/ <-- Глобальные стили ядра (main.css, nav.css, main.js) |
| | │ |
| | ├── test/ <-- ОБУЧАЮЩАЯ ИНТЕРАКТИВНАЯ ПЕСОЧНИЦА (Лаборатория читателя) |
| | │ ├── test_paths.php <-- Урок 1: Эксперименты с константами путей |
| | │ ├── test_controller_1.php <-- Урок 2: Разбор URL и логика роутинга |
| | │ ├── test_controller_2.php <-- Урок 3: Прямое сырое подключение к SQLite |
| | │ ├── test_controller_4.php <-- Урок 4: Тестовый вызов портативного Си-бинарника FFmpeg |
| | │ └── test_errors_dump.php <-- Урок 5: Изучение перехвата ошибок и логов |
| | │ |
| | └── modules/ <-- ФАБРИКА АВТОНОМНЫХ МОДУЛЕЙ (Капсулы Варианта А) |
| | │ |
| | ├── test/ <-- Визуальный модуль отладки для Dashboard (Рентген тегов и логов) |
| | │ |
| | ├── core_install/ <-- Временный модуль установки (Блокируется после генерации config.ini) |
| | ├── core_auth/ <-- Система контроля доступа (login, register, 2fa, reset) |
| | ├── core_dashboard/ <-- Панель управления Суперадмина + Подмодуль суверенного обновления updater/ |
| | │ |
| | ├── core_edit/ <-- НОВЫЙ ОБЯЗАТЕЛЬНЫЙ МОДУЛЬ: СУВЕРЕННЫЙ ТЕКСТОВЫЙ РЕДАКТОР |
| | │ ├── init.php <-- Проверяет авторизацию пользователя перед открытием редактора |
| | │ ├── controller.php <-- PHP-мозг (принимает измененный текст и перезаписывает файлы) |
| | │ ├── view.html <-- HTML-каркас панели редактора (кнопки "Жирный", "Курсив", "Сохранить") |
| | │ │ |
| | │ └── assets/ <-- Главное оружие визуального редактора |
| | │ ├── css/ |
| | │ │ └── edit.css <-- Стили кнопок форматирования и окна редактора |
| | │ └── js/ |
| | │ └── edit.js <-- Ультралегкий JS-движок визуального редактирования текста |
| | │ |
| | ├── file_manager/ <-- НАШ ФАЙЛОВЫЙ МЕНЕДЖЕР (КАК НА СКРИНШОТЕ) |
| | │ ├── admin_panel.php <-- НОВЫЙ ФАЙЛ: ЛОКАЛЬНЫЙ ДАШБОРД МОДУЛЯ (Только для Root) |
| | │ │ - Выводит форму настроек (цвет вкладок, фон, чекбоксы разрешенных файлов) |
| | │ │ - Сохраняет персональные лимиты модуля в config.ini |
| | │ │ - Показывает Суперадмину файл file_actions.log |
| | │ ├── init.php <-- Точка входа, проверка сессии ядра |
| | │ ├── controller.php <-- Основной мозг обработки команд |
| | │ ├── view.html <-- Наша верстка таблицы и вкладок (как на фото) |
| | │ │ |
| | │ ├── assets/ <-- Визуальные ресурсы |
| | │ │ ├── css/ |
| | │ │ │ └── manager.css <-- Стили вкладок, таблицы и зоны Drag-and-Drop |
| | │ │ └── js/ |
| | │ │ └── manager.js <-- Локальный JS (переключение вкладок, fetch-запросы) |
| | │ │ |
| | │ ├── file_manager.db <-- База данных индексов папок проекта |
| | │ │ |
| | │ ├── config.ini <-- ЛОКАЛЬНЫЕ НАСТРОЙКИ ТОЛЬКО ЭТОГО МОДУЛЯ! |
| | │ │ -allowed_extensions = "jpg,png,pdf,zip" |
| | │ │ -theme_tab_color = "#3498db" |
| | │ │ -theme_bg_color = "#ffffff" |
| | │ │ |
| | │ │ |
| | │ ├── logs/ <-- ПАПКА ЛОКАЛЬНЫХ ЖУРНАЛОВ МОДУЛЯ |
| | │ │ ├── file_actions.log <-- ЖУРНАЛ ДЕЙСТВИЙ (Сюда пишется: кто, когда, что загрузил/удалил) |
| | │ │ ├── readme.txt <-- Источник для вкладки "README" (описание текущей папки проекта) |
| | │ │ ├── license.txt <-- Источник для вкладки "Лицензия" (юридические условия проекта) |
| | │ │ └── comments.txt <-- Источник для вкладки "Комментарий" (заметки пользователя) |
| | │ │ |
| | │ │ |
| | │ ├── lang/ <-- ДЕЦЕНТРАЛИЗОВАННЫЙ ПЕРЕВОД МОДУЛЯ |
| | │ │ ├── ru.php <-- Перевод кнопок "Загрузить", "Удалить" на русский |
| | │ │ └── fr.php <-- Возможность дополнить модуль французским переводом |
| | │ ├── core_api.php <-- НОВЫЙ ФАЙЛ: ВНУТРЕННИЙ ШЛЮЗ ДЛЯ ДРУГИХ МОДУЛЕЙ |
| | │ │ - Позволяет модулю библиотеки запрашивать файлы |
| | │ │ - Проверяет права доступа стороннего модуля к хранилищу |
| | │ │ |
| | │ └── storage/ <-- Изолированное хранилище файлов пространств |
| | │ ├── igor/ <-- Пространство Игоря со скриншота |
| | │ │ ├── test/ <-- Папка проекта "test" |
| | │ │ ├── мурманск/ <-- Папка проекта "мурманск" |
| | │ │ └── ... |
| | │ └── root_admin/ |
| | │ |
| | └── library/ <-- МОДУЛЬ: ДОМАШНЯЯ КНИЖНАЯ БИБЛИОТЕКА |
| | ├── init.php |
| | ├── controller.php |
| | ├── view.html |
| | ├── assets/ <-- Локальные стили каталога и темы оформления (изменение цвета модуля) |
| | ├── library.db |
| | ├── lang/ <-- Локальные переводы библиотеки (ru.php, en.php, fr.php) |
| | └── storage/ <-- Хранилище книг (.pdf) и ISO-образов софта (alisa/, root_admin/) |
| | |
| | |
| | </code> |
| | |
| | https://wwoss.ru/doku.php?id=manual:file_manager:test \\ |
| | https://wwoss.ru/doku.php?id=manual:file_manager_db:test \\ |
| | |
| | <diagram> |
| | |AAA||||||AAA{text-align:left;border-color:white}={{fa>folder?}} ucms_stick |
| | |)|AAA||||||AAA{text-align:left;border-color:white}={{fa>file?}} run.cmd |
| | |)|AAA||||||AAA{text-align:left;border-color:white}={{fa>folder?}} server |
| | |`|AAA||||||AAA{text-align:left;border-color:white}={{fa>folder?}} ucms |
| | ||)|EEE|||||EEE{text-align:left;border-color:white}={{fa>folder?}} users |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} .htaccess |
| | ||!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} admin |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} account_admin |
| | ||!|!|!|`|BBB||BBB{text-align:left;border-color:white}={{fa>file}} admin_setting.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} admin_nav.php |
| | ||!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} admin.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} account_user |
| | ||!|!|!|)|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_login.php |
| | ||!|!|!|)|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_logout.php |
| | ||!|!|!|`|BBB||BBB{text-align:left;border-color:white}={{fa>file}} user_signup.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} messages |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user_edit.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user_nav.php |
| | ||!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} user.php |
| | ||!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} ghost.php |
| | ||!|`|CCC|||||CCC{text-align:left;border-color:white}={{fa>file?}} users.php |
| | ||)|BBB|||||BBB{text-align:left;border-color:white}={{fa>folder?}} content |
| | ||!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} data |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} books |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} images |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} media |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} music |
| | ||!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>folder?}} media |
| | ||!|`|BBB|||BBB{text-align:left;border-color:white}={{fa>file?}} cont.php |
| | ||)|DDD|||DDD{text-align:left;border-color:white}={{fa>folder?}} includes |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} .htaccess |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} config.ini |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} cons.php |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} db.php |
| | ||!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} demo |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} mail.php |
| | ||!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} lang |
| | ||!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} en |
| | ||!|!|!|`|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} lang_en.php |
| | ||!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} ru |
| | ||!|!||`|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} lang_ru.php |
| | ||!|)|DDD||DDD{text-align:left;border-color:white}={{fa>file?}} function.php |
| | ||!|`|DDD|||DDD{text-align:left;border-color:white}={{fa>file?}} search.php |
| | ||)|CCC|||CCC{text-align:left;border-color:white}={{fa>folder?}} library |
| | ||!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} install |
| | ||!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} css |
| | ||!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} install.css |
| | ||!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} js |
| | ||!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} install.js |
| | ||!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} tpl |
| | ||!|!|!|)|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} tpl_install_header.php |
| | ||!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} tpl_install_footer.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} account_settings.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} database_options.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} install.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} installation_progress.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} lang_and_time_zone.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} module_help.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} options.php |
| | ||!|!|)|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} server_check.php |
| | ||!|!|`|BBB||||BBB{text-align:left;border-color:white}={{fa>file?}} setting.php |
| | ||!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} template |
| | ||!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} blog |
| | ||!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} vcms |
| | ||!|!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} standart |
| | ||!|!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} css |
| | ||!|!|!|!|!|)|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} main.css |
| | ||!|!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} nav.css |
| | ||!|!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} js |
| | ||!|!|!|!|!|)|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} main.js |
| | |!|!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} nav.js |
| | ||!|!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} img |
| | ||!|!|!|!|)|CCC|CCC{text-align:left;border-color:white}={{fa>folder?}} fonts |
| | ||!|!|!|!|!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} style.ini |
| | ||!|!|!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_main.php |
| | ||!|!|!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_footer.php |
| | ||!|!|!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>file}} tpl_header.php |
| | ||!|!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} user_template |
| | ||!|!|)|CCC||CCC{text-align:left;border-color:white}={{fa>folder?}} updata |
| | ||!|!|`|CCC||CCC{text-align:left;border-color:white}={{fa>file?}} main.php |
| | ||!|)|222||222{text-align:left;border-color:white}={{fa>file?}} 404.php |
| | ||!|`|CCC|||CCC{text-align:left;border-color:white}={{fa>file?}} lib.php |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} .htaccess |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} .htpasswd |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} index.php |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} [[software:development:demo:cms:ucms:help|help.txt]] |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} readme.html |
| | ||)|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} license.txt |
| | ||`|MMM|||MMM{text-align:left;border-color:white}={{fa>file?}} version.txt |
| | </diagram> |
| | |
| | ==== Основные этапы и Формы ==== |
| | * Файл **index.php** |
| | * Создание директорий модуля и приложения |
| | * Временный шаблон **sample.php** |
| | * Создание блочной адаптивной формы **HTML** |
| | * Подключение стилей **CSS** |
| | * Переводы приложения **lang.php** |
| | * Сессии **PHP** |
| | * Главный шаблон формы **auth.php** |
| | * Верхний подключаемый компонент шаблона **header.php** |
| | * Нижний подключаемый компонент шаблона **footer.php** |
| | * Форма регистрации **register.php** |
| | * Форма авторизации **login.php** |
| | * Форма верификации (подтверждения почты) **confirm.php** |
| | * Форма сброса пороля **reset.php** |
| | * Форма двухфакторная аутентификация **2fa.php** |
| | * Форма регистрации двухфакторной аутентификации **otp.php** |
| | * Форма редактирования профиля пользователя **edit.php** |
| | * Форма удаления регистрации **delete.php** |
| | * Проверка вводимых данных, вывод ошибок на стороне клиента |
| | * Проверка вводимых данных, вывод ошибок на стороне сервера |
| | * Логика работы модуля |
| | * Работа с БД |
| | * Работа с почтой |
| | * Работа с OTP QR-code |
| | * Загрузка фото на сервер |
| | * Обработка фото и безопасность перед загрузкой на сервер |
| | * |