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

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


manual:application_core:test

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
manual:application_core:test [2026/07/12 18:20] VladPolskiymanual:application_core:test [2026/07/12 21:31] (текущий) – внешнее изменение 127.0.0.1
Строка 16: Строка 16:
  
 <code> <code>
-ucms_stick/ +ucms_stick/                      <-- Автономная папка-капсула на ПК или флешке 
-├── server/                      <-- Портативный Apache/PHP +│ 
-├── run.cmd +├── LICENSE                      <-- Юридическая свобода (Лицензия MIT/Apache 2.0 на весь комплект) 
-└── ucms/                        <-- НАШЕ ПРИЛОЖЕНИЕ (APP_ROOT) +├── README.md                    <-- Краткая инструкция по запуску run.cmd для читателя книги 
-    ├── .htaccess +├── server/                      <-- Портативное окружение (Apache / PHP) 
-    ├── index.php+├── run.cmd                      <-- Скрипт запуска локального сервера в 1 клик 
 + 
 +└── ucms/                        <-- ЕДИНОЕ ВЕБ-ПРИЛОЖЕНИЕ (APP_ROOT)
     │     │
-    ├── core/                    <-- Жесткое Системное Ядро +    ├── .htaccess                <-- Единое перенаправление всех запросов на index.php 
-    │   ├── router.php +    ├── index.php                <-- Входная точка ядра (запуск сессий, вызов роутера) 
-    │   ├── database.php         <-- Подключает core_main.db +    ├── version.txt              <-- Текущая версия системы (например, "1.0.0") 
-    │   ├── logger.php +    ├── LICENSE                  <-- Лицензия на само веб-приложение 
-    │   ├── template.php +    ── README.md                <-- Описание структуры папок ucms для изучающих код
-    │   └── paths.php            <-- Вычисляет относительные пути+
     │     │
-    ├── config/ +    ├── config/                  <-- КОНФИГУРАЦИЯ 
-    │   └── config.ini           <-- Создается автоматически при инсталляции+    │   └── config.ini           <-- Создается автоматически при первой установке
     │     │
-    ├── templates              <-- Глобальный дизайн Dashboard +    ├── core                   <-- ЖЕСТКОЕ СИСТЕМНОЕ ЯДРО (ДНК системы) 
-    │   ├── main.html +    │   ├── router.php           <-- Маршрутизатор, проверка config.ini, защита CORS 
-    │   ├── auth.html +    │   ├── database.php         <-- SQLite обертка (авто-подключение core_main.db) 
-    │   └── assets/ (css/js)+    │   ├── 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           <-- Перевод системных ошибок на английский
     │     │
-    ├── test/                    <-- Обучающая интерактивная песочница читателя +    ├── logs/                    <-- НОВАЯ ИЗОЛИРОВАННАЯ ПАПКА ДЛЯ ЛОГОВ СИСТЕМЫ 
-    │   ├── test_paths.php +    │   ├── php_errors.log       <-- КЛАССИЧЕСКИЕ БАГИ (Сюда пишутся опечатки в коде, забытые ';' и т.д.) 
-    │   ├── test_controller_1.php +    │   ├── sql_errors.log       <-- СБОИ БАЗЫ ДАННЫХ (Ошибки запросов к SQLite, блокировки таблиц WAL) 
-    │   └── test_errors_dump.php+    │   └── 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/                 <-- ФАБРИКА АВТОНОМНЫХ МОДУЛЕЙ (Капсулы Варианта А)     └── modules/                 <-- ФАБРИКА АВТОНОМНЫХ МОДУЛЕЙ (Капсулы Варианта А)
         │         │
-        ├── test/                <-- Визуальный модуль отладки для Dashboard+        ├── 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/
         │         │
-        ── file_manager       <-- МОДУЛЬ: ФАЙЛОВЫЙ МЕНЕДЖЕР +        ── library            <-- МОДУЛЬ: ДОМАШНЯЯ КНИЖНАЯ БИБЛИОТЕКА 
-        │   ├── init.php +            ├── init.php 
-        │   ├── controller.php +            ├── controller.php 
-        │   ├── view.html +            ├── view.html 
-        │   ├── assets/ (js/css+            ├── assets/          <-- Локальные стили каталога и темы оформления (изменение цвета модуля
-        │   ├── storage/         <-- ВСЕ ФАЙЛЫ ЖИВУТ ЗДЕСЬ! +            ├── library.db 
-        │   │   ├── alisa      <-- Личные документы и фотки Алисы +            ├── lang           <-- Локальные переводы библиотеки (ru.php, en.php, fr.php) 
-        │   │   └── boris      <-- Личные документы Бориса +            └── storage        <-- Хранилище книг (.pdf) и ISOбразов софта (alisa/, root_admin/
-        │   └── file_manager.db  <-- Локальная БД только для индексов файлов      + 
 +   
 </code> </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
 +    * Загрузка фото на сервер
 +      * Обработка фото и безопасность перед загрузкой на сервер
 +  * 
  
manual/application_core/test.1783869605.txt.gz · Последнее изменение: VladPolskiy

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