software:development:demo:cms:ucms:creating_file_lang_and_time_zone
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:development:demo:cms:ucms:creating_file_lang_and_time_zone [2025/05/03 13:03] – [Выпадающий список] vladpolskiy | software:development:demo:cms:ucms:creating_file_lang_and_time_zone [2025/05/09 13:21] (текущий) – [8.4. Файл lang_and_time_zone.php] vladpolskiy | ||
---|---|---|---|
Строка 110: | Строка 110: | ||
==== Кнопка ==== | ==== Кнопка ==== | ||
- | Создадим в директории **/ucms/library/install/** файл **lang_and_time_zone.php** и запишем в него | + | < |
- | следующий код: | + | <div class = " |
- | <code php lang_and_time_zone.php> | + | <input type=" |
- | <form action=" | + | </ |
+ | </ | ||
+ | * **input** - интерактивный элемент управления | ||
+ | * **type=** - тип элемента для отображения | ||
+ | * **" | ||
+ | * **value=** - значение элемента управления, | ||
+ | * **name=" | ||
+ | |||
+ | <note blue> | ||
+ | :& | ||
+ | | ||
+ | | ||
+ | < | ||
+ | <div class = " | ||
+ | </div> | ||
+ | </code> | ||
+ | Кнопку **" | ||
+ | Это мы позже и пропишем в файле **install.css**. | ||
+ | </note> | ||
+ | **div class = " | ||
+ | стиля кнопки соблюсти последовательность написания данного руководства и нам в дальнейшем не прийдется | ||
+ | вазвращатся в Файл **lang_and_time_zone.php** для " | ||
+ | ===== Логика формы ===== | ||
+ | У нас имеется переключатель языков с выбранным по умолчанию Английским языком и поле выбора часовой зоны, | ||
+ | с **Pacific/Kiritimati +14:00** по умолчанию (первая в списке выбора) и кнопка " | ||
+ | При нажатии кнопки будет проверенно условие, | ||
+ | (это нам понадобиться позже для того, чтобы по умолчанию программа вывела нам язык и часовую | ||
+ | зону сервера). Следом будет создан | ||
+ | выбор в виде объявленных переменных **$lang_select** и **$timezone_select**. После этого | ||
+ | приложение направит нас к файлу проверки сервера **server_check.php** | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | $lang_select = $_POST[' | ||
+ | $timezone_select = $_POST[' | ||
+ | </ | ||
+ | * **%%<? | ||
+ | * **%%$lang_select = $_POST[' | ||
+ | * **%%$timezone_select = $_POST[' | ||
+ | |||
+ | Проверим что переменные **lang_selection** и **timezone_selection** определены | ||
+ | < | ||
+ | if(isset($_POST[' | ||
+ | {тут мы проверим, | ||
+ | </ | ||
+ | * **%%if(...)%%** - логический оператор условия **ЕСЛИ** | ||
+ | * **%%isset(...)%%** - функция определения инициализации переменной | ||
+ | * **%%$_POST[' | ||
+ | * **%%&& | ||
+ | * **%%$_POST[' | ||
+ | Проверим что кнопка **button_lang_and_time_zone** нажата (необходимо чтобы наш код выполнялся только по нажатию, | ||
+ | при открытии, | ||
+ | < | ||
+ | if(isset($_POST[' | ||
+ | echo " | ||
+ | file_put_contents(" | ||
+ | echo " | ||
+ | } else {$bam=" | ||
+ | echo " | ||
+ | } | ||
+ | </ | ||
+ | * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ** | ||
+ | * **%%isset(...)%%** - функция определения инициализации переменной | ||
+ | * **%%$_POST[' | ||
+ | * **%%$bam=" | ||
+ | * **%%echo " | ||
+ | * **%%else(...){...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ** | ||
+ | * **%%$bam=" | ||
+ | * **%%echo " | ||
+ | * **%%file_put_contents%%** - функция записи данных в файл запишет **Hello World. Testing!** в файл **config.txt** | ||
+ | |||
+ | Описанный выше код проверит условие: | ||
+ | ЕСЛИ кнопка нажата, | ||
+ | а так же в этой-же директории будет создан файл **config.txt** и в него будет записано сообщение: | ||
+ | ИНАЧЕ присвоится той же переменной значение ЛОЖЬ и выведиться текст " | ||
+ | |||
+ | ====Файл test_3==== | ||
+ | Создадим в директории **/ | ||
+ | вновь созданный файл следующее: | ||
+ | <code php test_3.php> | ||
+ | < | ||
+ | |||
+ | <form action=" | ||
Выберите язык приложения: | Выберите язык приложения: | ||
- | <!-- Переключатель --> | ||
<input type=" | <input type=" | ||
<label for=" | <label for=" | ||
Строка 122: | Строка 203: | ||
Выберите часовой пояс: <br/> | Выберите часовой пояс: <br/> | ||
- | <!-- Выпадающий список --> | ||
<select type=" | <select type=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
<option value=" | <option value=" | ||
- | <option value=" | + | <option value=" |
+ | <option value=" | ||
<option value=" | <option value=" | ||
- | <option value=" | + | <option value=" |
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | < | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
</ | </ | ||
<div class = " | <div class = " | ||
- | <input type=" | + | <input type=" |
</ | </ | ||
</ | </ | ||
Строка 140: | Строка 241: | ||
if(isset($_POST[' | if(isset($_POST[' | ||
{ | { | ||
- | if(isset($_POST[' | + | if(isset($_POST[' |
- | // | + | echo " |
- | $filename = ' | + | echo " |
+ | echo " | ||
+ | file_put_contents(" | ||
+ | echo " | ||
+ | } | ||
+ | } | ||
+ | else {$bam=" | ||
+ | echo "Кнопка не нажата и переменной bam присвоенно значение = " | ||
+ | echo " | ||
+ | echo " | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | И откроем файл **test_3.php** в браузере для проверки работы | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Как видно в окне приложения, | ||
+ | Кнопка не нажата и переменной bam присвоенно значение = ЛОЖЬ. При этом значения переменных | ||
+ | **%%$lang_select" | ||
+ | |||
+ | Не трогаем окна выбора, | ||
+ | нажатия кнопки. Активируем кнопку " | ||
+ | Получаем сообщение: | ||
+ | переменных **%%$lang_select" | ||
+ | по умолчанию, | ||
+ | появился файл **config.txt**, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Проверим наш созданный файл **config.txt** и убеждаемся, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Выбирем другой язык, а так же другой часовой пояс и нажмем кнопку Продолжить | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Мы видим, что переменные **%%$lang_select" | ||
+ | На этом проверку логики закончим. | ||
+ | ===== 8.4. Файл lang_and_time_zone.php ===== | ||
+ | |||
+ | Откроем в блокноте созданный ранее в директории **/ | ||
+ | код из файла **test_3.php**, | ||
+ | * вывод на экран сообщений о нажатии кнопки и присвоении переменным **%%$lang_select" | ||
+ | значений, | ||
+ | Так-же откорректируем код в части | ||
+ | * заменим **form action=" | ||
+ | * заменим **file_put_contents(" | ||
+ | |||
+ | < | ||
+ | $file_lang_and_time_zone = ' | ||
+ | file_put_contents($file_lang_and_time_zone, | ||
+ | file_put_contents($file_lang_and_time_zone, | ||
+ | file_put_contents($file_lang_and_time_zone, | ||
+ | file_put_contents($file_lang_and_time_zone, | ||
+ | header(" | ||
+ | </ | ||
+ | * **%%$file_lang_and_time_zone = ' | ||
+ | * **%%../ | ||
+ | * **%%file_put_contents%%** - функция PHP записи в файл **%%config.php%%** месторасположение которого присвоенно переменной | ||
+ | * **%%<? | ||
+ | * **%%\n%%** - записывается символ перевода строки кода PHP | ||
+ | * **%%, FILE_APPEND%%** - флаг записи данных в конец файла, вместо перезаписи | ||
+ | * **%%$lang_select%%** - записывается переменная **%%$lang_select%%** | ||
+ | * **%% = %%** - записывается логический знак **%%=%%**(равно) | ||
+ | * **%%$lang_select%%** - записывается **значение!** переменной **%%$lang_select%%** присвоенное ранее из формы | ||
+ | То-же самое прописанно и для переменной **%%$timezone_select%%** | ||
+ | * **%%?> %%** - записывается определение конца границы выполнения кода PHP | ||
+ | * **%%header(" | ||
+ | В результате в файле **%%config.php%%** получим следующую запись: | ||
+ | < | ||
+ | <?php | ||
+ | $lang_select = " | ||
+ | $timezone_select = " | ||
+ | ?> | ||
+ | </ | ||
+ | где переменной **%%$lang_select%%** присвоенно значение языка по умолчанию, | ||
+ | **%%$timezone_select%%** - присвоенно значение часовой зоны | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * в конец нашего файла добавим следующий код " | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | <div class=" | ||
+ | <span style=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <note blue> | ||
+ | :& | ||
+ | | ||
+ | css и пока соответственно мы его не видим. Позже будут подключенны стили ранее созданного (пока пустого) файла | ||
+ | [[software: | ||
+ | </ | ||
+ | |||
+ | В заключении мы добавим проверку того, что если это не первая установка, | ||
+ | директории **/ | ||
+ | устанавливаемой конфигурации приложения (блог, видеохостинг и.д.), за что будет отвечать файл **options.php**. | ||
+ | |||
+ | Код проверки приведен ниже: | ||
+ | < | ||
+ | include " | ||
+ | $file_config = FOLDER . '/ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* Вызов header, перенаправит пользователя на страницу | ||
+ | / | ||
+ | header(" | ||
+ | } else { | ||
+ | Сюда будет записан весь наш код формы | ||
+ | } | ||
+ | </ | ||
+ | * **%%include " | ||
+ | * **%%$file_config = FOLDER . '/ | ||
+ | * **%%if(...){...}%%** - логический оператор условия **ЕСЛИ** | ||
+ | * **%%file_exists(...)%%** - функция проверки существования указанного файла или каталога. | ||
+ | * **%%header(" | ||
+ | * **%%else{...}%%** - логическая конструкция **ИНАЧЕ** оператора условия **ЕСЛИ** | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Ниже приведен отредактированный и имеющий заключительный вид код файла lang_and_time_zone.php | ||
+ | |||
+ | <code php lang_and_time_zone.php> | ||
+ | <?php | ||
+ | include " | ||
+ | $file_config = FOLDER . '/ | ||
+ | if (file_exists($file_config)) { | ||
+ | /* Вызов header, перенаправит пользователя на страницу | ||
+ | / | ||
+ | header(" | ||
+ | } else { | ||
+ | $lang_select = $_POST[' | ||
+ | $timezone_select = $_POST[' | ||
+ | // Проверим что lang_selection и timezone_selection определены | ||
+ | if(isset($_POST[' | ||
+ | { | ||
+ | if(isset($_POST[' | ||
+ | // | ||
+ | //в конец создаваемого | ||
+ | $filename = '../ | ||
file_put_contents($filename, | file_put_contents($filename, | ||
file_put_contents($filename, | file_put_contents($filename, | ||
Строка 148: | Строка 393: | ||
file_put_contents($filename, | file_put_contents($filename, | ||
header(" | header(" | ||
- | exit( ); | ||
} | } | ||
} | } | ||
- | else {$bam=FALSE; | + | } |
?> | ?> | ||
+ | <form action=" | ||
+ | Выберите язык приложения: | ||
+ | <input type=" | ||
+ | <label for=" | ||
+ | <br> | ||
+ | <input type=" | ||
+ | |||
+ | Выберите часовой пояс: <br/> | ||
+ | <select type=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | <option value=" | ||
+ | </ | ||
+ | <div class = " | ||
+ | <input type=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
<div class=" | <div class=" | ||
<span style=" | <span style=" | ||
</ | </ | ||
- | ?> | ||
</ | </ | ||
+ | |||
+ | Запишем его в тело файла **lang_and_time_zone.php** и откроем его в окне браузера для проверки, | ||
+ | у нас созается файл **config.php** с данными и браузер нас перенаправляет на страницу проверки сервера **server_check.php** | ||
+ | о которой речь пойдет в следующей главе [[software: | ||
+ | а пока мы получим пустое окно. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Если мы повторно в адресной строке браузера набирем путь к нашему файлу | ||
+ | на страницу выбора конфигурации установки **options.php** | ||
+ | |||
+ | {{: | ||
+ | |||
<note blue> | <note blue> | ||
- | <wrap left>← [[software: | + | <wrap left>← [[software: |
- | <wrap right> | + | <wrap right> |
</ | </ |
software/development/demo/cms/ucms/creating_file_lang_and_time_zone.1746266601.txt.gz · Последнее изменение: — vladpolskiy