Статьи,обзоры,справочники по PHP

Упрощение навигации


Рассмотрим стандартные приемы работы с РНР на примере сайта http://www.harchikov.ru/, который посвящен творчеству популярного певца-барда Александра Харчикова. На нем представлены вышедшие альбомы певца в количестве 15 шт. и записи песен каждого альбома в MP3-формате. При создании сайта возникла необходимость обеспечить удобную навигацию. Общепринятый способ — ссылки на страницы с описанием каждого из альбомов и песнями из него — имел тот недостаток, что посетитель, желающий просмотреть сразу несколько альбомов, был бы вынужден постоянно переходить со страницы на страницу. Недостаток другого варианта — размещение информации о всех альбомах на одной странице — ясен сразу: размер ее получился бы слишком большим.

Разработчики сайта нашли наиболее удачное решение этой проблемы. На главной странице разместилась форма, а у каждого названия альбома — checkbox, внизу же страницы — кнопка перехода на список альбомов. Посетитель отмечает заинтересовавшие его альбомы, и после нажатия кнопки перехода PHP-сценарий выводит ему страницу с описаниями только выбранных альбомов.


Чтобы просмотреть лишь избранные альбомы, достаточно их отметить…

Сделано это просто.

Все checkbox заглавной страницы сайта имеют свои имена: <INPUT name=pan01 type=checkbox>, <INPUT name=pan02 type=checkbox> и т. д. и находятся в большой форме, параметром action которой является имя файла с программой на PHP, выводящей описания альбомов в соответствии с заданными параметрами. Для передачи данных формы используется метод get (т. е. ее заголовок имеет вид <FORM action=albm.php method=get name=forma>), это приводит к тому, что в адресе страницы с загруженными альбомами присутствуют переменные, т. е. если занести этот адрес в «Избранное», то при возвращении на сайт по этой ссылке не придется вновь заполнять форму на заглавной странице. Кнопка, вызывающая переход на страницу, указанную в параметре action заголовка формы, должна иметь тип submit: <INPUT type=submit value="Вывести оглавления отмеченных альбомов">.


В файле же albm.php помещена простая программа:

<?php if ($bar01==True) {include ("bar01.php");} if ($bar02==True) {include ("bar02.php");} ( и так далее по одному условию на каждый альбом) ?>

В файлах bar01.php, bar02.php и т. д. находятся описания альбомов и ссылки на MP3-файлы песен. Если checkbox с соответствующим именем был отмечен на заглавной странице, то переменная его имени оказывается равной True — именно это и проверяется в сценарии.


Если вас заинтересовали лишь отдельные вопросы, нет надобности загружать всю страницу (на примере сайта фирмы «Экон-Профи»).

Удивительно, что этот простейший прием в настоящее время практически не применяется в Сети. А ведь как удобно — например, на том же сайте Харчикова можно выбрать альбомы, сгенерировать себе страницу со ссылками на песни из них и, заходя сразу на нее, постепенно загружать понравившиеся композиции или передать весь список в какую-нибудь из программ-качалок. Вот еще пример: на сайте фирмы «Экон-Профи» точно так же реализован раздел «Вопросы и ответы». Отметив интересующие вопросы на странице раздела, вы получаете подробные консультации исключительно по выбранным темам.

Данную схему довольно легко доработать под свои нужды. Опыт показывает, что посетители чаще всего предпочитают просмотреть либо два-три выбранных раздела, либо все разделы сразу. Поэтому стоит поместить на страницу еще и кнопку «Просмотреть все». Ей можно назначить гиперссылку с адресной строкой, содержащей все переменные в значении on, или же немного доработать код PHP на странице-обработчике запроса, попросту добавив во все условия проверку значения еще одной, общей переменной: if (($bar02==True) || ($all==True)) {… (знак || означает «или»), и тогда гиперссылка будет вести на адрес albm.php?all=True. Эта задача решается и с помощью размещенных на странице сценариев на JavaScript, выполняющих соответственно отметку всех checkbox и, наоборот, их очистку (см. на странице www.harchikov.ru/cass.php). Так что простор для творчества имеется, и немалый.

<


PHP в России
Основной русский ресурс по PHP — это, несомненно, сайт Дмитрия Бородина «PHP для всех» (зеркало). Информации, содержащейся на его страницах, вполне достаточно для начала работы и изучения основ PHP.

На сайте http://phpclub.unet.ru/ вы найдете множество примеров сценариев на PHP, сможете загрузить литературу на русском языке, получить от профессионалов в Web-программировании ответ на свой вопрос или принять участие в каком-либо обсуждении или пообщаться с коллегами в чате. «Архив форума» содержит ответы практически на все мыслимые и немыслимые вопросы по Web-программированию на PHP. Здесь регулярно публикуются новости мира PHP-программирования, рассказывается о новых разработках в этой области, размещается информация о вакансиях Web-дизайнеров и программистов. Также немало полезной информации есть в Web-клубе по адресу www.webclub.ru/materials/php3, в частности руководство по PHP, представленное на сайте «PHP для всех», изначально размещалось именно там.

На сайте http://virtual.bresttelecom.by/ можно подписаться на рассылку «PHP для всех», автор которой публикует в рассылке свои уроки по Web-программированию.

Содержание раздела