Подскажите как избавиться в своем компоненте от url вида /name_component/action/idzapisi
а сделать допустим site.ru/namezapisi
или хотябы
site.ru/name_component/namezapisi
?
Смотря видеоуроки не увидел как.
URL в InstantCMS 2, как вы наверное уже знаете, состоит из <имя сайта>/<название контроллера>/<вызываемый экшен>/<параметры>...Реально ли? ведь контент как-то работает же с урлами.
Так вот, основной контроллер, или контроллер по умолчанию — это Контент (или content). Если я правильно понимаю, система первоначально пытается найти непонятный ей контроллер (например sitename.ru/articles) в контенте, далее в других компонентах и если ничего не получилось то выводит страницу 404.
А сам поиск внутри компонента работает так:
в корне компонента есть файл routes.php, в котором через регулярки указывается какие урлы может обработать данный компонент и как его обрабатывать (например sitename.ru/articles распознается через
'pattern' => '/^([a-z0-9_]+)\/([a-zA-Z0-9\-\/]+)$/i', 'action' => 'category_view', 1 => 'ctype_name', 2 => 'slug' ),