p align="left">{ echo('<STYLE type="text/css"> A:visited'); echo("{"); if ($color!="") { echo("color: "); echo($color); echo(";"); } else { echo('color: #5f0000;'); } if ($t_decor!="") { echo('text-decoration: '); echo($t_decor); echo(';'); } else { echo('text-decoration: none;'); } if ($f_size!="") { echo('font-size: '); echo($f_size); echo('pt;'); } else { echo('font-size: 12pt;'); } if ($f_font!="") { echo('font-family: '); echo($f_font); echo(';}'); } else { echo('font-family: Arial;'); } echo("}</STYLE>"); } 2.2 Функция l_hover_style (изменение стиля ссылок при наведении) При вызове функции пользователю надо будет ввести четыре параметра: $color - цвет ссылок $t_decor - оформление ссылок (например подчеркивание) $f_size - размер шрифта ссылок $f_font - название шрифта ссылок Реализация функции на языке PHP будет иметь следующий вид: function l_hover_style($color, $t_decor, $f_size, $f_font) { echo('<STYLE type="text/css"> A:hover'); echo("{"); if ($color!="") { echo("color: "); echo($color); echo(";"); } else { echo('color: #000000;'); } if ($t_decor!="") { echo('text-decoration: '); echo($t_decor); echo(';'); } else { echo('text-decoration: blink, underline;'); } if ($f_size!="") { echo('font-size: '); echo($f_size); echo('pt;'); } else { echo('font-size: 12pt;'); } if ($f_font!="") { echo('font-family: '); echo($f_font); echo(';}'); } else { echo('font-family: Arial;'); } echo("}</STYLE>"); } 2.3 Функция l_link_style (изменение стиля не посещенных ссылок) При вызове функции пользователю надо будет ввести четыре параметра: $color - цвет ссылок $t_decor - оформление ссылок (например подчеркивание) $f_size - размер шрифта ссылок $f_font - название шрифта ссылок Реализация функции на языке PHP будет иметь следующий вид: function l_link_style($color, $t_decor, $f_size, $f_font) { echo('<STYLE type="text/css"> A:link'); echo("{"); if ($color!="") { echo("color: "); echo($color); echo(";"); } else { echo('color: #5f0000;'); } if ($t_decor!="") { echo('text-decoration: '); echo($t_decor); echo(';'); } else { echo('text-decoration: none;'); } if ($f_size!="") { echo('font-size: '); echo($f_size); echo('pt;'); } else { echo('font-size: 12pt;'); } if ($f_font!="") { echo('font-family: '); echo($f_font); echo(';}'); } else { echo('font-family: Arial;'); } echo("}</STYLE>"); } 2.4 Функция add_item (добавляет элемент в массив) При вызове данной функции пользователю надо будет ввести два параметра: $title - отображаемый текст ссылки $s_url - адрес, на который указывает ссылка Таким образом, всю функцию можно описать следующей последовательностью действий: определение конца массива добавление в массив переменной $title добавление в массив переменной $s_url После перевода алгоритма на язык PHP получим следующую функцию: function add_item($title, $s_url) { $n=sizeof($this->link_and_text_list); $this->link_and_text_list[$n]['title']=trim($title); $this->link_and_text_list[$n]['url']=trim($s_url); } 2.5 Функция add_img_item (добавляет ссылку-рисунок в массив) При вызове данной функции пользователю надо будет ввести три параметра: $title - альтернативный текст $s_url - адрес, на который указывает ссылка $image - путь к рисун Таким образом, всю функцию можно описать следующей последовательностью действий: определение конца массива добавление в массив тега IMG с путем к рисунку заданным переменной $image и альтернативным текстом из переменной $title добавление в массив переменной $s_url После перевода алгоритма на язык PHP получим следующую функцию: function add_img_item($title, $s_url, $image) { $n=sizeof($this->link_and_text_list); if ($image!="") { $this->link_and_text_list[$n]['title']="<IMG SRC=".trim($image)." BORDER=0 ALT='".trim($title)."'>"; } $this->link_and_text_list[$n]['url'].=" ".trim($s_url); } 2.6 Функция gor_nav_create (создает горизонтальное меню навигации из массива) Функция должна последовательно выводить все ссылки, введенные ранее в массив $link_and_text_list, через разделитель заданный в переменной $delitmer. Реализация функции на языке PHP будет иметь следующий вид: function gor_nav_create() { $links_arr=$this->link_and_text_list; $str = ""; $c=sizeof($links_arr); for ($i=0; $i<$c; $i++) { if (!$links_arr[$i]['url']) { $str .= $links_arr[$i]['title']; } else { $str .= "<a href=\"".$links_arr[$i]['url']."\" target=\"_self\">".$links_arr[$i]['title']."</a>"; } if ($i<$c-1) { $str .= $this->delitmer; } } return $str; } 2.7 Функция vert_nav_create (создает вертикальное меню навигации из массива) Функция должна последовательно выводить все ссылки, введенные ранее в массив $link_and_text_list с переходом на следующую строк Реализация функции на языке PHP будет иметь следующий вид: function vert_nav_create() { $links_arr=$this->link_and_text_list; $str = ""; $c=sizeof($links_arr); for ($i=0; $i<$c; $i++) { if (!$links_arr[$i]['url']) { $str .= $links_arr[$i]['title']; } else { $str .= "<a href=\"".$links_arr[$i]['url']."\" target=\"_self\">".$links_arr[$i]['title']."</a>"."<BR>"; } } return $str; } 2.8 Функция title_create() (создает заголовок страницы) Данная функция будет выводить в заголовок страницы часть массива, содержащую текст из ссылок (через разделитель). Реализация функции на языке PHP будет иметь следующий вид: function title_create() { $links_arr = array_reverse($this->link_and_text_list); $str = ""; $c = sizeof($links_arr); for ($i=0; $i<$c; $i++) { $str .= $links_arr[$i]['title']; if ($i<$c-1) { $str .= $this->delitmer; } } return "<title>".$str."</title>"; } } 2.9 Пример использования Для того чтобы проиллюстрировать использование созданного нами класса введем следующий код PHP (результат его выполнения показан на Рис. 1) : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>ReFolder - О проекте</TITLE> </HEAD> <BODY bgcolor="#FFFFFF" text="#000000"> <TABLE BORDER=0 WIDTH=100% HEIGHT=100%> <TR> <TD WIDTH=300 HEIGHT=90 ALIGN = "center" VALIGN = "middle"><IMG SRC = "Logo.jpg"></TD> <TD ALIGN = "center" VALIGN="bottom"> <?php $nav = new Url_nav(); // создание нового экземпляра класса $nav -> l_visited_style("","","","");//изменение стиля посещенных ссылок $nav -> l_hover_style("","","","");//изменение стиля ссылок при наведении $nav -> l_link_style("","","","");// изменение стиля непосещенных ссылок $nav -> delitmer = " < "; // установка разделителя $nav -> add_item("О проекте", "index.htm"); $nav -> add_item("Рефераты", "referats.htm"); // добавление элементов $nav -> add_item("Библиотека", "bibl.htm"); $nav -> add_item("Решения и ответы", "otveti.htm"); $nav -> add_item("Программы", "program.htm"); $nav -> delitmer = " > "; // изменение разделителя echo $nav -> gor_nav_create(); // создание и вывод панели навигации со ссылками echo("</TD> </TR> <TR> <TD WIDTH=300 VALIGN='top' ALIGN = 'left'> <IMG SRC = 'MenuLine.jpg'><BR>"); $nav2 = new Url_nav(); $nav2 = new Url_nav(); // создание нового экземпляра класса $nav2 -> l_visited_style("","","","");//изменение стиля посещенных ссылок $nav2 -> l_hover_style("","","","");//изменение стиля ссылок при наведении $nav2 -> l_link_style("","","","");// изменение стиля непосещенных ссылок $nav2 -> add_item("Бесплатное хранение файлов", "http://refolder.ifolder.ru"); $nav2 -> add_item("Заказать работу", "work.htm"); // добавление элементов $nav2 -> add_item("Письмо разработчикам", "opinion.htm"); $nav2 -> add_item("Карта сайта", "karta.htm"); $nav2 -> add_img_item("Разделитель", "MenuLine.jpg", "MenuLine.jpg"); echo $nav2 -> vert_nav_create(); ?> </TD> <TD ALIGN = "left" VALIGN="top"><P>Доброго времени суток, Дорогой гость.<BR> На этом сайте вы сможете найти большую коллекцию книг, рефератов,а так же выполненных работ по различным предметам.<BR> Так же здесь хранится база ответов на некоторые курсы Intuit.ru<BR> Теперь немного о том как работает сайт. На сайте храняться два типа ссылок: <OL> <LI>Ссылки с пометкой [iFolder] - указывают на файлы хранящиеся на сайте файлового хостинга <A HREF="http://refolder.ifolder.ru/">refolder.ifolder.ru</A> (почему именно он? Прежде всего потому что он один из немногих серверов поддерживающих программы для закачки, что на наш взгляд крайне удобно)</LI> <LI>Ссылки с пометкой [ed2k] - указывают на версию файла хранящуюся в сети eDonkey2000. Чтобы скачать подобные ссылки рекомендуем установить программу eMule (ее можно <A HREF="http://www.emule-project.net/">скачать с официального сайта</A> или воспользоваться вот этой <A HREF="http://refolder.ifolder.ru/6437769">ссылкой [iFolder]</A>). О том как пользоваться программой eMule можно прочитать <A HREF="rukovodstvo_eMule.zip">здесь.</A> </LI> </OL> </P> <b>P.S. Все материалы размещенные на данном сайте носят исключительно ознакомительный характер и должны быть удалены после просмотра.</b> </TD> </TR> <TR> <TD> </TD><TD ALIGN = "center"> </TD> </TR> </TABLE> </BODY> </HTML> Рис. 1 - Результат выполнения кода Заключение Разработанный класс позволяет значительно упростить создание меню навигации сайта. Он сводит всю разработку к заданию элементов массива, разделителя и вызову методов класса. Класс позволяет выводить меню навигации, как в виде строки, так и в виде столбца. Что еще больше расширяет функциональные возможности класса. Таким образом можно сделать вывод о том, что поставленная задача была выполнена полностью. И ее итогом стал вполне жизнеспособный программный продукт, способный получить широкое применение у специалистов занимающихся разработкой Web - сайтов на языке PHP. Список литературы Кузнецов М.В., Симдянов И.В. Самоучитель PHP. - 2-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2006. Уильман Л., Основы программирования на PHP: Пер с анг. -М.: ДМК Пресс, 2001. Фленов М.Е., PHP Глазами хакера. - СПб.: БХВ-Петербург, 2005. Кухарчик А., PHP: Обучение на примерах. - Мн.: Новое издание, 2004.
Страницы: 1, 2
|