Forum Webscript.Ru

Разное => Флейм => Тема начата: cosss от 24 Февраля 2004, 16:35:00

Название: хлебные крошки
Отправлено: cosss от 24 Февраля 2004, 16:35:00
Знаете есть такая система навигации по сайту "хлебные крошки" ее иногда (Якоб Нильсен) называют. Она выглядит примерно так "главная-->раздел-->статья". Подскажите пожалуйста как это с помощью пхп осуществить?
Название: хлебные крошки
Отправлено: CGVictor от 24 Февраля 2004, 18:57:17
А конкретнее можешь?
Название: хлебные крошки
Отправлено: Макс от 24 Февраля 2004, 19:43:59
cosss
все зависит от структуры сайта.
Название: хлебные крошки
Отправлено: metton от 24 Февраля 2004, 22:10:32
cosss
Да уж, без знания понятия, только по твоим объяснениям сложно понять (точнее, слишком уж просто это кажется по твоим объяснениям).
Название: хлебные крошки
Отправлено: Neter от 25 Февраля 2004, 15:27:25
cosss Делается это сверху вниз, циклом. Понятно?
Название: хлебные крошки
Отправлено: metton от 25 Февраля 2004, 15:45:25
Neter
Мне, например, нет... :rolleyes:
Название: хлебные крошки
Отправлено: Мракус от 25 Февраля 2004, 15:50:09
строишь дерево, а-ля карта сайта...
Название: хлебные крошки
Отправлено: Neter от 25 Февраля 2004, 17:18:41
metton Какой вопрос - такой ответ. По имеющимся данным это максимум что я могу посоветовать ;)
Название: хлебные крошки
Отправлено: CGVictor от 25 Февраля 2004, 18:23:25
Скиньте линк, для особо непонятливых! (CGVictor
metton)

И вообще: кто мешает использовать NestedSets/NestedTrees плюс база?
Название: хлебные крошки
Отправлено: Yukko от 25 Февраля 2004, 19:23:32
Вы чё, все издеваетесь??? или на умняк пробило?

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

При выводе нужно:
- вывести все описания вышестоящих элементов, т.е. родителей
- в конце вывести описание самого элемента

Алгоритм вывода описания потомков родителей зависит от метода хранения информации о структуре сайта. Тут будет уместным упомянуть пресловутые Nested Sets, хотя ничто не мешает хранить эту информацию по-другому.

Ссылочка для особо непонятливых, что ему нужно:
http://www.macromedia.com/devnet/mx/dreamweaver/php.html
строка:
/home/Developer Center/Dreamweaver Developer Center /

cosss
на РНР это осуществляется точно также, как и на других языках, сначала надо знать алгоритм.
Название: хлебные крошки
Отправлено: cosss от 25 Февраля 2004, 21:10:11
Ну структура сайта в общем обычная. Индекс на верху, дериктории соответствуют разделам (по англ. есессно). Ну и например...

c:\\publications\\stuff\\025.html

считайте, что "c:" это index.html

Дальше... Есть разделы сайта, и они как-то называются и вот мне надо доставать полный путь текущей страницы, но не с названиями дерикторий, а с названиями разделов.

PS
про NestedSets можно что-нить почитать?
Название: хлебные крошки
Отправлено: Neter от 25 Февраля 2004, 21:39:02
Yukko Надеюсь теперь ты понял кому ты это написал :)

cosss Родной, сделай проще - ручками набей :)
Название: хлебные крошки
Отправлено: cosss от 25 Февраля 2004, 21:47:48
Цитировать
Yukko Надеюсь теперь ты понял кому ты это написал

