Это старая версия документа!
Содержание
8.2. Файл index.php
Введение
Данный файл является Индексным файлом — это файл главной страницы директории на сайте, то есть тот файл, который загружается, когда посетитель обращается напрямую к директории. В нашем приложении Файл index.php - это точка входа.
Логика index_test.php
- ЕСЛИ ядро приложение не установленно (т.е. отсутствуют файлы version.php и config.php в директории /includes), то приложение выведит в окне /library/install к файлу install.php
- ИНАЧЕ проверит переменную $default_site в файле config.php
- ЕСЛИ переменная $default_site = пустое значение, то приложение выведит в окне индексный файл, первой из установленных конфигураций
- ИНАЧЕ получив значение переменной $default_site из файла default_site выведит в окне index.php индексный файл установленной конфигурации, указанный пользователем.
Файл index_test.php
- index_test.php
<!-- index_test.php --> <?php /* подключим файл с константами, для апределения корневой директории приложения */ require_once __DIR__ . "../../includes/cons.php"; /* зададим переменным файлы и директории */ $file_config = FOLDER . '/includes/config.php'; $file_version = FOLDER . '/version.php'; $bcw_site = FOLDER . '/bcw'; $blog_site = FOLDER . '/blog'; $video_site = FOLDER . '/video'; $sns_site = FOLDER . '/sns'; /* подключим файл конфигурации */ include '../includes/config.php'; /* Если переменные $file_config и file_exists существуют, то проверим определение переменной конфигурации $default_site по умолчанию в файле config.php */ if (file_exists($file_config) && file_exists($file_version)) { /* Если переменная $default_site равно "пустое место" */ if ($default_site == ""){ /* Проверим, что конфигурация установлена в директории /bcw */ if (file_exists($bcw_site)) { /* Если директория /bcw существует, перенаправим туда и конец скрипта*/ header("Location: ../bcw/"); exit; } /* Проверим, что конфигурация установлена в директории /blog */ elseif (file_exists($blog_site)) { /* Если директория /blog существует, перенаправим туда и конец скрипта*/ header("Location: ../blog/"); exit; } /* Проверим, что конфигурация установлена в директории /video */ elseif (file_exists($video_site)) { /* Если директория /video существует, перенаправим туда и конец скрипта*/ header("Location: ../video/"); exit; } /* Проверим, что конфигурация установлена в директории /sns */ elseif (file_exists($sns_site)) { /* Если директория /sns существует, перенаправим туда и конец скрипта*/ header("Location: ../sns/"); exit; } } else { /* Если переменная $default_site равно "выбор в файле конфигуратора" перенаправить на страницу, указанную в config.php*/ header("Location: ../" . "$default_site" . "/"); } } /* Если Переменные $file_config или file_exists не существуют, то перенаправим на страницу установщика install.php */ else { header("Location: ../library/install/install.php"); } ?>
Проверим работу страницы test_7.php в веб - браузере, создав поочередно в директории /ucms вложенные директории: bcw, blog, video, и sns
Так-же проверим работу логики при пустом значении переменной $default_site в файле config.php в директории ucms/includes
$default_site = "";
Аналогично, для определенной переменной $default_site
$default_site = "blog";
Логика index.php
- ЕСЛИ ядро приложение не установленно (т.е. отсутствуют файлы version.php и config.php в директории /includes), то приложение выведит в окне /library/install к файлу install.php
- ИНАЧЕ проверит переменную $default_site в файле config.php
- ЕСЛИ переменная $default_site = пустое значение, то приложение выведит в окне индексный файл, первой из установленных конфигураций
- ИНАЧЕ получив значение переменной $default_site из файла default_site выведит в окне index.php индексный файл установленной конфигурации, указанный пользователем.
По замыслу пользователь может установит несколько приложений и указать приложение по умолчанию в config.php, тогда в корневой директории будет работать указанное приложение, а к остальным будет доступ через ссылку в коде программы на директория другой конфигурации. К примеру:
Пользователь установил 2е конфигурации blog и video и выбрал основной конфигурацию blog, тогда в окне index.php будет работать конфигурация blog, а конфигурацию video будет доступна через указание директории /video/video.php
Файл index.php
Главным отличием файла index.php от index_test.php станут:
- корректировка директорий файлов
- вынос «логики» в основной файл функций function.php с созданием функции check_start()
- вывод конфигурации в «окне» файла index.php вместо вывода в отдельной директории
Создадим в директории /ucms файл входа в приложение index.php
- index.php
<?php /* index.php */ /* подключим файл с константами, для определения корневой *директории приложении и файлов конфигурации и функций */ include './includes/cons.php'; include FOLDER . '/includes/config.php'; include FOLDER . '/includes/function.php'; /* запустим функцию проверки первого входа в приложение */ check_start(); ?>
Запишем в файл function.php нашу первую функцию check_start();
- function.php
<?php /* Функция проверки установки ядра приложения и установленной конфигурации */ function check_start() { //echo "это простая фунция"; /* зададим переменным файлы и директории */ $file_config = FOLDER . '/includes/config.php'; $file_version = 'version.php'; $bcw_site = FOLDER . '/bcw'; $blog_site = FOLDER . '/blog'; $video_site = FOLDER . '/video'; $sns_site = FOLDER . '/sns'; /* подключим в функции файл config.php для определения переменной $default_site*/ include FOLDER . '/includes/config.php'; /* Если переменные $file_config и file_exists существуют, то проверим определение переменной конфигурации $default_site по умолчанию в файле config.php */ if (file_exists($file_config) && file_exists($file_version)) { /* Если переменная $default_site равно "пустое место" */ if ($default_site == ""){ /* Проверим, что конфигурация установлена в директории /bcw */ if (file_exists($bcw_site)) { /* Если директория /bcw определим имя переменной $default_site равное индексному файлу bcw.php в директории /bcw */ include FOLDER . '/bcw/bcw.php'; exit; } /* Проверим, что конфигурация установлена в директории /blog */ elseif (file_exists($blog_site)) { /* Если директория /blog определим имя переменной $default_site равное индексному файлу blog.php в директории /blog */ include FOLDER . '/blog/blog.php'; exit; } /* Проверим, что конфигурация установлена в директории /video */ elseif (file_exists($video_site)) { /* Если директория /video определим имя переменной $default_site равное индексному файлу video.php в директории /video */ include FOLDER . '/video/video.php'; exit; } /* Проверим, что конфигурация установлена в директории /sns */ elseif (file_exists($sns_site)) { /* Если директория /sns определим имя переменной $default_site равное индексному файлу sns.php в директории /sns */ include FOLDER . '/sns/sns.php'; exit; } } else { /* Если переменная $default_site равно "выбор в файле конфигуратора" подключим в окне файл, указанный в config.php*/ include FOLDER . "/" . "$default_site" . "/" . "$default_site" . ".php"; exit; } } /* Если Переменные $file_config или file_exists не существуют, то подключим файл установщика install.php в окне index.php*/ else { include FOLDER . "/library/install/install.php"; exit; } } ?>
Проверим работу программы при созданных файлах config.php и version.php, изменяя значения переменной $default_site
$default_site = "video";