Роутинг компонента

Нужна подсказка бывалых

#1 27 марта 2018 в 14:51
Доброе время суток!
Уважаемые форумчане помогите выполнить задачу.
Я создал компонент. Ссылка на него получилась вида site.ru/component
Добавил экшен add, получилось site.ru/component/add В БД вносятся все данные как и было задумано.
Для просмотра внесённой записи мне нужно создать акшен view и в параметре передать id записи. В общем ссылку такого вида site.ru/component/view/1
Но вот тут и загвоздка Я хочу сделать ссылку динамической. т.е. вместо экшена view подставлять slug записи что бы получить ссылку такого вида site.ru/component/slug.
Для решения данной задачи полез в по пути system/content/actions/ и нашёл там файл item_view.php. В этом файле и написана вся магия по превращению. ссылок. Но дело в том, для моих целей добрая, как минимум, половина метода run() мне не нужна. Вот только загвоздка в том, что Я не смог разобраться где эта половина.
Если подобный вопрос уже был озвучен — пожалуйста скажите где.
А если озвучен впервые — подскажите в каком направлении копать.
#2 27 марта 2018 в 15:55
Копайте тут \system\controllers\content\routes.php
Точного ответа не знаю, так как никогда не сталкивался
#3 27 марта 2018 в 19:48


Копайте тут \system\controllers\content\routes.php
Точного ответа не знаю, так как никогда не сталкивался

Evanescence

Спасибо за подсказку.
Буду копать…
#4 28 марта 2018 в 16:20


Доброе время суток!
Уважаемые форумчане помогите выполнить задачу.
Я создал компонент. Ссылка на него получилась вида site.ru/component
Добавил экшен add, получилось site.ru/component/add В БД вносятся все данные как и было задумано.
Для просмотра внесённой записи мне нужно создать акшен view и в параметре передать id записи. В общем ссылку такого вида site.ru/component/view/1
Но вот тут и загвоздка Я хочу сделать ссылку динамической. т.е. вместо экшена view подставлять slug записи что бы получить ссылку такого вида site.ru/component/slug.
Для решения данной задачи полез в по пути system/content/actions/ и нашёл там файл item_view.php. В этом файле и написана вся магия по превращению. ссылок. Но дело в том, для моих целей добрая, как минимум, половина метода run() мне не нужна. Вот только загвоздка в том, что Я не смог разобраться где эта половина.
Если подобный вопрос уже был озвучен — пожалуйста скажите где.
А если озвучен впервые — подскажите в каком направлении копать.

@ArchangelS
добавь в корень компонента файл routes.php c подобным содержимым
  1.  
  2. function routes_компонент(){
  3. return array(
  4.  
  5. 'pattern' => '/^компонент\/([a-z0-9\-_]+)$/i',
  6. 'action' => 'экшен без php',
  7. 1 => 'slug(принимаемый параметр экшеном)'
  8. )
  9. )
  10. }
  11.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.