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

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


manual:application_core:test

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
manual:application_core:test [2026/07/12 18:09] VladPolskiymanual:application_core:test [2026/07/12 21:31] (текущий) – внешнее изменение 127.0.0.1
Строка 4: Строка 4:
 tauri+php+js\\   tauri+php+js\\  
 автономная библиотека wire-guard\\   автономная библиотека 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
 +    * Загрузка фото на сервер
 +      * Обработка фото и безопасность перед загрузкой на сервер
 +  * 
  
manual/application_core/test.1783868946.txt.gz · Последнее изменение: VladPolskiy

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