Style graficzne
Aplikacja obsługuje style graficzne, odpowiedzialne za wygląd i funkcjonalność sklepu (części klienckiej).
Struktura plików
Każdy styl graficzny znajduje się w osobnym podfolderze /skins/default/ (style uniwersalne)
lub /skins/user/ (style użytkownika)
'
Pełna struktura folderów i plików. Ich funkcje wraz z dostępnymi zmiennymi opisane są w sekcji dostępne zmienne.
- /skins/default/nazwastylu/ - boxes/ - szablony modułów - Banner/box.tpl - Basket/box.tpl - Bestseller/box.tpl - Currencies/box.tpl - Custom/box.tpl - LanguageList/box.tpl - Login/box.tpl - Menu/box.tpl - NewProducts/box.tpl - Newsletter/box.tpl - Polls/box.tpl - Pricelist/box.tpl - Producers/box.tpl - ProductFilter/box.tpl - ProductOfTheDay/box.tpl - Recent/box.tpl - Search/box.tpl - SpecialOffer/box.tpl - UsersOnline/box.tpl - cache/ - miejsce przechowywania skompilowanych szablonów - images/ - wszystkie pliki graficzne stylu - user/ - pliki dodawane do stylu za pomocą panelu administracyjnego - js/ - pliki JavaScript - user.js - własny skrypt JS, edytowany w panelu administracyjnym - scripts/ - szablony stylu - basket/ - index.tpl - step2.tpl - address.tpl - step3.tpl - done.tpl - finished.tpl - categories/ - list.tpl - contact/ - index.tpl - index/ - index.tpl - info/ - index.tpl - links/ - index.tpl - login/ - login.tpl - passremind.tpl - passremind2.tpl - register.tpl - news/ - index.tpl - list.tpl - newsletter/ - unsign.tpl - off/ - index.tpl - panel/ - address-edit.tpl - address.tpl - comments.tpl - edit.tpl - favourites.tpl - index.tpl - orders.tpl - order.tpl - password.tpl - payment.tpl - plugin/ - execute.tpl - pricelist/ - html.tpl - product/ - index.tpl - list.tpl - mailfriend.tpl - search.tpl - styles/ - pliki CSS - user.css - własny styl CSS, edytowany w panelu administracyjnym - files.ini - spis plików wraz z sumami kontrolnymi - preview.jpg - podgląd, używany w galerii stylów - settings.ini - konfiguracja stylu
Wymagana jest obecność wszystkich plików i folderów z powyższej listy. W ostateczności można pominąć foldery modułów (boxes), co do których mamy pewność, że nie będą używane.
Wszystkie pliki, znajdujące się w domyślnych stylach, ale niewymienione na liście powyżej wynikają wyłącznie z samej budowy stylu. Są to np. pliki szablonów jak header.tpl, czy footer.tpl, umieszczane wewnątrz innych za pomocą funkcji:
{include file='header.tpl'}
Dostępne zmienne
Lista zmiennych dostępnych w każdym szablonie. Jeden szablon reprezentuje jedną akcję kontrolera.
- /scripts/basket/index.tpl - główny widok koszyka
- /scripts/basket/step2.tpl - forma zakupu (logowanie, rejestracja, jednorazowe)
- /scripts/basket/address.tpl - formularz danych do wysyłki/faktury
- /scripts/basket/step3.tpl - podsumowanie zakupów
- /scripts/basket/done.tpl - potwierdzenie zamówienia
- /scripts/basket/finished.tpl - potwierdzenie płatności po zamówieniu
- /scripts/categories/list.tpl - lista kategorii
- /scripts/contact/index.tpl - formularz kontaktowy
- /scripts/index/index.tpl - strona główna
- /scripts/info/index.tpl - strona informacyjna
- /scripts/links/index.tpl - lista partnerów (wymiana linkami)
- /scripts/login/login.tpl - formularz logowania
- /scripts/login/passremind.tpl - przypomnienie hasła (krok 1.)
- /scripts/login/passremind2.tpl - przypomnienie hasła (krok 2.)
- /scripts/login/register.tpl - formularz rejestracyjny
- /scripts/news/index.tpl - strona z artykułem
- /scripts/news/list.tpl - lista artykułów
- /scripts/newsletter/unsign.tpl - formularz wypisania z newslettera
- /scripts/off/index.tpl - strona zastępcza dla wyłączonego sklepu
- /scripts/panel/address-edit.tpl - edycja i dodawanie adresu
- /scripts/panel/address.tpl - lista adresów użytkownika
- /scripts/panel/comments.tpl - lista komentarzy do produktów
- /scripts/panel/edit.tpl - edycja podstawowych danych konta
- /scripts/panel/favourites.tpl - lista produktów w przechowalni
- /scripts/panel/index.tpl - strona główna panelu klienta
- /scripts/panel/orders.tpl - lista zamówień
- /scripts/panel/order.tpl - szczegóły zamówień
- /scripts/panel/password.tpl - formularz zmiany hasła
- /scripts/panel/payment.tpl - formularz opłacenia zamówienia
- /scripts/plugin/execute.tpl - plik pomocniczy dla pluginów
- /scripts/pricelist/html.tpl - lista cen produktów w formacie HTML
- /scripts/product/index.tpl - strona główna produktu
- /scripts/product/list.tpl - lista produktów
- /scripts/product/mailfriend.tpl - formularz polecenia produktu
- /scripts/product/search.tpl - formularz zaawansowanego wyszukiwania
- /boxes/Banner/box.tpl - moduł bannerów
- /boxes/Basket/box.tpl - moduł koszyka (stan)
- /boxes/Bestseller/box.tpl - moduł najczęściej sprzedawanych produktów
- /boxes/Currencies/box.tpl - moduł listy walut
- /boxes/Custom/box.tpl - moduł użytkownika (uniwersalny)
- /boxes/LanguageList/box.tpl - moduł listy języków
- /boxes/Login/box.tpl - moduł logowania
- /boxes/Menu/box.tpl - moduł menu
- /boxes/NewProducts/box.tpl - moduł nowych produktów
- /boxes/News/box.tpl - lista artykułów
- /boxes/Newsletter/box.tpl - moduł zapisania do newslettera
- /boxes/Polls/box.tpl - moduł sond
- /boxes/Pricelist/box.tpl - moduł z linkami do cenników
- /boxes/Producers/box.tpl - moduł z listą producentów
- /boxes/ProductFilter/box.tpl - moduł z filtrem produktów
- /boxes/ProductOfTheDay/box.tpl - moduł produktów dnia
- /boxes/Recent/box.tpl - moduł ostatnio oglądanych produktów
- /boxes/Search/box.tpl - moduł z formularzem szybkiego wyszukiwania
- /boxes/SpecialOffer/box.tpl - moduł z produktami w promocji
- /boxes/UsersOnline/box.tpl - moduł ze statystykami
Pliki użytkownika
Poprzez panel administracyjny można edytować zawartość dwóch plików użytkownika:
- styles/user.css
- js/user.js
W pliku header.tpl znajduje się warunek, który umieszcza ww. pliki w sekcji <head> o ile tylko nie są puste. Ponieważ wstawiane są jako ostatnie, umożliwia to łatwą modyfikację wyglądu i zachowania strony, bez ingerencji w wewnętrzne pliki stylu.
Szablony
Program korzysta z systemu szablonów Smarty w wersji 2.x. Poza ogólnodostępnymi funkcjami, dostępne są tzw. helpery:
Cache
O ile opcja PAGE_CACHE nie jest wyłączona w pliku /environment/config/settings.ini, wszystkie style graficzne po wygenerowaniu ostatecznego kodu HTML, zapisywane są w cache. Modyfikacja zachowania cache odbywa się poprzez helper {dynamic} oraz parametry {include}.
Pełny opis funkcjonalności znajduje się w dziale Mechanizmy wewnętrzne.
Konfiguracja
W pliku settings.ini znajduje się konfiguracja stylu, składa się on z sekcji:
Spis plików
W głównym folderze każdego stylu musi znajdować się plik files.ini. Służy on do listowania plików w panelu administracyjnym (Zaawansowana edycja) oraz „oceny”, czy styl został zmodyfikowany. Składnia pliku files.ini.
Arkusz stylów
Jedynym wymaganiem co do CSS, na którym opiera się kod klasy Shop, jest istnienie klasy none, która wymusza niewidoczność obiektu.
.none { display: none !important; }
Reszta implementacji zależy tylko od administratora.
JavaScript
Style korzystają z otwartego frameworka MooTools w wersji 1.3 oraz galerii zdjęć Milkbox. Wymagane moduły MooTools:
- Core
- More/Element.Measure
- More/Assets
- More/Array.Extras
- More/Fx.Scroll
Większość funkcjonalności została umieszczona w klasie Shop. Dodatkowo każdy styl dysponuje własnym skryptem /js/main.js, który uzupełnia zachowanie klasy, a następnie - w zdarzeniu domready - tworzy jej instancję.
- Specyfikacja klasy Shop
- Opis skryptu main.js na podstawie stylu
- Frazy językowe Shop.lang{}