Php скрипт меню сайта в одной переменной

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

<?php

// Формирователь меню

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

?>

Результат работы данного скрипта содержится в переменной $lmenu. Перенеся содержимое даной переменной на место в шаблоне где должно находиться меню сайта в конечном итоге можно получить само меню. В сеттингах, тоесть в файле setings.php нашего проекта необходимо прописать только путь до текстовго файла, который необходимо создать средствами Dreamweaver, который будет определять пути до файлов рубрик и их содержимого. Это будет файл rubrics.dat полный путь к оторому будет D:/Mysitephp/data/rubrics.dat и его временное содержимое,

data/rubric1.dat::rubric1::Рубрика 1::
data/articles.dat::articles::Полезные статьи:
:

которое состоит из строк разделенных на части с помощью разделителя "::". Например в первой части первой строки находится путь к текстовому файлу rubric1.dat содержащему содержание меню Рубрики 1, которое ничем не отличается от описанного ранее php меню, далее через разделитель название-индекс rubric1 для формирования массива ссылок разделов и далее через следующий разделитель название собственно рубрики Рубрика 1. Подобным образом можно формировать новые рубрики с содержимым. Достаточно прописать в файле rubrics.dat всего одну строку через разделители, где будет указан путь к файлу содержащему меню самой рубрики, произвольное название-индекс для массива ссылок и название самой рубрики. Таким образом, например, сформирована строка для рубрики Полезные статьи. Теперь, имея такую упрощенную модель формирования меню, проще будет написать php скрипт админпанели, который будет управлять добавлением удалением и редактированием рубрик и их содержимого для меню проекта. Для этого достаточно будет из админпанели иметь возможность редактирования нескольких текстовых файлов содержащих меню рубрик и сами рубрики. В нашем случае это пока всего три файла rubric1.dat, articles.dat, rubrics.dat, которые находятся в папке data проекта php сайта.

Данный код скрипта меню необходимо скопировать и заменить им код в файле menus.php. Кроме этого необходимо внести некоторые корректировки в файл установок setings.php, файл перехода по ссылкам move.php и файл шаблонизатора main.php. Будет полезно проделать эти операции самостоятельно внимательно изучив, что необходимо добавить или изменить в файлах setings.php move.php main.php для нормальной работы обновленного скрипта меню.

При самостоятельном внесении изменений, о которых шла речь выше, могут быть допущены ошибки. Чтобы выяснить в чем, можно скачать проект с обновленным php скриптом меню и для устранения разночтений заменить им предыдущий, внимательно изучив изменения проведенные в скриптах. Далее все как обычно, выполнив синхронизацию, запустить локальный сервер, набрать в браузере mysitephp.ru, и выполнить переходы по ссылками меню сайта.

Top.Mail.Ru