Zheleznov
@Zheleznov

Как убрать циклические ссылки из меню?

Добрый день, всем!

Задача: Убрать циклические ссылки

Т.е. чтобы находясь на странице /page
В меню не было ссылки которая ссылается на страницу /page

Меню сайта написано на html
в php проверяем url и удаляем ссылку из пункта, если находимся на этой странице

<?php
    // Получаем относительный путь
    $url = $_SERVER['REQUEST_URI'];
    $url = explode('?', $url);
    $url = $url[0];
?>
  
// сравнение страниц по относительному пути
<?php if ($url == '/page') : ?>    
	<a href="#" onclick="event.preventDefault()">Ссылка 1</a>
<?php else: ?> 
	<a href="/page">Ссылка 1</a>
<?php endif; ?>


Тут всё работает.
Но таких ссылок довольно много

Подскажите пожалуйста, есть ли какой-то более лаконичный способ для решения подобной задачи?
Чтобы не плодить бесконечные if else
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
i229194964
@i229194964
Веб разработчик
Можно создать массив содержащий список страниц
<?php
// Массив страниц и соответствующих ссылок в меню
$menuItems = array(
    "/page1" => "Ссылка 1",
    "/page2" => "Ссылка 2",
    "/page3" => "Ссылка 3",
    "/page4" => "Ссылка 4",
);

// Получаем относительный путь
$url = $_SERVER['REQUEST_URI'];
$url = explode('?', $url);
$url = $url[0];

// Выводим ссылки в меню
foreach ($menuItems as $pageUrl => $menuItem) {
    if ($pageUrl != $url) {
        echo '<a href="' . $pageUrl . '">' . $menuItem . '</a>';
    }
}
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы