software:development:demo:cms:ucms:index
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
software:development:demo:cms:ucms:index [2025/05/08 17:14] – создано vladpolskiy | software:development:demo:cms:ucms:index [2025/05/12 21:57] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== | + | ====== |
===== Введение ===== | ===== Введение ===== | ||
Данный файл является **Индексным файлом** — это файл главной страницы директории на сайте, то есть тот файл, который загружается, | Данный файл является **Индексным файлом** — это файл главной страницы директории на сайте, то есть тот файл, который загружается, | ||
- | ===== Логика ===== | + | ===== Логика |
- | Если | + | * **ЕСЛИ** ядро |
+ | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** | ||
+ | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | ||
+ | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%default_site%%** перенаправит к **%%install.php%%** - индексный файл установленной конфигурации, | ||
+ | ===== Файл index_test.php ===== | ||
+ | Создадим Файл | ||
+ | <code php index_test.php> | ||
+ | <!-- test/ | ||
+ | |||
+ | <?php | ||
+ | /* подключим файл с константами, | ||
+ | require_once __DIR__ . " | ||
+ | |||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | /* Если config.config.ini существует */ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* выводим запись о существовании */ | ||
+ | echo " | ||
+ | /* Иначе выводим запись о существовании*/ | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | // Создание и вызов параметров из .ini файла | ||
+ | //////////////////////////////////////////// | ||
+ | /* задаем переменной | ||
+ | * parse_ini_file - обрабатывает конфигурационный файл | ||
+ | * ../ | ||
+ | * ,true); - обрабатываем с секциями (зпголовками) | ||
+ | */ | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Проверьте, | ||
+ | // переменная $config не ровно ЛОЖЬ | ||
+ | if ($config_defaul_site !== false) { | ||
+ | // Доступ к индивидуальным настройкам | ||
+ | |||
+ | $default_site = $config_defaul_site[' | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | //exit; | ||
+ | /* зададим переменным файлы и директории */ | ||
+ | $file_config = FOLDER . '/ | ||
+ | $file_version = FOLDER . '/ | ||
+ | |||
+ | $bcw_site = FOLDER . '/ | ||
+ | $blog_site = FOLDER . '/ | ||
+ | $video_site = FOLDER . '/ | ||
+ | $sns_site = FOLDER . '/ | ||
+ | | ||
+ | /* Если переменные $file_config и file_exists существуют, | ||
+ | то проверим определение переменной конфигурации $default_site | ||
+ | по умолчанию в файле config.ini */ | ||
+ | if (file_exists($file_config) && file_exists($file_version)) { | ||
+ | /* Если переменная $default_site равно " | ||
+ | if ($default_site == "" | ||
+ | /* Проверим, | ||
+ | if (file_exists($bcw_site)) { | ||
+ | /* Если директория /bcw существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($blog_site)) { | ||
+ | /* Если директория /blog существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($video_site)) { | ||
+ | /* Если директория /video существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($sns_site)) { | ||
+ | /* Если директория /sns существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | else { | ||
+ | /* Если переменная $default_site равно " | ||
+ | перенаправить на страницу, | ||
+ | header(" | ||
+ | } | ||
+ | } | ||
+ | /* Если Переменные $file_config или file_exists не существуют, | ||
+ | то перенаправим на страницу установщика install.php */ | ||
+ | else { | ||
+ | header(" | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Обратите внимание на следующую часть кода: | ||
+ | |||
+ | < | ||
+ | } | ||
+ | //exit; | ||
+ | /* зададим переменным файлы и директории */ | ||
+ | </ | ||
+ | |||
+ | * **%%exit; | ||
+ | в **%%config.ini%%** выбрана конфигурация по умолчанию. | ||
+ | |||
+ | =====Проверка существований директорий===== | ||
+ | Создаем в **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **config.ini** существует и он пустой, | ||
+ | |||
+ | Проверим работу страницы | ||
+ | директории: | ||
+ | имя директории. К примеру: | ||
+ | |||
+ | <code php index.php> | ||
+ | <? php | ||
+ | это файл sns | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | А при добавленной директории **blog** переадресация на **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | И так поступаем с каждой директорией, | ||
+ | директории. | ||
+ | Ну и при создании всех 4х директорий, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== index_test_2.php ===== | ||
+ | Создадим в директории **/test** файл **index_test_2.php** который будет нам создавать файл с записью | ||
+ | конфигурации. К примеру: | ||
+ | |||
+ | <code php index_test_2.php> | ||
+ | <!-- test/ | ||
+ | |||
+ | <?php | ||
+ | /* подключим файл с константами, | ||
+ | require_once __DIR__ . " | ||
+ | |||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | /* Если config.config.ini существует */ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* выводим запись о существовании */ | ||
+ | echo " | ||
+ | /* Иначе выводим запись о существовании*/ | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Проверьте, | ||
+ | // переменная $config не ровно ЛОЖЬ | ||
+ | if ($config_defaul_site !== false) { | ||
+ | // Доступ к индивидуальным настройкам | ||
+ | |||
+ | $default_site = $config_defaul_site[' | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | // Создаем массив пар | ||
+ | $databaseSections = [ | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | // Записать конфигурацию в раздел «' | ||
+ | $success = write_to_ini($databaseSections, | ||
+ | |||
+ | // Проверим, | ||
+ | if ($success) { | ||
+ | echo " | ||
+ | } else { | ||
+ | echo " | ||
+ | } | ||
+ | // Функция записи настроек в определенный раздел INI-файла | ||
+ | function write_to_ini($config, | ||
+ | $content = "\n; Application Configuration Settings\n\n[$section]\n; | ||
+ | |||
+ | foreach ($config as $key => $value) { | ||
+ | $content .= "$key = $value\n"; | ||
+ | } | ||
+ | |||
+ | // Добавить содержимое в файл | ||
+ | return file_put_contents($file, | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | <note blue> | ||
+ | :!: **Примечание: | ||
+ | Ранее **config.ini** создавали мы, значит и владелец файла на запись и чтение тоже мы, а нам необходимо | ||
+ | передать права нашему приложению. Заодно проверим код записи в файл. | ||
+ | </ | ||
+ | |||
+ | Удалим созданный нами файл **config.ini** и запустим в браузере файл **index_test_2.php** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | т.к. мы удалили файл **config.ini** мы получили сообщение: | ||
+ | * **Файл / | ||
+ | * **Ошибка чтения INI-файла.** - прочесть файл приложение не смогло\\ | ||
+ | * **Запись в файл прошла успешно!** - был создан новый **config.ini** с записью **default_site = video** | ||
+ | |||
+ | Запустим в браузере страницу файл **index_test.php** | ||
+ | {{: | ||
+ | |||
+ | Так-же проверим работу логики при пустом значении переменной **%%$default_site%%** в файле **config.ini** | ||
+ | в директории **ucms/ | ||
+ | < | ||
+ | default_site = | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Приложение перешло на первую по списку директорию. | ||
+ | |||
+ | Аналогично, | ||
+ | < | ||
+ | default_site = blog | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Логика index.php ===== | ||
+ | * **ЕСЛИ** ядро приложение не установленно (т.е. отсутствуют файлы **%%version.php%%** и **%%config.ini%%** в директории **%%/ | ||
+ | * **ИНАЧЕ** проверит переменную **%%$default_site%%** в файле **%%config.ini%%** | ||
+ | * **ЕСЛИ** переменная **%%$default_site = пустое значение%%**, | ||
+ | * **ИНАЧЕ** получив значение переменной **%%$default_site%%** из файла **%%config.ini%%** перенаправит к **%%index.php%%** установленной конфигурации, | ||
+ | |||
+ | По замыслу пользователь может установит несколько приложений и указать приложение по умолчанию в **%%config.ini%%**, | ||
+ | тогда в корневой директории будет работать указанное приложение, | ||
+ | на директория другой конфигурации. К примеру: | ||
+ | |||
+ | Пользователь установил 2е конфигурации **%%blog%%** и **%%video%%** и выбрал основной конфигурацию **%%blog%%**, | ||
+ | в окне **%%index.php%%** будет работать конфигурация **%%blog%%**, | ||
+ | указание директории **%%/ | ||
+ | |||
+ | ===== Файл index.php ===== | ||
+ | Главным отличием файла **index.php** от **index_test.php** станут: | ||
+ | * корректировка директорий файлов | ||
+ | * вынос " | ||
+ | * вывод конфигурации в " | ||
+ | Создадим в директории **/ucms** файл входа в приложение **index.php** | ||
+ | |||
+ | <code php index.php> | ||
+ | <?php | ||
+ | /* index.php */ | ||
+ | /* подключим файл с константами, | ||
+ | | ||
+ | include ' | ||
+ | include FOLDER . '/ | ||
+ | /* запустим функцию проверки первого входа в приложение */ | ||
+ | check_start(); | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Создадим в директории **/ | ||
+ | |||
+ | <code php function.php> | ||
+ | <? | ||
+ | /* Функция проверки установки ядра приложения и установленной конфигурации */ | ||
+ | function check_start() { | ||
+ | /* Присваиваем переменной $file_config значение константы FOLDER | ||
+ | (а это директория ucms, записанная в файле cons.php)и добовляем | ||
+ | '/ | ||
+ | $file_config = FOLDER . '/ | ||
+ | |||
+ | // Создание и вызов параметров из .ini файла | ||
+ | //////////////////////////////////////////// | ||
+ | /* задаем переменной | ||
+ | * parse_ini_file - обрабатывает конфигурационный файл | ||
+ | * / | ||
+ | * ,true); - обрабатываем с секциями (зпголовками) | ||
+ | */ | ||
+ | $config_defaul_site = parse_ini_file(FOLDER . "/ | ||
+ | // Присвоим переменной $default_site значение из ini-файл. | ||
+ | $default_site = $config_defaul_site[' | ||
+ | /* зададим переменным файлы и директории */ | ||
+ | $file_config = FOLDER . '/ | ||
+ | $file_version = FOLDER . '/ | ||
+ | |||
+ | $bcw_site = FOLDER . '/ | ||
+ | $blog_site = FOLDER . '/ | ||
+ | $video_site = FOLDER . '/ | ||
+ | $sns_site = FOLDER . '/ | ||
+ | | ||
+ | /* Если переменные $file_config и file_exists существуют, | ||
+ | то проверим определение переменной конфигурации $default_site | ||
+ | по умолчанию в файле config.php */ | ||
+ | if (file_exists($file_config) && file_exists($file_version)) { | ||
+ | /* Если переменная $default_site равно " | ||
+ | if ($default_site | ||
+ | /* Проверим, | ||
+ | if (file_exists($bcw_site)) { | ||
+ | /* Если директория /bcw существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($blog_site)) { | ||
+ | /* Если директория /blog существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($video_site)) { | ||
+ | /* Если директория /video существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | /* Проверим, | ||
+ | elseif (file_exists($sns_site)) { | ||
+ | /* Если директория /sns существует, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | else { | ||
+ | /* Если переменная $default_site равно " | ||
+ | перенаправить на страницу, | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | /* Если Переменные $file_config или file_exists не существуют, | ||
+ | то перенаправим на страницу установщика install.php */ | ||
+ | else { | ||
+ | header(" | ||
+ | exit; | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | Откроем в браузере наш файл **/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Как вы уже догадались мы закроем файл **config.ini** файлом **.htaccess** | ||
+ | |||
+ | <code php .htaccess> | ||
+ | # запретим просмотр файлов с расширением .ini следующих файлов | ||
+ | # (задается правило для перенаправления) | ||
+ | # config.ini | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(config)\.ini$ - [R=403, | ||
+ | </ | ||
+ | |||
+ | {{: | ||
<note blue> | <note blue> | ||
- | <wrap left>← [[software: | + | <wrap left>← [[software: |
- | <wrap right> | + | <wrap right> |
</ | </ | ||
software/development/demo/cms/ucms/index.1746713691.txt.gz · Последнее изменение: — vladpolskiy