Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #12
<< 1 2 3 4 5 6 >>
общими концепциями — переменными, циклами и условными командами. Дизайнеру, абсолютно не разбирающемуся в них, применение шаблонов практически ничего не даст, кроме относительно бесполезных сведений из области синтаксиса. В общем, независимо от того, захотите вы пользоваться этим типом шаблонов или нет, я настоятельно рекомендую потратить немного времени и обучить дизайнера азам языка РНР... а еще лучше — купить ему эту книгу! От этого выиграют обе стороны, поскольку дизайнер приобретет дополнительные навыки и станет более ценным членом рабочей группы, а у программиста появится новый источник идей. Может, дизайнер и не изобретет ничего выдающегося, но зато он взглянет на ситуацию под новым углом зрения, обычно недоступным для программиста.

Проект: адресная книга

Хотя системы шаблонов хорошо подходят для многих типов web-приложений, они приносят особенную пользу в приложениях, ориентированных на выборку и вывод данных, в которых особенно важно обеспечить правильное форматирование.

Примером такого приложения является адресная книга. Представьте себе обычную (бумажную) адресную книгу: все страницы выглядят практически одинаково, различаются разве что буквы, с которых начинаются имена на конкретной странице. Аналогичный подход можно применить и к адресной книге на базе Web. Форматирование в данном случае играет еще более важную роль, поскольку не исключено, что данные придется экспортировать в другое приложение в каком-нибудь специфическом формате. Подобные приложения прекрасно работают на базе шаблонов, поскольку дизайнеру остается лишь создать единый формат страницы, который будет использоваться для всех 26 букв алфавита.

Прежде всего, необходимо решить, какие данные и в каком формате будут храниться в адресной книге. Конечно, оптимальным носителем информации в данном случае является база данных, поскольку это упростит такие полезные операции, как поиск и сортировка данных. В своем примере я воспользуюсь СУБД MySQL. Определение таблицы выглядит следующим образом:

mysql>CREATE table addressbook (

last_name char(35) NOT NULL,

first_name char(20) MOT NULL,

tel char(20) NOT NULL,

email char(55) NOT NULL );

Разумеется, вы можете самостоятельно добавить поля для хранения адреса, города и т. д. Для наглядности я буду использовать сокращенную таблицу, приведенную ранее.

Теперь я возьму на себя роль дизайнера и займусь созданием шаблонов. Для этого проекта нужны два шаблона. Код первого, «родительского» шаблона book.html приведен в листинге 12.8.

Листинг 12.8. Основной шаблон адресной книги book.html

<html>

<head>

<title>:::::{page_title}:::::</title>

</head>

<body bgcolor="white">

<table cellpadding=2 cellspacing=2 width=600>

<h1>Address Book: {letter}</h1> <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> |

<a href="index.html.php?letter=j">J</a> |

<a href="index.html.php?letter=k">K</a> |

<a href="index.html.php?letter=l">L</a> |

<a href="index.html.php?letter=m">M</a> |

<a href="index.html.php?letter=n">N</a> |

<a href="index.html.php?letter=o">O</a> |

<a href="index.html.php?letter=p">P</a> |

<a href="index.html.php?letter=q">Q</a> |

<a href="index.html.php?letter=r">R</a> |

<a href="index.html.php?letter=s">S</a> |

<a href="index.html.php?letter=t">T</a> |

<a href="index.html.php?letter=u">U</a> |

<a href="index.html.php?letter=v">V</a> |

<a href="index.html.php?letter=w">W</a> |

<a href="index.html.php?letter=x">X</a> |

<a href="index.html.php?letter=y">Y</a> |

<a href="index.html.php?letter=z">Z</a>

</td></tr>

{rows.addresses}

</table>

</body>

</html>

Как видите, файл в основном состоит из ссылок с разными буквами алфавита. Если щелкнуть на букве, в браузере отображается информация обо всех контактах в адресной книге, фамилии которых начинаются с указанной буквы.

В странице встречаются три имени переменных, заключенных в ограничители: page_title, letter и rows_addresses. Смысл первых двух переменных очевиден: текст в заголовке страницы и буква адресной книги, использованная для выборки текущих адресных данных. Третья переменная относится к дополнительному шаблону (листинг 12.9) и определяет файл конфигурации таблицы, включаемый в основной шаблон. Файлы конфигурации таблиц используются в связи с тем, что в сложных страницах может быть одновременно задействовано несколько шаблонов, в каждом из которых данные форматируются в виде таблиц HTML. Шаблон rows.addresses (листинг 12.9) выполняет вспомогательные функции и вставляется в основной шаблон book.html. Вскоре вы поймете, почему это необходимо.

Листинг 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> |

<a href="index.html.php?letter=j">J</a> |

<a href="index.html.php?letter=k">K</a> |

<a href="index.html.php?letter=l">L</a> |

<a href="index.html.php?letter=m">M</a> |

<a href="index.html.php?1etter=n">N</a>
Комментарии (0)
<< 1 2 3 4 5 6 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.0075 сек.