0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 2276 Просмотров
*

sergeytolkachyov

  • Захожу иногда
  • 163
  • 17 / 0
  • @sergeytolkachyov https://web-tolk.ru
Joomla 3.9.12, JoomGallery 3.4
Имеем магазин, где есть товары (JoomShopping) и портфолио - выполненные работы (JoomGallery). Выполненные работы имеют структуру:

- Выполненные работы
- - Ценовой диапазон 1
- - Ценовой диапазон 2
- - Ценовой диапазон 3

Также на сайте 2 меню: в одном есть псевдонимы пунктов меню из другого.
Для облегчения перелинковки сделал контент-плагин, который берет название, описание категории и одну фотографию из нее: если указана в коде вставки плагина, то по id, если нет, то либо миниатюру из настроек категории, либо первую из категории.
Естественно, что целью перелинковки является ссылка. И тут проблема - ссылки, получаемые с помощью JRoute::_ имеют вид site.ru/component/joomgallery/название_категории. В JoomGallery есть interface.php, где есть свой метод route. С его помощью получается ссылка, по которой все открывается, но SEF-url не тот. По url получается, что выполненная работа из ценовой диапазон 1 оказывается в ценовом диапазоне 3.

Если же сам получаешь itemId

Цитировать
function getItemid( $component, $view )
         {
            $items = JFactory::getApplication()->getMenu( 'site' )->getItems( 'component', $component );
            foreach ( $items as $item ) {
               if($item->query['view'] === $view){
                  return $item->id;
               }
            }
         }

и делаешь ссылку таким образом

Цитировать
$catlinkItemId = $this->getItemid( 'com_joomgallery', 'category' );//$this->getJoomId($catid);
      $catlink = $this->_interface->route('index.php?&option=com_joomgallery&view=category&catid='.$catid."&itemid=".$catlinkItemId);//ссылка на категорию
То вызывается itemId пункта меню верхнего уровня - только родительский. Соответственно url оказывается укорочен на целую категорию.

Если же itemId не указываешь в url для метода route, то формируется правильная по длине ссылка, но, как писал, выполненная работа из ценового диапазона 1 оказывается в ценовом диапазоне 3.
*

sergeytolkachyov

  • Захожу иногда
  • 163
  • 17 / 0
  • @sergeytolkachyov https://web-tolk.ru
Пришел к выводу, что необходимо указывать itemid в качестве параметра. Если в меню есть только один пункт, связанный с JoomGallery, то его можно получить и автоматом. Если же несколько, то нужно указывать принудительно. Скоро выложу в сеть плагин и описание.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вернуть SEF - JRoute::_(ContenterRoute::getArticleRoute) в админке?

Автор pavelrer

Ответов: 0
Просмотров: 2382
Последний ответ 10.08.2020, 13:37:52
от pavelrer
[Решено] Jroute не ловит view !

Автор n_drey

Ответов: 8
Просмотров: 4046
Последний ответ 19.07.2019, 04:02:49
от sesil
Как получить последний сегмен из SEF url?

Автор cartgen

Ответов: 3
Просмотров: 1376
Последний ответ 28.02.2018, 18:54:34
от beliyadm
SEF url кнопки купить в категории у товаров

Автор orexov_m

Ответов: 0
Просмотров: 1235
Последний ответ 16.01.2017, 11:21:12
от orexov_m
SEF url кнопки купить в категории товаров

Автор orexov_m

Ответов: 0
Просмотров: 1374
Последний ответ 16.01.2017, 11:19:33
от orexov_m