Не, зря ты так...
Сайт-то большой ручками неудобно, проще вас тут немного помучить и написать таки скрипт.
Название: хлебные крошки
Отправлено: Макс от 25 Февраля 2004, 22:10:18
cosss
у тебя хостинг под Windows или это ты просто локально сайт тестируешь ?
В принципе ничего сложного нет. Делаешь explode("\\", $path)  - получишь массив. Проходишься по каждому элементу массива и строищь меню.
Название: хлебные крошки
Отправлено: cosss от 25 Февраля 2004, 22:16:35
Макс
Мда, зря я путь как в винде написал для примера... Плохая метафора.
explode разбивает слова? а как мне $path сделать? Вобщем не понял я...
Название: хлебные крошки
Отправлено: Макс от 25 Февраля 2004, 22:31:44
что делает explode - читай в мануале ([p]explode[/p])
---
Наверное самое простое :
$path = dirname($_SERVER[\'PHP_SELF\']); - получаешь текущую папку, в которой находится юзер. Она будет иметь вид:
/dir1/dir2/dir3
строкой:
$dirs = explode("/", $path);
ты получишь массив папок: array("dir1","dir2","dir3");

Путь, который тебе надо будет построить будет состоять из ссылок:
1. /index.php - корень сайта
2. /dir1/index.php - первая папка
3. /dir1/dir2/index.php - вторая папка
4. /dir1/dir2/dir3/index.php - третья папка
5. $_SERVER[\'PHP_SELF\'] - текущий файл
Первый и последний пункты добавляешь ручками, а те что между ними в цикле:
foreach ($dirs as $dir) {
   ... // формируешь путь
}
Название: хлебные крошки
Отправлено: Neter от 25 Февраля 2004, 22:51:10
Вобще, на заре своего занятия кодингом на ПХП когда я ещё не знал что такое MySQL помню тоже такую шнягу мне надо было сделать, создавал свой первый и последний супер-мега-портал ;) Так вот, я в каждой директории ложил файл index.txt с названием рубрики и её описанием и просто в цикле спускался к корню сайта паралельно читал Индексы, выводя названия рубрик.
Название: хлебные крошки
Отправлено: cosss от 25 Февраля 2004, 22:58:00
Макс
Ну терь ясно немного, а NestedSets?
Название: хлебные крошки
Отправлено: Макс от 25 Февраля 2004, 23:01:34
http://detail.phpclub.net/article/db_tree
Название: хлебные крошки
Отправлено: cosss от 25 Февраля 2004, 23:22:54
Бррр, рано мне еще наверно
Название: хлебные крошки
Отправлено: Yukko от 25 Февраля 2004, 23:37:06
Цитировать
Neter:
Надеюсь теперь ты понял кому ты это написал

какая разница, или форум - скорая помощь отдельному индивиду??? Нет родной, я сам по тем топикам, в которых отвечал, поиск иногда делаю, кто-то другой прийдет, он не будет говорить, что рано ему еще, он прочитает и сделает, а вот из первых 10 сообщений высказать что-то внятное только CGVictor смог...

Цитировать
cosss:
Бррр, рано мне еще наверно

Поражают меня люди, которые глянув на проблему издалека расписываются в собственной тупости... Да нету ничего сложного в этих Nested Sets, один раз сядь и на всю жизнь разберись... Ты что считать не умеешь? Один, два, три.... так вот в Nested Sets, чтобы их понять, нужно только считать уметь, а чтобы доехать до этого, нужно только почитать предложеную статью. Уже даже на русском языке материалы писать начали, уже разжевывают...  
Цитировать
cosss:
проще вас тут немного помучить и написать таки скрипт.

никто тебе на блюдечке решение не даст... и скрипт писать ты сам будешь, поэтому у тебя сейчас есть альтернатива, либо один раз разобраться и задать вопросы по существу, либо набивать руками, все!!! хотя нет, еще можно пойти с протянутой рукой в форум Поиск и изготовление скриптов.
Название: хлебные крошки
Отправлено: Neter от 26 Февраля 2004, 00:29:50
Yukko Просто я изначально понял что он про про базу даже и не грезит, а ты про нестед сетс, нечего вокруг них ажиотаж устраивать я ещё не начал таких пректов делать в которых мне бы потребовалась работа с двоичными деревьями, а ты уже бедному парню их агетируешь, пусть он хоть мозги включит для начала.. Ты сам то понимаешь когда надо их юзать (я не про мозги :))?

cosss Почитай моё предыдущее сообщение, если уж делаешь извратно то извратись красиво :)
Название: хлебные крошки
Отправлено: metton от 26 Февраля 2004, 00:41:44
Neter
Человек, объясните мне, глупому, а при чём тут двоичные деревья?!
Название: хлебные крошки
Отправлено: Yukko от 26 Февраля 2004, 11:54:45
Neter
читай внимательно:

Цитировать
Yukko:
Алгоритм вывода описания потомков родителей зависит от метода хранения информации о структуре сайта. Тут будет уместным упомянуть пресловутые Nested Sets, хотя ничто не мешает хранить эту информацию по-другому.

Я что, кому-то именно нестед сетс парить начал???

Я ему сказал, что в нестед сетс разбираться нечего, когда он ныть начал, что это трудно.
Название: хлебные крошки
Отправлено: Neter от 26 Февраля 2004, 13:01:59
metton Думаю при том что на этой структуре построены Nested Sets.
Название: хлебные крошки
Отправлено: metton от 26 Февраля 2004, 23:17:29
2Neter
Цитировать
Думаю при том что на этой структуре построены Nested Sets

Зря ты так думаешь. "Двоичные деревья" словосочетание бесспорно красивое. Но тут оно не к месту.
Название: хлебные крошки
Отправлено: Yukko от 27 Февраля 2004, 00:07:49
Neter
не выставляйся, еще глупостей каких-нибудь наговоришь...
Макс дал ссылку, чем флеймить по чем зря, лучше бы пошел, да почитал...
Название: хлебные крошки
Отправлено: Neter от 27 Февраля 2004, 11:06:10
Прочитал про нестед сетс.
Эх, когда же я перестану так безбожно тупить.. извините.
Название: хлебные крошки
Отправлено: CGVictor от 28 Февраля 2004, 12:28:39
Neter
Не каждая глупость - тупость. Некоторые оказываются гениальными :)

2All
Цитировать
Yukko:
Да нету ничего сложного в этих Nested Sets, один раз сядь и на всю жизнь разберись...

