Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Навигация по сайту
Форумы портала PHP.SU » » Вопросы новичков » Навигация по сайту

Страниц (3): [1] 2 3 »
 

1. n1k86 - 25 Января, 2012 - 12:01:25 - перейти к сообщению
Привет всем, ребят. Столкнулся с такой проблемой. На каждой странице не удобно постоянно писать ссылки для возвращения на предыдущие страницы. Поэтому хотелось бы автоматизировать данный момент. В гугле подобной информации не нашёл, либо плохо искал...на форуме тут тоже...прошу о помощи.
Нужно типа:
Я на главной. Перешёл в чат, и появилась ссылка "На главную". Дальше я перешёл в комнату Спорт, и у меня уже 2 ссылки "На главную > Комнаты чата". Дальше я перешёл по ссылке добавления сообщений, и у меня уже 3 ссылки: "На главную > Комнаты чата > Спорт".

Ну думаю понятно...через реферер не вариант делать, т.к. не все браузеры его отправляют...что довольно плохо...был ещё вариант писать на каждом сайте переменную, заносить в БД, либо в куки, и выводить...но это не вариант тоже, т.к. объём был бы большой...

Подскажите оптимальную идею...пожалуйста!
2. Самогонщик - 25 Января, 2012 - 12:12:00 - перейти к сообщению
Гугли "хлебные крошки".
3. n1k86 - 25 Января, 2012 - 12:12:45 - перейти к сообщению
Спасибо))) Сейчас почитаем!))
4. Zuldek - 25 Января, 2012 - 12:12:56 - перейти к сообщению
Искали очень плохо.
реализуется через построение древовидной архитектуры сайта, когда в бд хранится родительский раздел для каждой страницы. Если хотите сделать не обозначение иерархии а отслеживать с какой страницы на какую перешли независимо от их иерархии то передавайте id страницы при каждом переходе, записывая их в сессию или через GET. Имея id выстраивайте ссылку на эту страницу в ваших хлебных крошках.
5. n1k86 - 25 Января, 2012 - 12:22:36 - перейти к сообщению
Почитал, почитал. Хлебные крошки эти самые, идут для wp. а в wp чего только не напихано в код. я пишу без ооп и смарти. поэтому мне трудно разобрать то что там. мне нужно решение для обычной процедурке...
6. Zuldek - 25 Января, 2012 - 12:26:14 - перейти к сообщению
n1k86 пишет:
Почитал, почитал. Хлебные крошки эти самые, идут для wp. а в wp чего только не напихано в код. я пишу без ооп и смарти. поэтому мне трудно разобрать то что там. мне нужно решение для обычной процедурке...

хлебные крошки это общее сленговое, если хотите, наименование для навигационных строчек вида "главная>страница1>страница2>страница3".
Как это реализуется я написал, ооп и шаблонизатор тут непричем.
7. n1k86 - 25 Января, 2012 - 12:27:10 - перейти к сообщению
Передача гет-запроса это извращение. Ладно, пойду ещё пороюсь. Может чего ещё узнаю.
8. armancho7777777 - 25 Января, 2012 - 12:33:43 - перейти к сообщению
Думаю, разобрав $_SERVER['REQUEST_URI'] можно добиться того же результата.
Вот грубый пример без проверок:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!empty($_SERVER['REQUEST_URI'])){
  3.  
  4. $arrLink = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
  5.  
  6. echo '<a href="/'.$arrLink[0].'">Главная</a>
  7.       <a href="/'.$arrLink[0].'/'.$arrLink[1].'">Раздел1</a>
  8.       <a href="/'.$arrLink[0].'/'.$arrLink[1].'/'.$arrLink[2].'">Раздел1.1</a>';
  9.  
  10. }
  11.  
