Php скрипт меню сайта с вложениями

php меню с вложениямиPhp скрипт организации меню динамического сайта, как и само меню это важнейший его элемент. И от того, как оно организовано зависит сколько времени посетитель проведет на сайте. Меню сайта может быть простым или вложенным. Чаще всего меню сайта делается вложенным. Тоесть с организацией рубрик, разделов, подразделов, подподразделов и т. д. Но оптимальным считается одно, два вложения. Такая организация меню не напрягает пользователя и направляет его именно туда, куда он того желает. Если первое вложение в меню вполне можно сделать на самой панели меню с небольшим отступом от названия радела, то второе вложение выгодно делать уже на самой странице сайта.

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

Кроме того такая организация меню становится легко доступной для редактирования из админпанели путем записи, перзаписи, удаления содержимого нескольких текстовых файлов. Конечно, работу такого скрипта можно организовать на одном текстовом файле или даже на php матрицах array. Но выгоды от этого не увеличятся, а только уменьшатся. Организация на одном текстовом файле усложнит и запутает местонахождение текста ссылок разделов, подразделов, всплывающих подсказок и т. д., а организация на матрицах aray усложнит встраивание такого меню в сайт шаблон которого выполнен не на php файлах.

Исходя из выше изложенного вырисовывается структура меню с вложениями на текстовых файлах в которых будет храниться информация по рубрикам, разделам и подразделам:


Текстовый файл рубрик (каждая строка с разделителями "::" - одна рубрика).
Название массива рубрики::Название рубрики::Путь к текстовому файлу разделов::


Текстовый файл разделов (каждая строка с разделителями "::" - один раздел).
Название страницы (без .html) раздела::Название раздела::
Текст всплывающей подсказки раздела::Путь к текстовому файлу подразделов::


Текстовый файл подразделов (каждая строка с разделителями "::" - один подраздел).
Название страницы (без .html) подраздела::Название подраздела::
Текст всплывающей подсказки подраздела::


Добавив к этой структуре правильные записи работы модуля mod_rewrite в файле .htaccess ссылки меню динамического сайта вообще можно оформить в статические без всяких разных интересных значков типа "?" или "&". Скрипт такого меню представлен ниже:


  $rmenu = @file($rubrics_menu);
// подсчет количества рубрик
$rlines = count($rmenu);
for ($i = 0; $i < $rlines; $i++)
{
list($rb,$nrub,$rbmenu)=explode("::", $rmenu[$i]);
$menu = @file($rbmenu);
// подсчет количества разделов в рубриках
$lines = count($menu);
for ($j = 0; $j < $lines; $j++)
{
// подгогтовка компонентов для ссылок
list($menu_link,$menu_name,$menu_title,$submenufile)=
explode("::", $menu[$j]);
if(is_file($submenufile) and $page == $menu_link)
{
$submenuar = @file($submenufile);
$alines = count($submenuar);
for ($n = 0; $n < $alines; $n++)
{
list($submenu_link,$submenu_name,$submenu_title)=
explode("::", $submenuar[$n]);
// подсветка активных ссылок подразделов
if($part != $submenu_link)
{$subrefcolor = ""; $subtemp = "";}
elseif($part == $submenu_link)
{$subrefcolor = "style='color:#cc0000'";}
$subsection .= "<li id='part'><a ".$subrefcolor.
"title='".$submenu_title."' href='".$turl."/".$menu_link."/"
.$submenu_link.".html"."'>".$submenu_name."</a></li>";
}
}
// подсветка активных ссылок разделов
if($page != $menu_link) {$refcolor = ""; $subtemp = "";}
elseif($page == $menu_link)
{
$refcolor = "style='color:#cc0000'";
$subtemp = $subsection;
}
// склейка компонентов ссылок
$rub[$rb].= "<li><a ".$refcolor." title='".$menu_title."'
href='".$turl."/".$menu_link.".html"."'>".$menu_name.
"</a></li>".$subtemp;
}
$rub[$rb] = "<p class=sideBarTitle>".$nrub." :</p><ul>".$rub[$rb]."</ul>";
// конечный результат меню находится в $lmenu
$lmenu .= $rub[$rb];
}

Путь к текстовому файлу рубрик прописывается в сеттингах конкретного сайта в преременную $rubrics_menu. Ну а далее пути к меню разделов и подразделов прописываются уже в самих текстовых файлах рубрик, разделов соответственно.

Результат работы данного скрипта это готовое меню с рубриками, разделами и вложенными в них подразделами, которое в конеченом итоге формируется в одной переменной $lmenu. Обрамление для содержимого результирующей переменной можно выполнять на базе контейнеров div с соответствующим стилями css влюбом удобном виде. Да и сам скрипт при небольших навыках можно встроить куда угодно, в любой сайт внешне оформив его с помощью css в нужный вид.

Ну, вот собственно и все. Для того, чтобы полнее уяснить суть, можно скачать тестовую страницу с php скриптом меню с вложениями в своем составе. Страница оформлена в виде небольшого проекта на базе локального сервера Денвер. Архив нужно распаковать в папку home Денвера, запустить Денвер, набрать в браузере menusub.ru и пройтись по ссылкам наблюдая, как формируется вложенное меню с подсвечиванием ссылок.

Top.Mail.Ru