Как обрабатывать навигацию, которая зависит от параметров URL - PullRequest
0 голосов
/ 11 марта 2011

Это может быть немного сложно объяснить, но я все равно попробую.

В моем PHP-приложении у меня есть основная навигация, которая ведет к различным "трекерам", где я добавляю параметр "? trk = 1 "до конца URL, например.

У меня есть вторичная навигация, которая должна быть разной для разных« трекеров »в системе.На главной странице трекера я могу легко получить идентификатор параметра «trk» и создать вторичную навигацию на основе этого.Но у моего приложения есть много подстраниц ниже уровня «Трекер».Например, у каждого трекера есть программы, где у программ есть проекты и т. Д.

Одним из решений, которое я рассматривал, было пропускание параметра "trk" через все мои страницы.Таким образом, мой файл tracker.header.php (который запускается на всех уровнях ниже уровня Tracker в моем приложении) может правильно генерировать настраиваемую вторичную навигацию для каждого Tracker.

Я был уверен, что могу сделатькласс для моего вторичного меню.Я бы создал этот объект меню в tracker.header.php, и тогда у меня был бы доступ к этой переменной объекта на всех более низких уровнях, которые затем было бы очень легко настроить для каждого трекера.Стандартно ли хранить весь HTML, сгенерированный в PHP, в переменных, а затем просто выводить переменные в самых последних строках приложения?

Ответы [ 2 ]

0 голосов
/ 11 марта 2011

Я думаю, что в вашем посте есть два вопроса, но я сделаю все возможное, чтобы ответить на них:

Если вам нужно передать категорию, которая скрыта в других категориях, есть несколько способов пойтиоб этом некоторым проще, чем другим.Одним из таких подходов было бы добавление цепочки категорий, просматриваемых в самом URL.Например, ?trk=123&program=456&proj=789 может быть уменьшено до ?trk=123|456|789, где скрипт разбивает trk каждый символ канала.Если конец раздела отсутствует, вы можете предположить, что он еще не установлен.

Кроме того, обычной практикой является вывод страницы во время ее генерации, обычно с помощью echo или экранированием тегов PHP.для статического HTML.Если вы собираетесь отправлять большую страницу (например, страницу с большим количеством табличных данных посередине), то ожидание, пока страница полностью не сгенерируется, может заставить некоторые браузеры предположить, что сервер перестал отвечать.Кроме того, в таких ситуациях может оказаться целесообразным сделать асинхронную гигантскую середину веб-страницы, чтобы пользователи не испытывали нетерпение.

0 голосов
/ 11 марта 2011

Да, довольно стандартно иметь одну страницу ввода (index.php), и все вызываемые страницы являются просто index.php с параметрами либо через GET, либо POST. Многие люди также используют переписывание Apache, чтобы скрыть тот факт, что они делают это.

В вашем примере у вас может быть URL-адрес, такой как: "./index.php?trk=1&prog=23&proj=12", и вам придется решить, что делать в случае, если определенный параметр не был передан.

Обычно информация о состоянии страницы хранится в session.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...