bools
Новичок
Помогите с решением: ЧПУ в CMS
Здравствуйте. Решил в своей системе, которую я разрабатываю, сделать возможность создавать такие ЧПУ, которые захочет пользователь, а не сделает программист. Т.е. если программист делает сценарий регистрации пользователей по адресу /registration/ и исправить это без его вмешательства будет невозможно, то хотелось бы предоставить администратору сайта создать страничку регистрации по ЛЮБОМУ URL-адресу с любым уровнем ВЛОЖЕННОСТИ. Например, так: /system/users/registration/.
В процессе работы возникли вопросы, которые не могу решить. А именно:
Если бы мы сразу определились, что уровень вложенности у нас «корневой» и, например, строка новостей /news/2007/08/12/news_name.html всегда будет представлена именно так, то вопросов бы не было – модуль новостей определялся первым элементом в строке среди разделителей «/». Но я задался целью создать МНОГОУРОВНЕВУЮ систему ЧПУ, исходя из чего, модуль новостей может находиться по ЛЮБОМУ адресу, например: /analitika/finansi/Russia/news/2007/08/12/news_name.html.
Как видите, у меня возникла сложность определения конкретного МОДУЛЯ (т.е. модуля новостей в данном случае), ибо остальная часть URL - /analitika/finansi/Russia/ является лишь виртуальной, НИКАК не влияющей на сам модуль новостей частью URL. Т.е. хоть адрес /analitika/, /finansi/ или /Russia/ хоть и будет привязаны к какому-то модулю, но на модуль новостей они влиять никоим образом не будут.
Вот и не знаю, как подобное осуществить, и осуществимо ли это в принципе? Даже алгоритм придумать никакой более-менее логический не могу.
Спасибо.
UPD: пока писал этот текст возникла идея следующего содержания: идти по строке /analitika/finansi/Russia/news/2007/08/12/news_name.html и искать самый последний модуль, т.е. сопоставлять по таблице каждый элемент URL (analitika, finansi, Russia, news, 2007 и т.д.) и, пока мы не поймём, что часть URL «2007» не ассоциируется ни с каким модулем, то выделим как ОСНОВНОЙ МОДУЛЬ страницы модуль news. Покритикуйте это решение..
Здравствуйте. Решил в своей системе, которую я разрабатываю, сделать возможность создавать такие ЧПУ, которые захочет пользователь, а не сделает программист. Т.е. если программист делает сценарий регистрации пользователей по адресу /registration/ и исправить это без его вмешательства будет невозможно, то хотелось бы предоставить администратору сайта создать страничку регистрации по ЛЮБОМУ URL-адресу с любым уровнем ВЛОЖЕННОСТИ. Например, так: /system/users/registration/.
В процессе работы возникли вопросы, которые не могу решить. А именно:
Если бы мы сразу определились, что уровень вложенности у нас «корневой» и, например, строка новостей /news/2007/08/12/news_name.html всегда будет представлена именно так, то вопросов бы не было – модуль новостей определялся первым элементом в строке среди разделителей «/». Но я задался целью создать МНОГОУРОВНЕВУЮ систему ЧПУ, исходя из чего, модуль новостей может находиться по ЛЮБОМУ адресу, например: /analitika/finansi/Russia/news/2007/08/12/news_name.html.
Как видите, у меня возникла сложность определения конкретного МОДУЛЯ (т.е. модуля новостей в данном случае), ибо остальная часть URL - /analitika/finansi/Russia/ является лишь виртуальной, НИКАК не влияющей на сам модуль новостей частью URL. Т.е. хоть адрес /analitika/, /finansi/ или /Russia/ хоть и будет привязаны к какому-то модулю, но на модуль новостей они влиять никоим образом не будут.
Вот и не знаю, как подобное осуществить, и осуществимо ли это в принципе? Даже алгоритм придумать никакой более-менее логический не могу.
Спасибо.
UPD: пока писал этот текст возникла идея следующего содержания: идти по строке /analitika/finansi/Russia/news/2007/08/12/news_name.html и искать самый последний модуль, т.е. сопоставлять по таблице каждый элемент URL (analitika, finansi, Russia, news, 2007 и т.д.) и, пока мы не поймём, что часть URL «2007» не ассоциируется ни с каким модулем, то выделим как ОСНОВНОЙ МОДУЛЬ страницы модуль news. Покритикуйте это решение..