Этот курс ( Практикум по разработке CMS ) создавался, когда у PHP была версия 5.3 или 5.4. Со временем какие-то функции PHP устаревают (mysql, each), какие-то начинают работать по-другому (empty). Пожалуйста, следите за изменениями в PHP по сайту php.net! |
Редактор сайта
Форма авторизации. Шаблоны HTML
В нашем текущем файле index4.php при выполнении некоторого условия (наличие параметра "edit") нам нужно будет выводить уже не данные из mysql-таблицы, а совсем другую страницу (листинг 2.1 пример 2.1):
<?php //... $page = <<<PAGE <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Авторизация</title> <link rel="stylesheet" href="site.css" type="text/css"> <script type="text/javascript" src="site.js"></script> </head> <body> <div class="page"> <div class="body"> <form class="auth" action="" method="post"> <p>Имя: <input name="user"></p> <p>Пароль: <input name="password" type="password"></p> <p><input type="submit" value="Отправить"></p> </form> </div> </body> PAGE; print $page; ?>Листинг 2.1.
Сличив, однако, один из первых наших вариантов (листинг 1.6 пример 1.6) с кодом 2.1 пример 2.1, мы увидим, что наконец настало удачное время выделить тот самый заветный "повторяющийся кусок кода" в отдельную функцию (которую можно даже назвать "шаблоном") и открыть тем самым следующий этап работы по созданию CMS. Вы видите, что этот кусок начинается со слова DOCTYPE и заканчивается примерно на "/head>". На самом деле он заканчивается ниже, но мы не будем пока разрывать элементы HTML (хотя бы чтобы не запутаться).
Есть ещё одна незадача: внутри повторяющегося кода HTML есть несовпадение: слово "Авторизация" вместо слова "Астрология". Незадачу решаем добавлением в новую функцию параметра:
<?php //... /**** функции *******/ //... function _head($title) { return <<<TPL <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>{$title}</title> <link rel="stylesheet" href="site.css" type="text/css"> <script type="text/javascript" src="site.js"></script> </head> TPL; }
Не забудем использовать новую функцию во фрагменте вывода основного шаблона страницы:
<?php //... $head = _head($row['title']); $page = <<<PAGE {$head} <body> <p><img src="files/{$row['img1']}" />{$row['html1']}</p> <p><img src="files/{$row['img2']}" />{$row['html2']}</p> </body> PAGE; print $page; //...
Результат - в файле из предыдущей главы: http://nichtig.ru/index4.php?code