Проблема Получить ссылку на товар

Discussion in 'JoomShopping' started by denism300, Mar 3, 2017.

  1. Offline

    denism300 Недавно здесь

    Joined:
    Oct 20, 2016
    Messages:
    20
    Likes Received:
    0
    Gender:
    Male
    Если JS назначен главной страницей, то ссылка на товар получается просто:
    Код (PHP):
    1. $url = JURI::root() . JRoute::_("index.php?option=com_jshopping&controller=product&task=view&category_id=".$category_id."&product_id=".$product_id, true);
    2. $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 не вставляется.
     
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    В пункте меню на ЖШ алиас прописан ?
     
  4. Offline

    denism300 Недавно здесь

    Joined:
    Oct 20, 2016
    Messages:
    20
    Likes Received:
    0
    Gender:
    Male
    да, прописан. алиас на JS - shop
    я, в принципе, нашел решение - берем itemId из БД таким запросом:
    Код (PHP):
    1. function getItemId() {
    2.         $db        =     $this->getDBO();
    3.         $query    =    $db->getQuery(true);
    4.         $query    ->    select($db->quoteName('m.id'));
    5.         $query    ->    from($db->quoteName('#__menu', 'm'));
    6.         $query    ->    where($db->quoteName('m.link') . ' = ' . $db->quote('index.php?option=com_jshopping&view=category'));
    7.         $db        ->    setQuery($query);      
    8.         $itemId    =    $db->loadResult();
    9.        
    10.         return $itemId;
    11. }


    а ссылку формируем так:

    Код (PHP):
    1. $url = JURI::root() . JRoute::_("index.php?itemId=".$itemId."&option=com_jshopping&controller=product&task=view&category_id=".$category_id."&product_id=".$product_id, true);
    2. $url = str_replace(array('//', 'http:/', '/component/jshopping'), array('/', 'http://', ''), $url);


    в этом случае ссылка формируется корректно.
     

Share This Page

Loading...