====== 8.4. Файл lang_and_time_zone.php ======
Этот файл выполняет функцию начального экрана установщика и предоставляет пользователю выбор язык 
приложения и временную зону, а также создает файл конфигурации **config.php** в директории **/includes/** 
и записывает в него переменные **$lang_select** и **$timezone_select**, полученные из форм выбора.
  * **$lang_select** - выбор языка приложения (русский и англиский, при необходимости можно добавлять переводы)
  * **$timezone_select** - время сервера приложения (время написания поста, время отправки сообщений и т.д.)
===== Формы =====
  * **form action="install.php"** - указывает обработчик, к которому обращаются данные формы при их отправке на сервер.
В нашем случае это переход к файлу **install.php** (подробнее файл install.php будет описан в Главе 8.6).
  * **input type="radio"** - переключатель
  * **method="post"** - в отличие от метода **GET**, который используется для получения данных, **POST** служит для отправки данных на сервер.
  * **id="lang_english"** - идентификатор формы
  * **name="lang_selection"** - имя формы 
  * **value="english"** - принимаемое значение
  * **checked** - определяет выбор формы переключателя (т.е. выбран по умолчанию)
  * **label for="lang_english"** - надпись для элимента 
  * **br** - перенос на следующую строку
==== Выпадающий список ====
Используется для выбора часового пояса работы сервера, т.е. при физически установленном сервере в Дании 
и использовании Приложения для русскоязычного населения, бедет отображаться время комминтариев "Московское".
 
  * **select type="text"** - выпадающий список
  * **name="timezone_selection"** - имя формы 
  * **option value=** - определитель значение пункта списка, которое будет отправлено на сервер.
  
Идентификатор формы, надпись для элимента и перенос на следующую строку не указываем т.к. в примере 
выше мы это сделали для "Чистоты кода" и на логику работы кода это не влияет (т.е. для наглядности 
примера, а именно: **select type="text"** - определяет выпадающий список, **name="timezone_selection"** 
- имя формы из которого данные получит переменная и **option value=** - значение пункта формы).
Значение пункта данной формы - это всего лишь время добавляемое к времени часового пояса места установки 
сервера (т.е. -2, -1, 0, +1 и т.д.) и мы могли бы это записать, но для наглядности пропишем именно обозначения
"таймзон". Полный список зон можно выбрать из формы ниже:
Данная форма выбора будет рассмотрена в [[software:development:demo:cms:ucms:appendix_c|Приложении C]] этого руководства, 
пока же нас интересует 26 часовых поясов для выбора (от -11 до +14).
    
    
    
    
     
     
    
     
     
    
     
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
 
 
	
 
  * **input** - интерактивный элемент управления  
  * **type=** - тип элемента для отображения
  * **"submit"** - кнопка для отправки формы
  * **value=** - значение элемента управления, в нашем случае это название кнопки "Продолжить"
  * **name="lang_and_time_zone"** - имя формы, которое отправляется вместе с данными формы
 
	
 
Кнопку **"Назад"** логично расположить по левому краю формы, а кнопку **"Вперед"** или **"Продолжить"** по правому. 
Это мы позже и пропишем в файле **install.css**.
  * **%%
if(isset($_POST['lang_selection']) && isset($_POST['timezone_selection']))
{тут мы проверим, нажатие кнопки и запишем логику создания файла config.txt}
  * **%%if(...)%%** - логический оператор условия **ЕСЛИ**
  * **%%isset(...)%%** - функция определения инициализации переменной  
  * **%%$_POST['lang_selection']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Переключателя" по имени **name="lang_selection"**
  * **%%&&%%** - логический оператор **И**  
  * **%%$_POST['timezone_selection']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Выпадающего списка" по имени **name="timezone_selection"**
Проверим что кнопка **button_lang_and_time_zone** нажата (необходимо чтобы наш код выполнялся только по нажатию, и не выполнялся
при открытии, либо перезагрузке страницы).
if(isset($_POST['button_lang_and_time_zone'])) {$bam="ИСТИНА";
echo "Кнопка нажата и переменной bam присвоенно значение = " . "$bam";
file_put_contents("config.txt","Hello World. Testing!");
echo "Файл config.txt создан и данные записаны!";
} else {$bam="ЛОЖЬ"; 
echo "Кнопка не нажата и переменной bam присвоенно значение = "  . "$bam";
}
  * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ**
  * **%%isset(...)%%** - функция определения инициализации переменной  
  * **%%$_POST['button_lang_and_time_zone']%%** - глобальный ассоциативный массив **$_POST** с данными из нашей формы "Кнопка" по имени **name="button_lang_and_time_zone"**
  * **%%$bam="ИСТИНА"%%** - переменной **%%$bam%%** присвоили значение ="ИСТИНА"
  * **%%echo "...."%%** - вывели текст нажатия кнопки и значение "ИСТИНА" присвоенное переменной **%%$bam%%**
  * **%%else(...){...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ**
  * **%%$bam="ЛОЖЬ"%%** - переменной **%%$bam%%** присвоили значение ="ЛОЖЬ"
  * **%%echo "...."%%** - вывели текст нажатия кнопки и значение "ЛОЖЬ" присвоенное переменной **%%$bam%%**
  * **%%file_put_contents%%** - функция записи данных в файл запишет **Hello World. Testing!** в файл **config.txt**
  
Описанный выше код проверит условие:\\  
ЕСЛИ кнопка нажата, присвоится переменной значение ИСТИНА и выведиться текст "Кнопка нажата" и значение переменной, 
а так же в этой-же директории будет создан файл **config.txt** и в него будет записано сообщение: Hello World. Testing!,
ИНАЧЕ присвоится той же переменной значение ЛОЖЬ и выведиться текст "Кнопка не нажата" и значение переменной
====Файл test_3====
Создадим в директории **/ucms/test/** файл **test_3.php**, объединим выше разобранный нами код и запишем во
вновь созданный файл следующее:
$file_lang_and_time_zone = '../../includes/config.php';
file_put_contents($file_lang_and_time_zone, ' ' . "\n", FILE_APPEND);
header("Location: server_check.php");
  * **%%$file_lang_and_time_zone = '../../includes/config.php';%%** - присвоим переменной **%%$file_lang_and_time_zone"%%** значение, указывающее путь к директории **/includes/**, где будет создан файл **%%config.php%%**
  * **%%../../includes/config.php%%** - значение вновь создаваемого файла **%%config.php%%** в директории **/includes/**.
  * **%%file_put_contents%%** - функция PHP записи в файл **%%config.php%%** месторасположение которого присвоенно переменной  **%%$file_lang_and_time_zone"%%**
  * **%% %%** - записывается определение конца границы выполнения кода PHP
  * **%%header("Location:%%** - перенаправление к коду файла проверки сервера **server_check.php**
В результате в файле **%%config.php%%** получим следующую запись:
 
где переменной **%%$lang_select%%** присвоенно значение языка по умолчанию, т.е **english**, а переменной
**%%$timezone_select%%** - присвоенно значение часовой зоны  **Pacific/Kiritimati**
 
{{:software:development:demo:cms:ucms:ucms_creat_26.png?|}} 
  
  * в конец нашего файла добавим следующий код "Прогресс-бара", чтобы пользователь знач, где он в данный момент находиться.
  
 
 
include "../../includes/cons.php";
$file_config = FOLDER . '/includes/config.php';
if (file_exists($file_config)) {
	/* Вызов header, перенаправит пользователя на страницу
	/options.php в этой же директории */
    header("Location: options.php");
} else { 
Сюда будет записан весь наш код формы
}
  * **%%include "../../includes/cons.php";%%** - включает и оценивает код файла **cons.php** из диретории **/includes/** как PHP-код
  * **%%$file_config = FOLDER . '/includes/config.php';%%** - переменной **%%$file_config%%** присвоили значение **%%/includes/config.php%%** (местонахождения файла **config.php**)
  * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ**
  * **%%file_exists(...)%%** - функция проверки существования указанного файла или каталога.
  * **%%header("Location: options.php")%%** - функция перенаправления пользователя к файлу **options.php**.
  * **%%else{...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ**
Ниже приведен отредактированный и имеющий заключительный вид код файла lang_and_time_zone.php
  
 ' . "\n", FILE_APPEND);
header("Location: server_check.php");
}
}
}
?>
Запишем его в тело файла **lang_and_time_zone.php** и откроем его в окне браузера для проверки, где после отправки формы
у нас созается файл **config.php** с данными и браузер нас перенаправляет на страницу проверки сервера **server_check.php**
 о которой речь пойдет в следующей главе [[software:development:demo:cms:ucms:creating_file_server_check|8.5. Файл server_check.php]], 
а пока мы получим пустое окно.
{{:software:development:demo:cms:ucms:ucms_creat_27.png?|}}
Если мы повторно в адресной строке браузера набирем путь к нашему файлу  **lang_and_time_zone.php**, то нас приложение перенаправит
на страницу выбора конфигурации установки **options.php**
{{:software:development:demo:cms:ucms:ucms_creat_28.png?|}}