Задать вопрос
@Span4ev

Как создать единый файл меню через include.php для каталогов разного уровня вложенности?

Всем доброго времени суток. Есть меню, которое постоянно обновляется/редактируется при появлении новых разделов. Проблема в том, что не могу сообразить, как организовать ссылки в едином файле меню для каталогов разного уровня вложенности. Если имеет значение - сайт и меню на bootstrap. Само меню (из-за постоянных изменений) подключается через php include на каждую страницу сайта. Додумался только до варианта из трёх файлов :
1. На главной странице сайта в index.php - прямые ссылки на каталоги, например : razdel/index.php
2. menu_1 для 1 уровня вложенности - ссылки с выходом на уровень выше : ../razdel/index.php
3. menu_2 для второго уровня вложенности : ../../razdel/index.php

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

На всякий случай

вот так хотелось бы :

  • blocks
    • menu.php


  • /razdel_1
    • index.php - ссылается на разделы (include ../blocks/menu.php)
    • /podrazdel_1
    • /podrazdel_2
      • index.php - ссылается на подразделы (include ../../blocks/menu.php)
      • /podrazdel_1
      • /podrazdel_2
        • index.php - ссылается на статьи (include ../../../blocks/menu.php)
        • statya_1
        • statya_2






  • /razdel_2
  • index.php (include blocks/menu.php)


Но работает только так :

  • blocks
    • menu.php
    • menu_1.php
    • menu_2.php
    • menu_3.php


  • /razdel_1
    • index.php (include ../blocks/menu_1.php)
    • /podrazdel_1
    • /podrazdel_2
      • index.php (include ../../blocks/menu_2.php)
      • /podrazdel_1
      • /podrazdel_2
        • index.php (include ../../../blocks/menu_3.php)
        • statya_1
        • statya_2






  • /razdel_2
  • index.php (include blocks/menu.php)
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@u4ria
А как на счет использования absolute path?
Для include в php: "include /path/to/dir/blocks/menu.php"
Для ссылок в меню: "/razdel/index.php"
Ответ написан
Комментировать
@mr_molodoy
Здравствуйте..
Ссылки Вы можете задавать полностью от корня сайта, например:
/category1/item1/

Обратите внимание на слеш в начале.
В таком случае переход будет выполнен на страницу https://domain.ru/category1/item1/ (https://domain.ru для примера).
Указывать ссылки относительно расположения страницы где находится пользователь (т.е. ./ или ../ и т.д.) не нужно - указывайте полный url.

После этого меню можно подключить к страницам на любом уровне.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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