Пагинация в Virtuemart (joomla)

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 свернуть / развернуть
+
0
добавь теги к топику с пагинацией
avatar

degtyarchuk

  • 27 февраля 2012, 18:32

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Не забываем смотреть статистику:

Яндекс цитирования