Формирование пройденного пути по сайту

  • Автор темы Nicolas Prof
  • Дата начала

Nicolas Prof

Guest
Формирование пройденного пути по сайту

Возникла проблема в формировании пути, как вообще такое делается:

К примеру даже на этом форуме:
PHP Club Forums > Всё о программировании на РНР > Какой-то топик

Если это формируется в ручную, то грош цена этому.
Я вот собрался как-то это автоматически сделать и запоролся.

Изначально думал, что следаю вот так:
есть переменная $path изначально она имеет значение:
"<img ...><a href="index.php">Главная</a>"
И тогда по мере того, как пользователь забредает куда-то, иногда в коде встречаются такие вещи:
PHP:
$path+="<img src="arrow.jpg"><img ...><a href="download.php">Закачки</a>";
или

PHP:
$path+="<img src="arrow.jpg"><img ...><a href="gallery.php">Галерея</a>";
Но тогда получается что строка будит находиться внизу, что не есть good. То есть выполняется весь код и тогда выводиться
переменная $path

Тогда я решил написать функцию разбора URL, но там оказалось столько гемороя. Так как часто информация передается методом POST. Короче вот такая у меня проблема. Помогите решить.
 

Фанат

oncle terrible
Команда форума
пользователь никогда не должен видеть страницу, на которую данные переданы методом пост.
пора бы уже из коротких штанишек вырастать
 

Nicolas Prof

Guest
Alien
Большое спасибо за линк. Действительно интересная статья. Все же жалко что там не описуется как это реализовать, и тем более мой случай ;)

Я понял, название топика не путевое. Но все же задача осталась таже...
 

Лексеич

Московский калмык
Автор оригинала: Фанат
пользователь никогда не должен видеть страницу, на которую данные переданы методом пост.
Поясните, если не затруднит... или ссылочкой поделитесь. :) Буду признателен.
 

Фанат

oncle terrible
Команда форума
Лексеич а та сделай такую страичку на своем сайте, а потом походи по нему взад-вперед.
и сам все увидишь и поймешь.
 

Лексеич

Московский калмык
Фанат насколько я понял ты имел ввиду повторную передачу данных... если да, то мой вопрос был лишним. :)
 

Фанат

oncle terrible
Команда форума
я не имел в виду повторную отправку данных.
я имел в виду то, что пользователь обычно ожидает, ходя по сайту, видеть САЙТ, а не странные сообщения браузера об устаревших страницах.
 

Nicolas Prof

Guest
Люди подскажите хоть, по какому принципу реализуется эта фичя. А то даже не знаю что искать, и что разбирать. Просто принцип работы...
 

SelenIT

IT-лунатик :)
Реализуется по-разному - смотря как устроено дерево структуры сайта. Наверное, проще всего построить эту строку, если структура сайта хранится в виде Nested Sets
 

Nicolas Prof

Guest
SelenIT
К сожелению у меня структура сайта не Nested Sets...
У меня несколько генераторов которые в зависимости от запроса GET формируют страницу, в среднем вот такая у них конструкция:
PHP:
<?
if (isset($_GET['razdel'])){
	switch ($_GET['razdel']){
		case "intro": {
			print "<span class=\"winTitle\">Вступление</span>";
			break;
		}
		case "workers": {
			print "<span class=\"winTitle\">Сотрудники</span>";
			break;
		}
		case "gifts": {
			print "<span class=\"winTitle\">Подарки</span>";
			break;
		}
		case "distribut": {
			print "<span class=\"winTitle\">Дистрибюторство</span>";
			break;
		}
		case "propgifts": {
			print "<span class=\"winTitle\">Подарки</span>";
			break;
		}
		case "adress": {
			print "<span class=\"winTitle\">Адрес</span>";
			break;
		}
		case "rekviziti": {
			print "<span class=\"winTitle\">Реквизиты</span>";
			break;
		}
		default: {
			print "<span class=\"winTitle\">Главная</span>";
			break;
		}
	}
}
?>
 

SelenIT

IT-лунатик :)
Nicolas Prof, т.е. структура у тебя не разветвленная и все разделы лежат на одном уровне? Если так, то эта фича тебе пока просто не нужна.
 

Nicolas Prof

