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

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


software:development:demo:cms:ucms:index

Это старая версия документа!


8.2. Файл index.php

Введение

Данный файл является Индексным файлом — это файл главной страницы директории на сайте, то есть тот файл, который загружается, когда посетитель обращается напрямую к директории. В нашем приложении Файл index.php - это точка входа.

Логика index_test.php

  • ЕСЛИ ядро приложение не установленно (т.е. отсутствуют файлы version.txt и config.ini в директории /includes), то приложение выведит в окне /library/install к файлу install.php
  • ИНАЧЕ проверит переменную $default_site в файле config.php
  • ЕСЛИ переменная $default_site = пустое значение, то приложение выведит в окне индексный файл, первой из установленных конфигураций
  • ИНАЧЕ получив значение переменной $default_site из файла default_site перенаправит к install.php - индексный файл установленной конфигурации, указанный пользователем.

Файл index_test.php

Создадим Файл index_test.php в /ucms с кодом:

index_test.php
<!-- test/index_test.php -->
 
<?php
/* подключим файл с константами, для апределения корневой директории приложения */
require_once __DIR__ . "../../includes/cons.php";
 
	/* Присваиваем переменной $file_config значение константы FOLDER 
	(а это директория ucms, записанная в файле cons.php)и добовляем 
	'/includes/config.php' - директорию includes и искомый файл config.ini */
    $file_config = FOLDER . '/includes/config.ini';
	/* Если config.config.ini существует */
        if (file_exists($file_config)) {
	/* выводим запись о существовании */
			echo "Файл $file_config существует";
	/* Иначе выводим запись о существовании*/
		} else {
			echo "Файл $file_config не существует";
		}
 
/* зададим переменным файлы и директории */
$file_config = FOLDER . '/includes/config.ini';
$file_version = FOLDER . '/version.txt';
 
$bcw_site = FOLDER . '/bcw';
$blog_site = FOLDER . '/blog';
$video_site = FOLDER . '/video';
$sns_site = FOLDER . '/sns';
 
/* Если переменные $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");
}
?>

Проверим работу страницы index_test.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 в 
директорию  /ucms/library/install/ 
*/
else { 
	header("Location: ./library/install/install.php");
	exit;
?>

Проверим работу программы при созданных файлах config.php и version.php, изменяя значения переменной $default_site

$default_site = "video";
Только авторизованные участники могут оставлять комментарии.
software/development/demo/cms/ucms/index.1747022318.txt.gz · Последнее изменение: 127.0.0.1