Sortowanie wg. ceny

coneser2

Avatar: coneser2

2011-02-22 00:49

Szukam skryptu dla swojego sklepu internetowego. Dzięki linkom sponsorowanym google trafiłem również i tutaj. Powiem szczerze, że funkcjonalności i zalety skryptu, które opisujecie na stronie głównej zrobiły na mnie bardzo dobre wrażenie. Przeszedłem więc do strony dema. Skrypt (nie licząc surowego layoutu) wydał mi się naprawdę OK. Byłem gotów go kupić kiedy stwierdziłem, że brakuje mu podstawowej funkcji: Sortowania wg. ceny - będącej dla mnie jako konsumenta istotnym narzędziem do przeszukiwania oferty.

Zdziwiłem się. Przeszukałem pobieżnie forum. Okazuje się, że problem braku sortowania występuje już od 5 lat !! W postach, które znalazłem z jednej strony użytkownicy płaczą, że sortowania nie ma a z drugiej płaczą twórcy, że wykonanie tej podstawowej funkcji jest to dla nich za trudne proponując (o zgrozo!!) wykonanie tego samym użytkownikom bo widocznie tylko ci są w stanie sobie z tym poradzić.

Uprzedzam, że nie chcę nikogo urazić. Jako potencjalny klient jestem po prostu zdziwiony. Przed ewentualnym zakupem proszę o informację czy w najbliższej przyszłości do swojego skryptu opensolution zamierza wprowadzić sortowanie wg. ceny? Dziękuję i pozdrawiam.

» Quick.Cart v3.x

treewood (OpenSolution)

Avatar: treewood

2011-02-22 16:12

coneser2 - nie przypominam sobie by sortowanie wg ceny bylo za trudne bo takie cos przeciez dziala w administracji w liscie produktow juz prawie rok. prosze pamietac takze, ze zawsze mozna zlecic to komus do zrobienia. prosze takze pamietac o tym, ze sortowanie po cenie znajduje sie na liscie wielu innych funkcjonalnosci, ktore by chcieli ludzie by byly w naszym narzedziu a my STARAJAC sie za wszelka cene robic proste narzedzia musimy ostro filtrowac miedzy srednio waznym, waznym a bardzo waznym.

Bo ... dla Pana sortowanie to podstawa, dla innego Pana wyswietlanie zdjec jeden kolo drugiego jako galeria to podstawa, dla innego platnosci, dla innego zaawansowana wyszukiwarka to koniecznosc. I niektorzy do nas pisza, ze przez brak jednego z tych rzeczy nasz skrypt jest przestarzaly, ze mamy 21 wiek a to narzedzie wyglada jak z konca 20 wieku itd.

No ale gdybysmy tak spelniali te zyczenia to zrobilibysmy kolejny kombajn jakich jest mnostwo w internecie a jego modyfikacja i dostosowanie do wlasnych potrzeb z czasem moglby graniczyc z cudem.

Makaron

Avatar: Makaron

2011-02-23 17:12

Tak po prawdzie to funkcje sortowania są wbudowane wystarczy je tylko odpowiednio zastosować. Podam na to solucję, którą można rozbudować o inne typy sortowania. Tak więc wpierw edytujemy plik core/products.php funkcja listProducts() i nad linią:

$iCount count$aProducts );


Dodajemy taki kod:

if( isset( $_GET['sSort'] ) && !empty( $_GET['sSort'] ) && $_GET['sSort'] == 'price' )
   
$aProducts $this->sortProducts$aProducts'price' );


Następnie edytujemy plik templates/pages_default.tpl blok PRODUCTS_HEAD i przed kodem:

<a href="$_SERVER[REQUEST_URI]$config[before_amp]&amp;bViewAll=true">$lang['View_all']

Do dajemy takie coś:

<a href="$_SERVER[REQUEST_URI]$config[before_amp]&amp;sSort=price">$lang['Sort_price']</> | 


W pliku lang/pl.php dodajemy sobie zmienną językową:

$lang['Sort_price'] = "Sortuj wg ceny";



Wszystko niby działa, ale jak produktów jest więcej i tworzy się paginacja to sortowanie nie jest kontynuowane na podstronach, tak więc edytujemy plik libraries/Trash.php funkcja countPages() i zmieniamy:

$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pPrev">';


na:

if( !empty( $_GET['sSort'] ) )
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pPrev">';
else
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pPrev">';


i nieco poniżej kod:

$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pNext">';


na taki:

if( !empty( $_GET['sSort'] ) )
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pNext">';
else
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pNext">';



I można cieszyć się funkcją sortowania.

PS: Tak naprawdę to treewood mnie zmusił do napisania tego manuala. :(

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

trzykas

Avatar: trzykas

2012-01-12 01:50

proszę o usunięcie powyższego wątku sprawa jest bardziej skomplikowana
nalezy :

edytujemy plik libraries/Trash.php funkcja countPages() i zmieniamy:

$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pPrev">';


na

if( !empty( $_GET['sSort'] ) )
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pPrev">';
    else
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pPrev">';
    if( !empty( 
$_GET['sSort']) && empty( $_GET['sPhrase']))  
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'?&amp;sSort=price" class="pPrev">';
    if( !empty( 
$_GET['sSort']) && isset( $_GET['sPhrase']) ) 
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pPrev">';



i nieco niżej

$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pNext">';


na


if( !empty( $_GET['sSort'] ) )
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pNext">';
    else
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'" class="pNext">';
    if( !empty( 
$_GET['sSort']) && empty( $_GET['sPhrase']))  
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'?&amp;sSort=price" class="pNext">';
    if( !empty( 
$_GET['sSort']) && isset( $_GET['sPhrase']) ) 
    
$sUrl ' <a href="'.$sAddress.','.( $iPage ).$sExt.$sAddress2.'&amp;sSort=price" class="pNext">';



Powyższy zabieg pozwala sortować i przewijać strony zarówno w stronach wyszukiwania jak i stronach poszczególnych kategorii ze stronnicowaniem gdzie jest wymagany znaczek "?" a w stronach wyników wyszukiwania znaczka "?" nie powinno być.

pozdrawiam i przepraszam za zamieszanie powyższy kod sprawdzony i przetestowany

trzykas

Do góry
o nas | kontakt