Как сделать навигацию в php
Прочитав эту статью, вы узнаете, как создавать навигацию для сайта на PHP и получите подробный пример реализации.
Простую навигацию можно реализовать с помощью HTML и PHP. Для этого нужно определить структуру страницы, начиная с файла index.php. Он будет содержать основную разметку HTML и подключение файла с навигацией. Файл навигации может выглядеть так:
<?php
// Файл навигации
$pages = array(
'index.php' => 'Главная',
'about.php' => 'О нас',
'contact.php' => 'Контакты'
);
?>
Здесь мы создали массив страниц и их заголовков. Теперь нужно вывести навигацию на страницу. Это можно сделать с помощью цикла:
<ul>
<?php
foreach($pages as $url=>$title) {
echo '<li><a href="'.$url.'">'.$title.'</a></li>';
}
?>
</ul>
Теперь мы вывели на страницу простое меню. Чтобы сделать активным текущий пункт меню, мы можем использовать следующий код:
<ul>
<?php
foreach($pages as $url=>$title) {
$active = ($url == basename($_SERVER['PHP_SELF'])) ? ' class="active"': '';
echo '<li'.$active.'><a href="'.$url.'">'.$title.'</a></li>';
}
?>
</ul>
В этом коде мы проверяем, соответствует ли текущий URL файлу, и добавляем атрибут class="active"
, если они совпадают. Добавленный атрибут можно использовать для применения стилей к активному пункту меню.
Пример использования нескольких уровней навигации
Если вам нужна навигация на нескольких уровнях, вы можете использовать вложенные массивы. Например:
<?php
// Файл навигации
$pages = array(
'index.php' => 'Главная',
'about.php' => 'О нас',
'contact.php' => 'Контакты',
'products' => array(
'index.php' => 'Каталог товаров',
'product1.php' => 'Товар 1',
'product2.php' => 'Товар 2',
'product3.php' => 'Товар 3'
)
);
?>
Теперь мы можем вывести навигацию с помощью рекурсивной функции:
<ul>
<?php
// Вывод навигации
function showNav($pages) {
foreach($pages as $url=>$title) {
// Если переменная $title является массивом, то это вложенный уровень меню
if(is_array($title)) {
echo '<ul>';
showNav($title);
echo '</ul>';
} else {
$active = ($url == basename($_SERVER['PHP_SELF'])) ? ' class="active"': '';
echo '<li'.$active.'><a href="'.$url.'">'.$title.'</a></li>';
}
}
}
showNav($pages);
?>
</ul>
Этот код проверяет, является ли заголовок страницы массивом. Если да, то он вызывает функцию showNav() для вывода вложенного уровня меню. Таким образом, мы можем реализовать более сложную навигацию с несколькими уровнями.