По моему опыту, эта проблема возникает в тех случаях, когда у вас есть модуль (например, список продуктов virtuemart), размещенный где-то НЕ в разделе, куда должна приводиться ваша ссылка.Допустим, в вашем меню настроена ВМ (com_virtuemart) с Itemid === 731, и вы вставляете модуль списка продуктов на домашней странице (com_content).Когда вы нажимаете на продукт, который приводит вас на страницу продукта, вы ожидаете, что модуль настроит ссылку таким образом, что ваш VM Itemid будет включен в ссылку ([linkl] & Itemid = 731) - но в большинстве случаев этоне происходит, ваш Itemid не добавляется в URL.
Кроме того, вы не всегда можете ожидать (как в этом случае) иметь правильный Itemid в ваших параметрах URL.поэтому JRequest::getint( 'Itemid' )
материал не будет работать должным образом.
Я не знаю причину, по которой метод JRoute :: _ (это можно легко сделать с помощью дополнительного параметра "$ searchForItemid") не ищет ваш Itemidв таблице меню КОГДА ТЫ НЕ В КОМПОНЕНТЕ!Это означает, что если вы поместите тот же модуль списка продуктов, который виден на главной странице виртуальной машины (com_virtuemart), вы увидите, что Itemid появляется в ваших ссылках.Но в большинстве случаев этот модуль должен быть где-то еще.
Это все еще имеет место w \ J! 2.5.
У меня нет решения для вас, но я могу сказать вам, как яПреодолеть это.
Очевидно, вы можете открыть модуль и жестко закодировать Itemid.В Италии это называется «PORCATA» (перевод: кодирование в стиле «свинарник»), и я действительно советую против него по очевидным причинам
Что я делаю, так это использую переопределение языка (J! 2.5 - Language Manager: Переопределения языка), зарегистрируйте переопределение, как VM_ITEMID === 731, а затем в модуле я создаю собственный шаблон и изменяю ссылку с:
JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id...')
на:
JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id...'.'&Itemid='.JText::_("VM_ITEMID"))
Я повторяю,это не решение проблемы, и это, IMHO, должно заботиться ядром, но это работает, и таким образом у вас есть возможность изменить Itemid, привязанный к компоненту.надеюсь, это поможет