Если JS назначен главной страницей, то ссылка на товар получается просто: Код (PHP): $url = JURI::root() . JRoute::_("index.php?option=com_jshopping&controller=product&task=view&category_id=".$category_id."&product_id=".$product_id, true); $url = str_replace(array('//', 'http:/', '/component/jshopping'), array('/', 'http://', ''), $url); в итоге получим что-то типа: http://site.ru/index.php/category/product А как получить ссылку, если JS не является главной страницей? Если делать также, то не вставляется алиас пункта меню на главную JS. Т.е., к примеру, алиас пункта меню - shop, соответственно, ссылка должна быть вида: http://site.ru/index.php/shop/category/product однако, алиас /shop не вставляется.
да, прописан. алиас на JS - shop я, в принципе, нашел решение - берем itemId из БД таким запросом: Код (PHP): function getItemId() { $db = $this->getDBO(); $query = $db->getQuery(true); $query -> select($db->quoteName('m.id')); $query -> from($db->quoteName('#__menu', 'm')); $query -> where($db->quoteName('m.link') . ' = ' . $db->quote('index.php?option=com_jshopping&view=category')); $db -> setQuery($query); $itemId = $db->loadResult(); return $itemId; } а ссылку формируем так: Код (PHP): $url = JURI::root() . JRoute::_("index.php?itemId=".$itemId."&option=com_jshopping&controller=product&task=view&category_id=".$category_id."&product_id=".$product_id, true); $url = str_replace(array('//', 'http:/', '/component/jshopping'), array('/', 'http://', ''), $url); в этом случае ссылка формируется корректно.