wdrożenia PrestaShop

5 produktów zamiast 5 produkty

  • 3 Odpowiedzi
  • 12214 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline Rapajic

  • Nowy
  • *
  • 5
  • 0
5 produktów zamiast 5 produkty
« dnia: Wrzesień 26, 2010, 08:09:23 pm »
Witam !

   W preście 1.3.1 jest problem z poprawną odmianą słowa "produkty" w koszyku. Jak to zmienić, żeby przy ilości produktów w koszyku równej lub większej niż 5 wyświetlało się 5, 6, 7... produktów zamiast 5,6,7 produkty?

Z góry dziękuję za pomoc.  :)


*

Offline James

  • Użytkownik
  • **
  • 33
  • 0
Odp: 5 produktów zamiast 5 produkty
« Odpowiedź #1 dnia: Wrzesień 26, 2010, 09:24:57 pm »
To ja sie podczepie  pod pytanie:
Jak dodatkowo zmienic , aby jesli kategoria ma podkategorie to wyswietla sie aktualnie 0 produkty, a chcialbym zeby wyswietlala sie suma wszystkich produktow w kategorii

*

Offline lpiob

  • Nowy
  • *
  • 10
  • 0
Odp: 5 produktów zamiast 5 produkty
« Odpowiedź #2 dnia: Październik 13, 2010, 03:31:27 am »
Witam !

   W preście 1.3.1 jest problem z poprawną odmianą słowa "produkty" w koszyku. Jak to zmienić, żeby przy ilości produktów w koszyku równej lub większej niż 5 wyświetlało się 5, 6, 7... produktów zamiast 5,6,7 produkty?

Z góry dziękuję za pomoc.  :)

Odmiana rzeczowników odliczebnikowych w j. polskim nie jest taka prosta - przynajmniej z punktu widzenia obcokrajowca. Twórcy presty nie przewidzieli, że form może być więcej niż dwie. Na dodatek założono, że jedna forma jest dla ilości = 1, a druga dla każdej większej od 1. Tak prosto w języku polskim jednak nie jest.

Oto pseudokod realizujący wybór odpowiedniej formy:

function dli2($x,$a,$b,$c) {
        if ($x==1) return $a;
        elseif (
        ($x%10>1) && ($x%10<5)  &&
        !(($x%100>=10) && ($x%100<=21))
        ) return $b;
        return $c;
};

Te kilka linii jest mojego autorstwa, zachęcam do korzystania i rozpowszechniania bez ograniczeń.

Użycie:

dli(1,"strona","strony","stron")
    => strona
dli(2,"kilogram","kilogramy","kilogramów")
    => kilogramy
dli(38,"sztuka","sztuki","sztuk")
    => sztuk

Następnie, w skrócie: powyższą funkcję podpinamy jako funkcję  lub modifier Smarty, wywolujemy z szablonu wraz z 3 odmianami rzeczownika (np. {$product->quantity|dli:"sztuka":"sztuki":"sztuk"}), oprocz tego implementujemy to samo w JavaScripcie, gdyz ten aktualizuje ilosc przy zmianie kombinacji atrybutow.

Ilosc zmian niestety jest zbyt duza abym wszystko tu umiescil, ale kazda osoba pracujaca dluzej przy kodzie Presty sobie z tym poradzi.
Tworzę moduły do PrestaShop na zlecenie. Napisz do mnie: webdev@artveo.pl

*

Offline lpiob

  • Nowy
  • *
  • 10
  • 0
Odp: 5 produktów zamiast 5 produkty
« Odpowiedź #3 dnia: Październik 13, 2010, 03:44:41 am »
To ja sie podczepie  pod pytanie:
Jak dodatkowo zmienic , aby jesli kategoria ma podkategorie to wyswietla sie aktualnie 0 produkty, a chcialbym zeby wyswietlala sie suma wszystkich produktow w kategorii

To zależy gdzie... Ale tak czy siak należy rozpocząć od utworzenia w klasie Category metody getProductsRecursively, opartej na getProducts, tylko pobierającej rekursywnie, czyli również w podkategoriach.

Później:

Jeśli zmiana ma dotyczyć ilości (i/lub produktów) pokazywanych na stronie kategorii, to należy zmodyfikować category.php:

$nbProducts = $category->getProducts(NULL, NULL, NULL, $orderBy, $orderWay, true,true,false,1);

NA:

$nbProducts = $category->getProductsRecursively(NULL, NULL, NULL, $orderBy, $orderWay, true,true,false,1);

I tak w kilku miejscach.

Nową metodę można wykorzystać teraz prawie wszędzie, np. w takim module kategorii:
Tworzę moduły do PrestaShop na zlecenie. Napisz do mnie: webdev@artveo.pl