//Функция получения массива каталога
function get_cat() {
//запрос к базе данных
$sql = "SELECT * FROM menu";
$result = mysql_query($sql);
if(!$result) {
return NULL;
}
$arr_cat = array();
if(mysql_num_rows($result) != 0) {
//В цикле формируем массив
for($i = 0; $i < mysql_num_rows($result);$i++) {
$row = mysql_fetch_array($result,MYSQL_ASSOC);
//Формируем массив где ключами являются айдишники на родительские категории
if(empty($arr_cat[$row['parent_id']])) {
$arr_cat[$row['parent_id']] = array();
}
$arr_cat[$row['parent_id']][] = $row;
}
//возвращаем массив
return $arr_cat;
}
}
//вывод каталогa с помощью рекурсии
function view_cat($arr,$parent_id = main) {
//Условия выхода из рекурсии
if(empty($arr[$parent_id])) {
return;
}
echo "<ul>";
//перебираем в цикле массив и выводим на экран
for($i = 0; $i < count($arr[$parent_id]);$i++) {
echo "<li><a href=\"?category_id={$arr[$parent_id][$i]['title_url']}&parent_id={$parent_id}\""
.($category_id == $arr[$parent_id][$i]['title_url'] ? ' class="menu-active"':'')
.">{$arr[$parent_id][$i]['title']}</a>";
//рекурсия - проверяем нет ли дочерних категорий
view_cat($arr,$arr[$parent_id][$i]['title_url']);
echo "</li>";
}
echo "</ul>";
}
вывод происходит в файле site.php, примерно так-
//получаем массив каталога
$result = get_cat();
//Выводим каталог на экран с помощью рекурсивной функции
echo '<div id="header">';
echo '<img class="logo" src="images/logo.png">';
echo '<img class="yab" src="images/yab1.png">';
echo '<div id="menu">';
$menu = view_cat($result);
echo '</div>';
echo '</div>';
if(empty($_GET['category_id'])){
$parent_id = 'home';
}
else{
$parent_id = $_GET['category_id'];
}
?>
</div>
<div id="content">
<?include($_SERVER['DOCUMENT_ROOT'].'/views/pages/'.$parent_id.'.php');?>
</div>
крутил разные значения,например
$category_id == $arr[$parent_id][$i]['title_url']
или
$category_id == $_GET['title_url']
ничего не выходит...помогите понять как задать условие правильно-чтоб активному пункту меню соответствовал класс со стилем:"menu-active"...заранее спасибо...