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
