Решение нашел здесь.
Варианты предлагались разные, но этот рабочий и наиболее изящный. Редактируется класс ps_session.php, ищите функцию getShopItemid(). Вот так она должна выглядеть после редакции:
function getShopItemid() {Логика проста, если Itemid установлено (а при переходе в другую категорию оно передается), то функция не меняет его на сессионную переменную и оставляет как есть, что нам и нужно.
if( empty( $_REQUEST['shopItemid'] )) {
$db = new ps_DB;
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND published=1");
if( $db->next_record() ) {
$_REQUEST['shopItemid'] = $db->f("id");
}
else {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
}
else {
$_REQUEST['shopItemid'] = 1;
}
}
// ЗДЕСЬ СОБСТНО ДОПОЛНЕНИЯ
} else {
return intval($_REQUEST['Itemid']);
}
// КОНЕЦ ДОПОЛНЕНИЯ
return intval($_REQUEST['shopItemid']);
}
Отлично, мне очень помогло!!!
ОтветитьУдалитьСпасибо!!! Долго искал решение этой проблемы. Очень помогло!
ОтветитьУдалитьВсе работает.
спасибо! большое спасибо!!!)))
ОтветитьУдалитьнезнаю было ли подобное у других но в browse_orderbyform.tpl.php обнаружил вот такую строчку
ОтветитьУдалитьinput type="hidden" name="Itemid" value=""
возможно конечно кто-то до меня правил скрипт, но лишним не будет отписать тут что так делать не стоит, следует указывать так
input type="hidden" name="Itemid" value="getShopItemid() ?>" /