productVoter
Pod-klasa Shop. Obsługa głosowania na produkty.
Parametry w JS
Ponieważ klasa jest inicjalizowana razem z Shop, wszystkie parametry należy nadać przed zdarzeniem domready lub najpóźniej w funkcji warunkowej Shop.productVoter.condition() . Ponieważ wszystkie parametry mają swoje domyślne wartości, do standardowego działania pod-klasy, nie są potrzebne żadne zmiany.
Parametry Shop.productVoter.options :
- class0 (string) - klasa z „pustką” gwiazdką, domyślnie star0
- class05 (string) - klasa z „połowiczną” gwiazdką, domyślnie star0-5
- class1 (string) - klasa z „pełną” gwiazdką, domyślnie star1
- selector (string) - selector obiektu DOM w którym znajdują się „gwiazdki”, domyślnie span.votestars
- starsselector (string) - selector obiektów DOM do nadawania klas „gwiazdek”, domyślnie span.votestars img
- votecountselector (string) - selector obiektu DOM przechowującego ilość oddanych głosów, jako tekst, domyślnie votecountselector
- url (string) - adres do oddania głosu, zawiera ciągi {prodid} i {score} na odpowiednio ID produktu i wartość oddanego głosu [1 - 5], domyślnie product/vote/prod/{prodid}/vote/{score}
- Shop.lang.common.product_vote_alert - komunikat podczas nieudanego głosowania
Działanie
Wybrane starsselector otrzymują dwa zdarzenia. onMouseenter, do czasowej zmiany wartości głosu oraz onClick, które wysyła żądanie na url. Po otrzymaniu odpowiedzi o poprawnym oddaniu głosu, zdarzenia zostają usunięte, wartość głosu ustawiona na stałe, a ilość w votecountselector zwiększona o jeden.
Wartość nadawana jest przez odpowiednią manipulację klasami class0, class05 oraz class1 na starsselector.
ID produktu pobierane jest z ID obiektu pod selector. Wszystkie znaki nieliczbowe są usuwane, domyślnie aplikacja stosuje nomenklaturę votestars_ID, np. votestars_12.