Joomla 1.5
Virtuemart — 1.1.4 stable
Для тех, у кого возникает проблема постраничного вывода товара (пагинация).
Я так понял, что это одна из недоработок, возможно только в этой версии.
Этиология проблемы: переменная Itemid возвращает неверный id. Причиной тому есть факт того, каким образом формируется ссылка итэма:
$Itemid = $sess->getShopItemid();
и я так понимаю, что пытается вернуть внутренний «магазиновский» id-шник. А нам-то надо родной Joomla, ибо расползается наша верстка при постраничном переходе.
Решение:
В файле:
/administrator/components/com_virtuemart/html/shop.browse.php
меняем строку:
$Itemid = $sess->getShopItemid();
на
$Itemid = JRequest::getInt( 'Itemid' );
p.s.
Вопрос возник повторно в другом файле. Чтобы искоренить проблему накорню находим часть кода метода getShopItemid() в файле /administrator/components/com_virtuemart/classes/ps_session.php:
function getShopItemid() {
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;
}
}
}
return intval($_REQUEST['shopItemid']);
}
и комментируем-удаляем строки работы с базой, получается:
function getShopItemid() {
if( empty( $_REQUEST['shopItemid'] )) {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
}
else {
$_REQUEST['shopItemid'] = 1;
}
}
return intval($_REQUEST['shopItemid']);
}
Если кому-то не помогло, то вдумываемся в содержимое.
Комментарии (1)
RSS свернуть / развернутьdegtyarchuk
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.