Основная часть
В основной части страницы подключается содержимое заголовка и колонтитула. В сущности, именно основная часть содержит информацию, интересующую посетителей сайта. Заголовок эффектно выглядит, колонтитул содержит полезные сведения, но именно ради основной части страницы пользователи снова и снова возвращаются на сайт. Хотя я не смогу предоставить каких-либо рекомендаций по поводу конкретной структуры страниц, шаблоны, подобные приведенному в листинге 9.7, основательно упрощают администрирование страниц.
Пример основной части страницы (index_body.tpl)
< table width="95%" cellspacing="0" cellpadding="0" border="1"> < tr> < td valign="top" width="25%> < a href = "< ?=$site_path;?>/tutorials.php">tutorials< /a> < br> < a href = "< ?=$site_path>/articles.php">articles< /a> < br> < a href = "< ?=$site_path;?>/scripts.php">scripts< /a> < br> < a href = "< ?=$site_path;?>/contact.php">contact< /a> < br> < /td> < td valign="top" width="75%"> welcome to phprecipes. the starting place for php scripts, tutorials, and information about gourmet cooking! < /td> < /tr> < /table>
Все вместе: заголовок, колонтитул и основная часть
Вероятно, мое настроение лучше всего выражается фразой полковника < Ганнибала> Смита (Джордж Пеппард) из знаменитого сериала < Команда А>: < Люблю, когда все становится на свои места>. Я испытываю нечто подобное, когда разрозненные шаблоны объединяются и образуют полный web-документ. Комбинируя три секции документа: header.tpl, index_body.tpl и footer.tpl, - можно быстро построить простейшую страницу вроде той, что приведена в листинге 9.8.
Листинг 9.8. Построение страницы index.php включением нескольких файлов
< ? // Файл: index.php // Назначение: домашняя страница phprecipes // Дата: 23 августа 2000 г. // Вывести заголовок include ("header.tpl"); // Вывести основную часть include ("index_body.tpl"); // Вывести колонтитул include ("footer.tpl"); ?>
Ну как? Три простые команды - и перед вами готовая страница. Текст итоговой страницы приведен в листинге 9.9.
Листинг 9.9. Страница html, построенная в листинге 9.8 (index.php)
< html> < head> < title> phprecipes < /title> < /head> < body bgcolor="#7b8079" text="#ffffff" link="#e7d387" alink="#e7d387" vlink="#e7f0e4"> < table width = "95%" cellpadding="0" cellspacing="0" border="1"> < tr> < td valign = "top"> php recipes < /td> < td valign = "top" align="right"> august 23, 03:17 pm < /td> < /tr> < /table>< table width="95%" cellspacing="0" cellpadd1ng="0" border="1"> < tr> < td valign="top" width="25%"> < a href = "htfp://localriost/phprecipes/tutorials.php">tutorials < /a> < br> < a href = "http://localhost/phprecipes/articles.php">articles < /a> < br> < a href = "http://localhost/phprecipes/scripts.php">scripts< /a> < br> < a href = "http://localhost/phprecipes/contact.php">contact< /a> < br> < /td> < td valign="top" width="75%"> welcome to phprecipes, the starting place for php scripts, tutorials, and gourmet cooking tips and recipes! < /td> < /tr> < /table>< table width="95%" cellspacing="0" cellpadding="0" border="1"> < tr>< td valign="top" align="middle"> copyright © 2000 phprecipes. all rights reserved.< br> < a href = "mailto:wj@hotmail .com">contact< /a> | < a href = "http://localhost/phprecipes/privacy.php">your privacy< /a> < /td>< /tr> < /table> < /body> < /html>
На рис. 9.1 показано, как полученная страница выглядит в браузере. Хотя я обычно не пользуюсь рамками таблиц, на этот раз я их вывел, чтобы на рисунке более наглядно выделялись три части страницы.
Рис. 9.1. Внешний вид страницы, построенной в листинге 9.8
Оптимизация шаблонов
Во втором (на мой взгляд, более предпочтительном) варианте шаблоны оформляются в виде функций, находящихся в отдельном файле. Тем самым обеспечивается дополнительное структурирование ваших шаблонов. Я называю этот файл инициализационным файлом и храню в нем другую полезную информацию. Поскольку мы уже рассмотрели относительно длинные примеры заголовка и колонтитула, содержимое листингов 9.10 и 9.11 было слегка сокращено для наглядной демонстрации новой идеи.
Листинг 9.10. Оптимизированный шаблон сайта (site_init.tpl)
< ? // Файл: site_init.tpl // Назначение: инициализационный файл phprecipes // Дата: 22 августа 2000 г. $site_name = "phprecipes"; $site_email = "[email protected]"; $site_path = "http://localhost/phprecipes/"; function show_header($site_name) { < html> < head> < title> < ? print $site_name: ?> < /title> < /tiead> < body bgcolor="#7b8079" text="#ffffff" link>"#e7d387" alink="#e7d387" vlink="#e7f0e4"> this is the header < hr> function show footer () ?> < hr> this is the footer < /body> < /html> < ? } ?>
Листинг 9.11. Применение инициализационного файла
< ? // Включить инициализационный файл include("site_init.tpl"); // Вывести заголовок show header ($site_name); ?> // Содержимое основной части this is some body information < ? // Вывести колонтитул show_footer( ); ?>
Проект: генератор страниц
Хотя в большинстве созданных мною web-сайтов основное содержимое страниц формировалось на основании информации, прочитанной из базы данных, всегда найдется несколько страниц, которые практически не изменяются. В частности, на них могут выводиться сведения о команде разработчиков, контактные данные, реклама и т. д. Я обычно храню эту < статическую> информацию в отдельной папке и использую сценарий РНР для ее загрузки при поступлении запроса. Конечно, у вас возникает вопрос - если это статическая информация, для чего нужен сценарий РНР? Почему бы не загружать обычные страницы html? Преимущество РНР заключается в том, что вы можете использовать шаблоны и вставлять статические фрагменты по мере необходимости.
Ссылки для загрузки различных статических файлов строятся динамически. В обобщенной форме ссылка выглядит так:
< а href = "< ?=$site_path>/static.php?content=$content">static page name< /a>
Начнем с создания статических страниц. Для простоты я ограничусь тремя страницами, содержащими информацию о сайте (листинг 9.12), рекламу (листинг 9.13) и контактные данные (листинг 9.14).
Листинг 9.12. Информация о сайте (about.html)
< h3>about phprecipes< /h3>
what programmer doesn't mix all night programming with gourmet cookies. here at phprecipes. hardly a night goes by without one of our coders mixing a little bit of html with a tasty plate of portobello mushrooms or even fondue. so we decided to bring you the best of what we love most: php and food!
< p>
that's right, readers. tutorials, scripts, souffles and more. < i>0nly< /i> at phprecipes.
Листинг 9.13. Рекламная информация (advert_info.html)
< h3>advertising information< /h3> regardless of whether they come to learn the latest php techniques or for brushing up on how to bake chicken, you can bet our readers are decision makers. they are the industry professionals who make decisions about what their company purchases. for advertising information, contact < a href - "mailto:[email protected] ">[email protected]< /a>. Листинг 9.14. Контактные данные (contact.html) < h3>contact us< /h3> have a coding tip? < br> know the perfect topping for candied yams?< br>
let us know! contact the team at < a href= "mailto:[email protected]">[email protected]< /a>.
Переходим к построению страницы static.php, которая выводит запрашиваемую статическую информацию. В этот файл (см. листинг 9.15) включаются компоненты страниц нашего сайта и инициализационный файл site_init.tpl.
Листинг 9.15. Общий вывод статических страниц (static.php)
< ? // Файл: static.php // Назначение: отображение запрашиваемых статических страниц. // ВНИМАНИЕ: предполагается, что файл "site_init.tpl" и все // статические файлы находятся в том же каталоге. // Загрузить функции и переменные include("site_init.tpl"): // Вывести заголовок show_header($site_name); // Вывести запрашиваемое содержание include("$content.html"): // Вывести колонтитул show footer( ); ?>
Теперь все готово к построению основного сценария. Просто включите в страницу
следующие ссылки:
< а href = "static.php?content=about">static page name< /a>< /br> < a href = "static.php?content=advert_info">advertising information< /a>< /br> < a href = "static.php?content=about">contact us< /a>< /br>
Если щелкнуть на любой из этих ссылок, в браузере загружается соответствующая статическая страница, внедренная в static.php!
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.