Идея хорошая. Хотя я в них так и не разобрался. Просто не понимаю, какая выгода с того, что можно так организовать данные...
Мне намного больше нравятся NestedTrees, хотя бы потому, что меньше писать. И памяти/места жрут немного меньше. А процессорного времени - больше. Но мы ведь платим за место, не так ли?
Цитировать
cosss:
рано мне еще наверно

Никому не рано, никогда не поздно.
[OFF]Что бы там Ромик не говорил.[/OFF]

И все-таки, обьясните, в чем заключается концепция "хлебных крошек"? Я в этом обсуждении заметил всё (NS,NT,2T,ЧПУ т.д.), кроме самого вопроса.
Название: хлебные крошки
Отправлено: Yukko от 28 Февраля 2004, 12:56:12
CGVictor
где ты тут ЧПУ увидел?

Цитировать
CGVictor:
в чем заключается концепция "хлебных крошек"?

Ну называет он их так! он объяснил, что ему надо. Все!!! отстань от человека.

Цитировать
CGVictor:
Просто не понимаю, какая выгода с того, что можно так организовать данные...

Еще раз повторяю, нет ни какой разницы в контексте данного вопроса, какой из существующих и зарекомендовавших себя способов используется для хранения данных!
Тому, кто задал этот вопрос, мы помочь не можем
1. так как не знаем, как у него организовано хранение данных
2. так как скорее всего оно никак не организовано.
Все остальные, кто жаждет ответа на подобный вопрос, должны выполнить несложную последовательность действий, которую я описал  тут (http://forums.webscript.ru/showthread.php?s=&postid=102155#post102155).
Название: хлебные крошки
Отправлено: CGVictor от 28 Февраля 2004, 15:27:38
[OFF]
Yukko
Цитировать

$path = dirname($_SERVER[\'PHP_SELF\']); - получаешь текущую папку, в которой находится юзер. Она будет иметь вид: /dir1/dir2/dir3
строкой: $dirs = explode("/", $path);
ты получишь массив папок: array("dir1","dir2","dir3");
Путь, который тебе надо будет построить будет состоять из ссылок:

Не совсем то, но близко.
[/OFF]
Граждане, выражайтесь яснее!
Название: хлебные крошки
Отправлено: Yukko от 28 Февраля 2004, 16:19:56
CGVictor
Сходи по ссылке, которую я дал, на макромедию посмотри, что ему надо сформировать, а также почитай то, что я написал ниже, и ты поймешь, что
1. список папок, который выведется подобным образом не является URL\'ом который надо будет ввести для получения этой страницы!
2. ЧПУ тут ни каким боком.
3. мало того, список папок, который ты выведешь не будет явяляться "системой навигации", как ее назвал cosss

Чтобы окончательно дать понять, что ЧПУ тут не причем, попытаюсь намекнуть:
У тебя есть путь bla1/bla2/bla3/index.php
В bla1 у него лежит весь материал по продуктам той же макромедиа
В bla2 у него лежит материал по Flash MX
В bla3 у него лежит публикация с коментариями про плеер Flash MX

index.php получает на вход кучу параметров, которые говорят, отображать или не отображать коментарии, что подсветить на странице и мало ли что еще. Выглядит это вот так:
server/bla1/bla2/bla3/index.php?comments=0&hightlight=flash&hightlightcolor=red&user=lamo
если это ЧПУ, то я доярка в колхозе.

А вывести этот скрипт должен:
:: Macromedia :: FlashMX :: Flash PlayerMX ::
(твои пресловутые хлебные крошки — ::)
или
/ Macromedia / FlashMX / Flash PlayerMX /
или
(http://forums.webscript.ru/images/vb_bullet.gif) Forum Webscript.Ru > Программирование > PHP > хлебные крошки
Название: хлебные крошки
Отправлено: cosss от 28 Февраля 2004, 17:11:35
Breadcrumbs - Хлебные крошки. Их так америкосы называют. По "принципу" мальчика-спальчика, который кидал хлебные крошки, чтобы запомнить путь домой.
http://www.macromedia.com/devnet/mx/dreamweaver/articles/breadcrumbs.html
Название: хлебные крошки
Отправлено: CGVictor от 28 Февраля 2004, 17:32:43
Yukko
Ок, понял. Я это спокойно делал уже как год, а люди обозвали это "крошками" и обсуждают :D
Если серьезно - "система навигации" больше подходит, как мне кажется.
Спасибо.
Название: хлебные крошки
Отправлено: Yukko от 28 Февраля 2004, 23:35:03
Читал статью предложеную cosss
Не понимаю, зачем советовать то, что у самих не используется :(
Код на РНР надо серьезно править перед использованием. И вообще это бред, делать иерархию папок с такими названиями, которые хочешь, чтобы были видны на странице. Хотя ресурс и серьезный, но сложилось такое ощущение, что статью выкинули в онлайн даже без проверки и вычитки.
Название: хлебные крошки
Отправлено: cosss от 29 Февраля 2004, 00:24:04
Yukko
Ну дрим только для верстки хорош, на остальное можно вообще не обращать внимания...
Название: хлебные крошки
Отправлено: AliMamed от 29 Февраля 2004, 11:42:58
все смешалось в доме облонских. поехали во флейм