Основная часть
В основной части страницы подключается содержимое заголовка и колонтитула. В сущности, именно основная часть содержит информацию, интересующую посетителей сайта. Заголовок эффектно выглядит, колонтитул содержит полезные сведения, но именно ради основной части страницы пользователи снова и снова возвращаются на сайт. Хотя я не смогу предоставить каких-либо рекомендаций по поводу конкретной структуры страниц, шаблоны, подобные приведенному в листинге 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 = "wjgilore@hotmail.com";
- $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:ads@phprecipes.com
- ">ads@phprecipes.com< /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:theteam@phprecipes.com">team@phprecipes.com< /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 обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.