9. n1k86 - 25 Января, 2012 - 12:49:35 - перейти к сообщению
$_SERVER['REQUEST_URI'] можно, но опять же придёться делать большую таблицу значений в базе для каждого файла. А это разве норм? Нет. Нужно что-то простое...но вот как реализовать не могу понять...в интернете уже кучу информации просмотрел...всё основывается на создании таблицы, но это очень жестко, т.к. получается каждый раз нужно вносить значения в бд о новом файле. Разве это норм? Я считаю, что нет.
10. Zuldek - 25 Января, 2012 - 12:52:30 - перейти к сообщению
n1k86 пишет:
$_SERVER['REQUEST_URI'] можно, но опять же придёться делать большую таблицу значений в базе для каждого файла. А это разве норм? Нет. Нужно что-то простое...но вот как реализовать не могу понять...в интернете уже кучу информации просмотрел...всё основывается на создании таблицы, но это очень жестко, т.к. получается каждый раз нужно вносить значения в бд о новом файле. Разве это норм? Я считаю, что нет.


Вам так или иначе придется вносить эти значения. Отличии в вариантах реализации лишь в том где вы их будете хранить - в базе данных, в сессии, либо передавать со страницы на страницу get/post/request.

в 90% проектов это реализуется с хранением связей разделов в бд. сложного в этом ничего нет.
11. armancho7777777 - 25 Января, 2012 - 12:57:54 - перейти к сообщению
n1k86 пишет:
но опять же придёться делать большую таблицу значений в базе для каждого файла. А это разве норм?

Кто Вам такое сказал???))
Тоже не любим лёгких путей?))
Не надо ничего никуда записывать и хранить блин.
Адресная строка всега под рукой.
После перехода на страницу вытаскиваете нужные Вам значения из строки, и всего лишь.
12. n1k86 - 25 Января, 2012 - 12:58:27 - перейти к сообщению
Сейчас распишу что я надумал. А вы поправьте, пожалуйста!
13. armancho7777777 - 25 Января, 2012 - 13:00:23 - перейти к сообщению
Если адресная строка такого вида:
http://forum.php.su/раздел1/разд...л1.2/раздел1.2.1
Вы не сможете реализовать то, что Вам надо имнно тем спосабом, что я Вам предложил???)))
Готовые хлебные крошки уже в ней.
Видно же какой раздел после какого идет, и с какого перешёл посетитель.
14. n1k86 - 25 Января, 2012 - 13:03:15 - перейти к сообщению
Допустим мы берём базу данных MySQL. Я создаю табличку...с id, url, title, где:
id - просто инкремент;
value - значение из адресной строки;
title - текст, который выводим;
url - ссылка;

Теперь мне нужно занести все родительские папочки и на что их заменять. Как правило, можно же брать прям из заголовка текст, который мы будем выводить, так? Допустим, заносим в таблицу значение, где:
id = 1;
value = chat;
title = Чат;
url = /chat/;

Теперь, ну будем работать через $_SERVER['REQUEST_URI'], например...
Я получаю из $_SERVER['REQUEST_URI'] например текст такого вида:
/chat/index.php

Обрабатываю этот текст, чтобы получить именно родительский текст chat.

После получания, ищу в таблице такой value, выбираю его значение title и url. Далее вывожу его значение как ссылку, вида:
<a href='$url'>$title</a>

Всё правильно? Может что поправите?
15. Zuldek - 25 Января, 2012 - 13:08:18 - перейти к сообщению
armancho7777777 пишет:
Если адресная строка такого вида:
http://forum.php.su/раздел1/разд...л1.2/раздел1.2.1
Вы не сможете реализовать то, что Вам надо имнно тем спосабом, что я Вам предложил???)))
Готовые хлебные крошки уже в ней.
Видно же какой раздел после какого идет, и с какого перешёл посетитель.

Автор указал, что ему нужно выводить в навигационной строке не иерархию ссылок на страниц, но историю переходов. Главная>чат>написать может быть не равносильно главная/чат/написать. Историю переходов надо где-то хранить. об этом и речь.

 

Powered by ExBB FM 1.0 RC1