Guest
Что вы скажете насчет, такой идеи.
Если с помощью массива $_REQUEST разбирать полученные переменные, и соответственно формировать путь. Во избежание не стыковок, то есть - в основном все строится через значение переменной $id, а в каком-то скрипте она может быть использована не для этих целей, тогда функция просто загнется. Я к примеру добавлю переменную которая будет нести инфу о том "что и как" - $position, а функция заметив эту переменную сразу построит путь. Только вот будет сложно определить как пользователь пришел к этой странице. Придется наверное сделать массив
PHP:
$position[0]=index&$position[1]=downloads&$position[2]=soft
В общем идея вот такая. Много ли граблей имеет ли этот способ.

P.S. Код выше просто пример ))

-~{}~ 09.03.05 10:05:

SelenIT
Нужна так как это не просто сайт а комплекс обучения, и там должна быть хорошая навигация. А как по мне лучше навигации такого типа нет )

структура у тебя не разветвленная и все разделы лежат на одном уровне
Ну как не полностью все же некоторые лежат в папочках, но это не столь существенно ;)
 

SelenIT

IT-лунатик :)
Ну как переменные разбирать и что за что отвечает - это никто кроме тебя не решит (хотя то, что одна переменная в разных контекстах имеет совершенно разное значение - само по себе не есть гуд). Но структура сайта ИМХО должна быть определенной и где-то в каком-то виде храниться. Чтобы, определив текущий раздел, всегда можно было определить, в какой раздел он вложен - и так до самого корня сайта.
 

crocodile2u

http://vbolshov.org.ru
Может быть, Nicolas Prof хочет чего-то такого:

юзер зашел на "Сотрудники" - в строке навигации отобразилось "Сотрудники"; затем зашел на "Дистрибюторство" - отобразилось "Сотрудники" > "Дистрибюторство" (Кстати, что это за слово такое - "Дистрибюторство" ? )

Или я ошибаюсь?
 

Nicolas Prof

Guest
crocodile2u

юзер зашел на "Сотрудники" - в строке навигации отобразилось "Сотрудники"; затем зашел на "Дистрибюторство" - отобразилось "Сотрудники" > "Дистрибюторство"
Совершенно верно, так мне и нужно..

P.S. Дистрибюторство во-первых здесь опечатка - Дистрибьюторство, от слова Дистрибьютор. Это калька с англ. слова. Можно грубо сказать "Распространитель" или просто курьер. ))
 

SelenIT

IT-лунатик :)
Т.е. в зависимости от прыжков юзера из раздела в раздел будет каждый раз выстраиваться новая и непредсказуемая "как бы структура"? Лично меня бы это запутывало и раздражало.

По моему мнению, строка навигации такого вида однозначно указывает на то, что "Дистрибьюторство" - позраздел раздела "Сотрудники". И если на самом деле это не так, то это ИМХО никакое не удобство навигации, а наоборот, вольное или невольное сбивание юзера с толку.
 

Romantik

TeaM PHPClub
скорей всего это удобство необходимо для возврата не предыдущий раздел.
Nicolas Prof
А ты попробуй воспользоваться поиском- я думаю обсуждалось здесь
и посмотри как устроен этот алгоритм в Vbulletin
 

crocodile2u

http://vbolshov.org.ru
Полностью согласен с SelenIT'ом: Nicolas Prof, брось эту затею. Вместо удобства ты получишь черт знает что.
 

Nicolas Prof

Guest
SelenIT
Т.е. в зависимости от прыжков юзера из раздела в раздел будет каждый раз выстраиваться новая и непредсказуемая "как бы структура"?
Ни в коем разе. Все должно быть логично. Никакая ни НОВАЯ. То есть, если человек зашел на Дистрибьюторство, то оно обязательно должно быть под Услугами, Услуги обязательно под Компания. К примеру вот так.

Romantik
посмотри как устроен этот алгоритм в Vbulletin
Легко говорить посмотри. Очень сложно разбирать чужой код, тем более движки для форумов, где сполшные includе'и и все черт знает как работает.

Я так понял что никто еще не делал такой фичи (
Жаль что немогу файл прикрепить со скриншотом, как это уже реализовано у меня, но только на уровне статики, то есть я везде прописал какая строка должна выводиться. Это есть очень плохо, нужно что это хоть как-то автоматичностью пахло...

-~{}~ 09.03.05 11:16:

в коем разе. Все должно быть логично. Никакая ни НОВАЯ. То есть, если человек зашел на Дистрибьюторство, то оно обязательно должно быть под Услугами, Услуги обязательно под Компания. К примеру вот так.
Просто я и это сделать не могу )))
 
Сверху