![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
witam
Mam problem z posortowaniem wyników z tej części kodu:
chciałbym żeby to było sortowane po a nie po ID. Jak to zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Dane sortuje się w zapytaniu, a nie w kodzie! Jednakże zakładajac że sortowanie musi nastąpić po stronie php, to mozesz nadpisać Zend_Db_Table_Rowset_Abstract dodać do niej metodę sortByName() która posortuje Ci dane tak jak chcesz
Ten post edytował zend 7.05.2010, 07:24:05 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
problem w tym że php znam, ale ZF już niestety nie,
podpowiesz gdzie można to zrobić? Byłem pewny że w ZF jest jakaś metoda która sortuje zmienne z wynikami jakiegoś zapytania. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Extending the Rowset class - ostatni nagłówek. A dane musisz posortować
1) jeśli wybierałeś dane kolekcji to sortujesz tylko po $_rows - najbardziej pewne wyjście, więcej zachodu 2) jeśli nie wybierałeś danych z kolekcji sotrujesz po $_data - dobre wyjście, mniej zachodu, bardziej podatne na błedy w przyszłości 3) jeśli wybrałeś troche danych patrz pkt 1 Nie mówiłem że będzie łatwo (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 5 Dołączył: 9.07.2003 Skąd: Wołów/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Byłem pewny że w ZF jest jakaś metoda która sortuje zmienne z wynikami jakiegoś zapytania. Oczywiście, że jest. Zend ma swoja bibliotekę do obsługi zapytań do bazy. Wystarczy, że w modelu, w miejscu gdzie pobierasz dane, dodasz parametry dla metody order, np.
Jeżeli chcesz, aby sortowało się po nazwie, robisz tak:
Tutaj masz więcej informacji o samym budowaniu zapytań w zend: klik |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
dokładnie o to mi chodziło.
Panowie mam do waś wielką prośbę. Załączam plik modelu z zenda + plik z prezentacją danych. Czy jesteście mi w stanie pomóc tutaj posortować to. Nie kumam jeszcze tego zenda na tyle zeby w tym mieszać a aplikacja już działa online. Będę wdzięczny Oto pliki: Grouped.php: http://www.sendspace.pl/file/ae0e5529e92d5dee7561d80 Grouped.phtml: http://www.sendspace.pl/file/c6f2ff88dcf8372c9aa0b9b |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 5 Dołączył: 9.07.2003 Skąd: Wołów/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mistrzu, teraz to mnie rozwaliłeś (IMG:style_emoticons/default/smile.gif) Dlaczego wprowadziłeś nas w błąd? Sprawa nie tyczy się zend framework, a magento.
Bez znajomości zenda wprowadził byś te modyfikacje bez problemu, ale od zenda! Magento jest to kod fimy Varien, która wykorzystała biblioteki ZF do napisania kobyły. Oczywiście dalej moje sugestię są prawidłowe, jeżeli chodzi o budowę modelu, niemniej nie jestem w stanie stwierdzić która metoda odpowiada za grupowanie produktów. Zdaje się, że wyświetlana jest belka nad produktami w magento, w której możesz definiować sposób sortowania oraz ilość produktów na stronę. Dodatkowo, o ile dobrze pamiętam, w administracji jest możliwość ustawienia na podstawie jakiego parametru mają być sortowanie produkty. Nie musisz modyfikować tego na sztywno w kodzie. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
nie wiedziałem ze to ma jakieś znaczenie.
Tak dokładnie chodzi o magento. Sortowanie jest zaimplementowane ale nie tam gdzie to jest potrzebne. Można sortować widok produktów po nazwie ale w widoku produktów, ja jednak potrzebuje posortować produkty zgrupowane w głównym produkcie. Teraz wygląda to tak: http://sklep.hannah.pl/kurtki/letnie-wiose...ummer-2010.html Chodzi o tabelkę z dostępnością produktów. Teraz jak widać są one porozrzucane a powinno być np tak: Amira antracite 36 Amira antracite 38 Amira antracite 40 .... Żeby to ładnie wyglądało. Ktoś ma pomysł jak to inaczej posortować? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 5 Dołączył: 9.07.2003 Skąd: Wołów/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Edytuj produkt grupowy, edytując w nim kolejność (priorytet) wyświetlanych produktów. Zdaje się, że to własnie na podstawie tamtej listy a nie nazwy ani id jest generowana ta lista.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 0 Dołączył: 12.12.2006 Skąd: Pszów Ostrzeżenie: (0%) ![]() ![]() |
masz racje z tym sortowaniem przez edycje grupowego, jednak nie działa to i tak.
Zmieniając sortowanie na "nazwa" w panelu admina ładnie sortuje się po nazwie i jak odświeżę stronę sklepu to co prawda kolejność tych pozycji się zmienia, ale nie na taką jak w PA. Już nie mam pomysłu jak to poprawić. no i w końcu to rozgryzłem. Przeszukałem z 50 pare plików, zmarnowałem kilka godzin ale sie udało. Plik o tóry chodziło to: app/code/core/mage/catalog/model/product/type/grouped.php Wystarczyło w dodać to: Kod public function getAssociatedProducts($product = null)
{ if (!$this->getProduct($product)->hasData($this->_keyAssociatedProducts)) { $associatedProducts = array(); if (!Mage::app()->getStore()->isAdmin()) { $this->setSaleableStatus($product); } $collection = $this->getAssociatedProductCollection($product) ->addAttributeToSelect('*') ->addFilterByRequiredOptions() ->setPositionOrder() ->addAttributeToSort('sku', 'asc') <----- tutaj dodałem :) ->addStoreFilter($this->getStoreFilter($product)) ->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product))); foreach ($collection as $product) { $associatedProducts[] = $product; } $this->getProduct($product)->setData($this->_keyAssociatedProducts, $associatedProducts); } return $this->getProduct($product)->getData($this->_keyAssociatedProducts); } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:20 |