 
Класс Router
Router это — класс для маршрутизации ссылок сайта. Инициализация класса не требуется.
Основное назначение — конвертация параметрических URL в человекопонятные. Познакомимся с некоторыми понятиями.
Штатные страницы и псевдостраницы
Штатные страницы это реальные страницы, которые порождаются 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() даже в том случае, если на сайте режим ЧПУ выключен.
Во-первых, эта функция выводит параметры URL в определенном стандартном порядке, и у вас не окажется двух разных ссылок, приводящих на одну и ту же страницу.
Во-вторых, эта функция строит древо всего сайта.
Вообще-то, древо сайта, относящееся к штатным страницам, формируется и без функции Router::convert(). Но именно эта функция позволяет добавить к древу сайта все "синтетические" ссылки, например, параметрические ссылки каталога.
Поэтому ее нужно применить ко всем ссылкам, находящимся в навигационных блоках.
|