Router — это класс для маршрутизации ссылок сайта. Основное назначение — конвертация параметрических URL в человекопонятные. Познакомимся с некоторыми понятиями.
Методы класса Router работают корректно только в том случае, если страница или псевдостраница зарегистрирована с помощью метода Router::convert().
Штатные страницы — это реальные страницы, которые порождаются page-данными (штатными ссылками). Штатные страницы собираются из блоков (вручную или автоматически). Каждая штатная страница получает уникальный номер, и открывается с помощью ссылки такого вида: href="?page=2" (указана относительная параметрическая ссылка).
Кроме параметра page, на страницу можно передать множество других параметров, с помощью которых содержимое блоков может существенно измениться. Специальные выборки записей являются примерами таких параметрических запросов. При этом, страница остается той же, а контент меняется. Совокупность таких разновидностей страниц, относящимися к одной странице, мы будем называть псевдостраницами.
Система Blox CMS изначально оперирует параметрическими запросами (ссылками), например: href="?page=2&block=47&p[1]=1"
.
В сложных случаях URL странички может быть стать громоздким и непонятным, поэтому их лучше сделать человекопонятными.
В принципе, для обычного человека красивые URL и не требуются. Но поисковые роботы любят странички с человекопонятными URL (ЧПУ). ЧПУ-ссылки выглядят не только более осмысленными, но и создают уверенность, что страничка не является случайно сгенерированной.
Для превращения параметрических ссылок в человекопонятные ссылки нужно использовать метод Router::convert().
Например, код Router::convert('?page=2&block=47&p[1]=1')
может возвращать URL такого вида: 'katalog/instrument/dreli/' (относительный URL).
При этом, если последовательно удалять из ЧПУ последние элементы пути, мы будем получать действующие родительские страницы.
Применяйте функцию Router::convert() даже в том случае, если на сайте режим ЧПУ выключен.