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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Меню и навигация на PHP
Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007
Помог: 0 раз(а)
Подскажите, как лучше реализовать навигацию по сайту: как хранить и выводить данные, формировать ссылки, как описать меню (пока без БД)? Есть 2-х уровневое меню, элементы которого я описал в файле. Предполагается, что потом надо будет эти пункты меню редактировать (добавлять, удалять и т.д.). Содержимое пункта меню должно инклюдится из файла. Файлы я назвал также, как описано в меню (pp1.inc, sam.inc и т.д.), эти же значения должны задавать ссылки: для первого уровня: site.com/pp1.html, для второго: site.com/pp1/sam.html. А как правильно сделать такое (пока интересует не код, а идеи)?
Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007
Помог: 0 раз(а)
А где связь "меню-подменю"? надо ввести еще один столбик? И как формировать ссылки?
SergeantPEPPER
Отправлено: 02 Июля, 2008 - 12:47:08
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
Идея, которую использовал valenok подразумевает следующее (кстати, по-моему будет попроще сделать это в бд, а не в файлах, хотя возможно это дело привычки...):
таблица в бд состоит из трех столбцов.
1) id - ид-шник, однозначно определяющий строку в этой таблице.
2) cat - ид-шник родительской категории, если значение данного поля 0, это означает, что данная категория высшего уровня, у которой нет родителей (в Вашем случае для меню 1-ого уровня)
3) catname - название категории.
Таким образом формируется дерево категорий, в котором количествол уровней может быть произвольным.
ПхП-ломастер
Отправлено: 02 Июля, 2008 - 14:59:34
Новичок
Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008
Помог: 0 раз(а)
[+]
И еще туда, после catname, прописываем url
Qwe1
Отправлено: 02 Июля, 2008 - 16:08:26
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007
Помог: 0 раз(а)
Все же, еще надо ввести столбик с id2, который бы определял порядок пунктов в каждом подменю. Конечно, это лучше сделать в БД, но пока надо на файлах. И самое главное: ссылка! - у меня в меню была пара значений, к примеру, "Еще"=>"other" - их ввел администратор сайта, он же должен создать файл "other.inc" и куда-то его положить. Создавать структуру папок, аналогичную меню? Может быть, но зачем тогда файл описания меню (как бы БД)? Получается, надо ввести еще одно поле в файл-описания, которое определяло бы ссылку. Тогда вопрос: как этот файл считывать в массив и потом выводить структуру меню с ссылками?
valenok
Отправлено: 02 Июля, 2008 - 16:22:21
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
а url зачем ?
Обойдётся index.php?id=
----- Truly yours, Sasha.
ПхП-ломастер
Отправлено: 02 Июля, 2008 - 16:43:29
Новичок
Покинул форум
Сообщений всего: 51
Дата рег-ции: Июнь 2008
Помог: 0 раз(а)
[+]
) ну лишние запросы... не есть гуд... (Добавление)
Qwe1
зачем усложняете такую простую задачу?
SergeantPEPPER
Отправлено: 02 Июля, 2008 - 18:03:12
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
ПхП-ломастер , отдельный столбец под url действительно абсолютно бесполезен в случае, если все пункты меню ведут на одну и ту же пхп-страницу.
Qwe1, а для одного или двух пунктов типа Other можно сделать исключение, обработав его через условие прямо в скрипте.
Для занесения-вынесения текста в массив и наоборот посмотрите функции explode () и implode ()
Qwe1
Отправлено: 02 Июля, 2008 - 23:41:36
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007
Помог: 0 раз(а)
Я хочу, чтобы URL выглядел так: site.com/pp1/other.htm, то есть ЧПУ (используя mod rewrite). Поэтому и ссылки лучше сделать понятней, а не site.com/1/14 (хотя это и проще). И файлы, котрые будут инклюдится в зависимости от выбранного пункта меню тоже называться будут понятней. Кстати, а как файлы с инфой называть/хранить лучше в моем случае?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.