вам нужно из этой строки 40/40/200 получить обратно order=40&limit=40&extra_fields=200 и записать их в массив $vars в виде пар $key=>$value, а из $segments эти сегменты 40/40/200 удалить
Благодарю! Теперь я кажется сдвинулся с мертвой точки. Я сделал как вы сказали, но теперь я опять воткнулся в стенку)
1) я добавил в onBeforeParseRoute
$vars['order'] = $segments[0];
$vars['view'] = 'products';
$vars['controller'] = 'products';
...
unset($segments[0]);
...
Что бы jshopping открывал мне страницу "каталог" с гетом. Но в этом случае пропадают мои гет параметры. Я перехожу по ссылке, а он мне тупо открывает site/catalog. Вместо site/catalog/40 с нужным мне набором товаров.
Если же я убираю из роута вью и котроллер, то открывается непонятно что, товаров нет, просто корневой путь категорий которые не имеют отношения к этой странице, видимо из за того, что не отрабатывает ни один контроллер.
Так же я попробовал сделать так
JFactory::getApplication()->redirect(SEFLink("index.php?order={$vars['order']}", 0));
или так
JFactory::getApplication()->redirect(SEFLink("index.php?option=com_jshopping&view=products&order={$vars['order']}", 0));
но эти строки приводят к бесконечному редиректу, что в принципе логично.
А подобная строка JFactory::getApplication()->input->set('order', $vars['order']); не помогает, ведь происходит перезагрузка странице.
Как можно выкрутиться из ситуации?