За последние 24 часа нас посетил 17491 программист и 1686 роботов. Сейчас ищут 943 программиста ...

Убрать из меню ссылку текущей страницы

Тема в разделе "PHP для новичков", создана пользователем Andrey1985, 25 мар 2018.

  1. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Привет всем. Знания малы на уровне инклюдить +-
    Нужно в инклюженом меню убирать ссылку текущей страницы.
    Структура подключаемого меню такая.
    Кругом только решения для WP. У меня самописный сайт
    Код (Text):
    1. <ul class="clearfix">
    2.         <li itemprop="name"><a itemprop="url" href="../" title=Главная>Главная</a></li>
    3.         <li itemprop="name"><a itemprop="url" href="../galery.php" >Изделия</a></li>
    4.         <li itemprop="name"><a itemprop="url" href="../history.php">История</a></li>
    5.         <li itemprop="name"><a itemprop="url" href="../tehnology.php" >Технология</a></li>
    6.         <li itemprop="name"><a itemprop="url" href="../contacts.php" title=Контакты>Контакты</a></li>
    7.         <li itemprop="name"><a itemprop="url" href="../golovna-ua.php" class="la" title=UA>UA</a></li>
    8.     </ul>
     
    #1 Andrey1985, 25 мар 2018
    Последнее редактирование: 25 мар 2018
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    @Andrey1985, в плане юзабилити лучше не убрать, а подсветить.

    Принцип такой. Для каждого пункта в меню в цикле или без делаете следующее:
    PHP:
    1. <li itemprop="name"<?php if ($path=='/'): ?> class="active"<?php endif; ?>><a itemprop="url" href="/" title=Главная>Главная</a></li>
    Если все же хотите убирать, принцип тот же.
     
  3. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Тут я согласен, но с точки зрения seo получается циклические ссылки, страницы ссылаются на самих себя
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    P.S. Ведущий и трейлинг слеши часто убирают заранее, поэтому для главной можно наблюдать такое условие: $px=='' (сравнение с пустой строкой).
     
  5. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Переменную $path=='/' вставить на саму страницу вроде тоже надо ?
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Вы можете ссылку убрать, а пункт меню оставить. Хотя, уверяю вас, и со ссылкой вполне нормально.

    Это да. Или получить значение непосредственно из тек. адреса. Последнее особенно актуально для ед. точки входа.
     
  7. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Код (Text):
    1. <ul class="clearfix">
    2.         <li itemprop="name"<?php if ($path=='/'): ?> class="active"<?php endif; ?>>><a itemprop="url" href="../" title=Главная>Главная</a></li>
    это в самом меню, а это в саму страницу
    Код (Text):
    1. <?php  $path=='/' > ?>
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Ну да, только нормально присвоение запишите. Если сами задаете «тек. путь», то ведущий слеш точно не нужен, как впрочем и расширение файла: '', 'contact' и т.п.
     
  9. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    странно как только добавляю на саму страницу
    Код (Text):
    1. <?php $path ="../"; ?>
    страница не грузится
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Нафиг вам две точки? Это относительный адрес. Причем относительно «надкаталога»!!! Используйте абс. адреса и будет вам счастье.
     
  11. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Так делаю, ибо это меню подгружается в файлы которые в разных подпапках
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    P.S. И мы выше скорее разговаривали об условных идентификаторах, чем собственно о ссылках. Можете их хоть числами нумеровать!

    Для абс. адреса это пофиг.
     
  13. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Сделал соответственно вот так
    Код (Text):
    1. <li itemprop="name"<?php if ($path=='1'): ?> class="active"<?php endif; ?>>><a itemprop="url" href="../" title=Главная>Главная</a></li>
    и на страницу
    Код (Text):
    1. <?php $path ="1"; ?>
    Всеравно не грузится
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    PHP:
    1. $path=1;
    2. ...
    3. if ($path==1):
    --- Добавлено ---
    Что не грузится?
     
  15. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Есть готово. Надо было display:none добавить в сss.
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Там у меня в последовательности >>> лишняя скобка затесалась...
    --- Добавлено ---
    ...точнее у вас ;) У меня норм.
     
  17. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Да нет не лишняя
    Код (Text):
    1.  class="active"<?php endif; ?>>><a
    без неё не работает
    --- Добавлено ---
    А насчет абсолютных адресов это сложно. Поскольку файлы то на тестовом сервере, то на хостинге. Хотя подключать меню из корня сайта во вложенных подпапках жесть конечно, сам понимаю
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Причем тут тестовый сервер? Или у вас там другая вложенность в адресах? Тогда это реально жесть. Исправляйте (сделайте отдельный вирт. хост для тестирования сайта).
     
  19. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    А насчет абсолютных адресов это сложно. Поскольку файлы то на тестовом сервере, то на хостинге. Хотя подключать меню из корня сайта во вложеных подпапках
    абсолютный адресс это http://...
    на виртуальном хосте будет запрос на файлы из вне тогда
     
  20. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    P.S. И адресация к подключению файлов на РНР никакого отношения не имеет. В послед. случае используются внутрисистемные пути, хотя лучше тоже использовать абс. пути, складываемые из какой-то базы, например корня сайта, и отн. части.
     
  21. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    меню, лежит в корне сайта и основные страницы, дополнительные страницы лежат в подпапках, но меню берут из корня. Поэтому если не прописать в самом корневом меню выход на уровень повыше, тогда не будет работать меню в подпапках
     
  22. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Это тоже абсолютный: /path (только без схемы, имени хоста и порта).
     
  23. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Ну а как тогда жестко привязать все ссылки относительно корня из любых подпапок, чтоб меню работало лежа в корне
     
  24. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Я вам сказал, что вы путаете адресацию и именование файлов в файловой системе.
     
  25. Andrey1985

    Andrey1985 Активный пользователь

    С нами с:
    25 апр 2016
    Сообщения:
    52
    Симпатии:
    0
    Это я понял, спасибо. Просто ломаю голову как указать адресацию из подпапок в меню что в корне