Листинг 12.9. Вспомогательный шаблон rows.addresses
<tr><td bgcolor="#c0c0c0">
<b>{last_name},{first_name}</b>
</td></tr>
<tr><td>
<b>{telephone}</b>
</td></tr>
<tr><td>
<b><a href = "mailto:{email}">{email}</a></b>
</td></tr>
В листинге 12.9 встречаются четыре переменных, заключенных в ограничители: last_name, first_name, telephone и emal. Смысл этих переменных очевиден (см. определение таблицы addressbook). Следует заметить, что этот файл состоит только из табличных тегов строк (<tr>...</tr>) и ячеек (<td>...</td>). Дело в том, что этот файл вставляется в шаблон многократно, по одному разу для каждого адреса, прочитанного из базы данных. Поскольку имя переменной rows.addresses в листинге 12.8 включается внутрь тегов <table>...</table>, форматирование HTML будет обработано правильно. Чтобы вы лучше поняли, как работает этот шаблон, взгляните на рис. 12.1 — на нем изображена копия страницы адресной книги. Затем проанализируйте листинг 12.10, содержащий исходный текст этой страницы. Вы увидите, что содержимое файла rows.addresses многократно встречается в странице.
Листинг 12.10. Исходный текст страницы, изображенной на рис. 12.1
<html>
<head>
<title>:::::Address Book:::::</title>
</head>
<body bgcolor="white">
<table cellpadd1ng=2 cellspacing=2 width=600>
<hl>Address Book: f</hl>
<tr><td>
<a href="index.html.php?letter=a">A</a> |
<a href="index.html.php?letter=b">B</a> |
<a href="index.html.php?letter=c">C</a> |
<a href="index.html.php?letter=d">D</a> |
<a href="index.html.php?letter=e">E</a> |
<a href="index.html.php?letter=f">F</a> |
<a href="index.html.php?letter=g">G</a> |
<a href="index.html.php?letter=h">H</a> |
<a href="index.html.php?letter=i">I</a> |