Budując sklep internetowy oparty o komponent VirtueMart wielokrotnie napotykałem na konieczność modyfikacji paginacji. Poniżej przedstawiam wam trzy rozwiązania tego zagadnienia.
Problem: W każdej kategorii mam tylko kilka produktów, wiec paginacja wyświetlająca się już przy dwóch produktach jest zupełnie niepotrzebna.
Rozwiązanie:Otwieramy plik shop.browse.php znajdujący się w katalogu: administrator/components/com_virtuemart/html. Idziemy na sam koniec szukając tego kodu:
if ( $num_rows > 1 ) {
$browsepage_footer = $tpl->fetch( 'browse/includes/browse_pagenav.tpl.php' );
$tpl->set( 'browsepage_footer', $browsepage_footer );
} else {
$tpl->set( 'browsepage_footer', '' );
}
Następnie wykomentuj ten kod np za pomocą znaków „//”.
Problem: W niektórych kategoriach mam tylko kilka produktów, w innych zaś więcej. Chciałbym żeby paginacja pojawiała się tylko przy większej ilości produktów.
Rozwiązanie:Otwieramy ten sam plik, który modyfikowaliśmy w powyższym przykładzie i idziemy do tej samej linii kodu. Przypuśćmy, że mamy w kategorii produktów pogrupowane po trzy w jednym rzędzie i chcemy by paginacja pojawiała się już przy 9 produktach. Zamieniamy powyższy kod na:
if ( $num_rows > 3 ) {
$browsepage_footer = $tpl->fetch( 'browse/includes/browse_pagenav.tpl.php' );
$tpl->set( 'browsepage_footer', $browsepage_footer );
} else {
$tpl->set( 'browsepage_footer', '' );
}
Problem:Chcemy zmienić liczby dostępne na rozwijanej liście wyboru w paginacji. Zamiast domyślnych 5, 10, 15, 20, 25, 30, chcemy mieć 15,30,45 i maksymalnie 100 produktów do wyświetlenia.
Rozwiązanie:Otwieramy plik pageNavigation.class.php znajdującym się w katalogu administrator/components/com_virtuemart/classes i idziemy do poniższego kodu znajdującego się prawie zaraz na początku.
for ($i=5; $i <= 30; $i+=5) {
if (empty( $link)) {
$limits[$i] = $i;
} else {
$limits[vmRoute($link.'&limit='.$i)] = $i;
}
}
Zmieniamy ten kod na:
for ($i=15; $i <= 100; $i+=15) {
if (empty( $link)) {
$limits[$i] = $i;
} else {
$limits[vmRoute($link.'&limit='.$i)] = $i;
}
}
fajne info. Dzięki
Jak najwięcej Tipsów z VM i Joomla
chętnie poczytam i kliknę w reklamę :)
pozdrawiam
Witam!
Przydatne informacje!
Ale mam troche inny problem, chce zeby domyslnie wyswietlało po 1 produkcie w rzedzie(do ustawienia w administracji) i 4 rzedy maksymalnie (potem paginacja).
Jak ustawić te 4 rzędy?
Dzięki z góry za pomoc…
pozdrawiam
Witam siedzę własnie w virtuemarcie i zastanawia mnie czy można dodać w paginacji – linkach cyferkach 1,2,3 itd (nazwę kategorii jako title do tego linku?
w pliku pageNavigation.class.php w katalogu
administrator/components/com_virtuemart/classes jest funkcja która generuje paginację i w lini 146
jest kod który to generuje
$html .= „\nlimit.’&limitstart=’.$page).”\” class=\”pagenav\” title=\””.$category_alias.”\” >$i„;
dodałem zmienną $category_alias ale niestety nie wyswietla on nic :/
może jest jakiś sposób aby to zaczęło działać?
pozdrawiam
Witam. Udało mi się zmienić wartości paginacji. Po wybraniu odpowiedniej wartości liczba produktów na stronie się odpowiednio zmienia. Jednak przy pierwszym wejściu na stronę do katalogu produktów w okienku wyboru widoczna jest najmniejsza ustawiona wartość natomiast domyślnie wyświetlają się produkty od 1 do 20. Dopiero po zmianie wartości wszystko wyświetla się poprawnie. Jak zrobić by od początku wyświetlała się prawidłowa ilość produktów?
oto link do strony: http://phoenixbeauty.ie/index.php?page=shop.browse&category_id=6&option=com_virtuemart&Itemid=54