Organizacja szablonu

Zanurzmy się w organizacje szablonu: foldery, pliki, do których należą i jak je poprawnie obsługiwać.

Foldery

To są główne foldery motywu PrestaShp:

Nastepujące foldery nie są bezpośrednio związane tematycznie, ale mają pomóc upewnić się, że cała funkcja PrestaShop ma konstrukcje któa jest zgodna z szablonem:

Folder root zawiera tylko pliki TPL, a także pliki miniatur preview.jpg .

Pliki miniatur

Plik  preview.jpg  w katologu głównym w folderze szablonu jest miniaturą która jest używana przez selektor motywów w panelu administracyjnym PrestaShop.

Służy ona jako wizualne przypomienie tego co jest tematem, a zatem należy zrobić zrzut ekranu zamiast loga firmy.

To może mieć dowolny rozmiar - domyślny motyw ma 180'445 pikseli.

Musi to być plik JPEG.

CSS i Sass

CSS

Pliki szablonu CSS są zlokalizowane w folderze /css.

Zaleca się, aby mieć wspólny arkusz stylów dla globalnych reguł CSS: global.css.
Następnie każdy regulator powinien mieć własny plik CSS na przykład, product.css dla strony produktu.

Sass / Compass

Pliki Sass i Compass są opcjonalne: Nie trzeba używać tych narzędzi to tworzenia plików CSS dla motywu panelu administracyjnego.

Jeśli używasz Sass i Compass radzimy umieścić pliki żródłowe.scss w temacie /sass, aby inni programiści mogli mieć dostep do motywu i łatwiej mogli go przerobić.

Stamtąd możesz generować pliki CSS w folderach/css z plikami Sass w folderze /sass !

Trzcionka

Folder/font jest opcjonalny: Zawiera trzcionki które używa się do tworzenia motywu.

Na przykład domyslny motyw PrestaShop używa trzcionkę Font Awesome (http://fortawesome.github.io/Font-Awesome/) dla responsywnych ikon i w związku z tym ma następujące pliki z folderu /font:

Jeśli nie tworzysz swojego szablonu z konkretnej trzcionki, lub zestawu ikon możesz pominąć ten folder.

Obraz

Obrazy związane tematycznie powinny być przechowywane w folderze /img.

Można utworzyć podfolder dla lepszej organizacji. Na przykład, domyślny motyw ma następujące podfoldery:

Można stworzyć więcej jeśli jest taka potrzeba.

JavaScript

Pliki JavaScript mają być przechowywane w folderze /js .

W przeciwieństwie do plików CSS, zalecamy, aby nie mieć współnego pliku/globalnego JavaScript, ani nie powinień być pojedynczy plik za kontrolera.

Język

Wszystkie pliki z tłumaczeniami powinny być przechowywane w folderze /lang.

Pliki powinny się nazywać po ich ISO 3166-1 alpha-2 kod z małej litery na przykład, fr.php.

Pliki te pownny być generowane przez zintegrowane narzędzie do tłumaczenia PrestaShop (znajduje się w menu Lokalizacja/Tłumaczenia).

Szablon mobilny

Domyślny motyw PrestaShop 1.6 ijest w pełni responsywny, co oznacza, że dostosowuje się do każdego rodzaju ekranu. .

Twój własny motyw graficzny powinien być także responsywny! Jeśli nie jest, to powinieneś stworzyć alternatywny szablon ukierunkowany na mniejsze ekrany - albo użyj/dostosować jeden z dostepnych domyślnych szablonów PrestaShop 1.5.

PrestaShop posiada w panelu adminstracyjnym opcje szablonu mobilnego: Na stronie Preferencje/Motywy, "Mobilne" w zakładce "Twój aktualny szablon" sekcja daje Tobie następujące możliwości: Wyłącz opcje, lub włącz ją dla smarfonów, tabletów lub obydwu z nich.

Gdy ta opcja jest włączona, to szablon który jest wyświetlany na telefonie użytkownika nie jest domyślnym szablonem pulpitu, ale alternatywnym szablonem znajdującym się w folderze/mobile: To lepiej nadaje się do niewielkich rozmiarów ekranu, a zatem klienci docenią różnice.

W istocie zawartość folderu/mobile to kolejny kompletny szablon PrestaShop: Ma taką samą ogólną strukturę pliku z własnym /css, /img i folderami /js, a także z własnymi plikami szablonów.

Pliki

Pliki Szablonów

PrestaShop używa silnika szablonu Smarty dla swojego systemu szablonów. Smarty umożliwia oddzielenie treści (informacje są prezentowane) od prezentacji (sposób w jaki informacje są wyświetlane). Plik szablonu łączy obydwa w pełny utworzony plik HTML.

Plik szablonu jest zbudowany z dwóch rodzajów bloków kodu:

Zauważ, że można generować więcej niż tylko strony HTML ze Smarty: Pliki XML, pliki tekstu, pliki email, itd.

Zobacz na przykład stałe i zmienne bloki w 404.tpl, kiedy wyświetlany plik szablonu PrestaShop musi wysłać komunikat o błędzie 404 Nie znaleziono strony:

<div>
 <div>
 <img src="{$img_dir}/img-404.jpg" alt="{l s='Page not found'}" />
 </div>
 
 <h1>{l s='This page is not available'}</h1>
 <p>
 {l s='We\'re sorry, but the Web address you\'ve entered is no longer available.'}
 </p>
 
 <h3>{l s='To find a product, please type its name in the field below.'}</h3>
 <form action="{$link->getPageLink('search')}" method="post">
 <div>
 <label for="search_query">{l s='Search our product catalog:'}</label>
 <input id="search_query" name="search_query" type="text" />
 <button type="submit" name="Submit" value="OK">{l s='Ok'}</button>
 </div>
 </form>
 
 <div>
 <a href="{$base_dir}" title="{l s='Home'}">{l s='Home page'}</a>
 </div>
</div>

(to jest uprostrzona wersja szblonu pliku, którą możesz znaleźć tutaj: https://github.com/PrestaShop/PrestaShop/blob/1.6/themes/default-bootstrap/404.tpl)

Osoby zaznajomione z HTML(które powinny być jeśli zamierzają zbudować szablon PrestaShop) natychmiast zauważą pewne{$tag_name} tagi w zwykłej zawartości HTML. Są to zmienne PrestaShop Smarty.

Istnieje tutaj już kilka interesujących zmiennych:

PrestaShop używa silnik Smarty 3. Możesz się dowiedzieć więcej o Smarty i jego składni tutaj: http://www.smarty.net/docs/en/smarty.for.designers.tpl.

Arkusze stylów

Pliku szablonów renderują do plików HTML, bez stylizacji (z wyjątkiem stylów inline, jeśli w ogóle), co oznacza, że bloki treści są wyświetlane jak są szkielety, jeden blok po drugim. To gdzie arkusze stylów (pliki CSS) są użyteczne: Są tutaj po to aby przedefinowac sposób w jaki bloki zawartości się wyświetlają, czasami nawet całe rozmieszczenie części strony, aby wyglądała lepiej. Czcionki, margines, kolumny i wiele innych aspektów projektowania można komponować za pomocą CSS.

Można tworzyć i edytować pliki CSS w dowolny sposób, upewniając się, że są przechowywane w folderze /css.
Zaleca się aby mieć wspólny arkusz stylów dla globalnych reguł CSS: global.css.
Nastepnie każdy z kontrolerów powinen mieć swój własny plik CSS: na przykład. product.css dla strony produktu.

Jeśli zaczynasz z plików arkuszy stylów domyślnego motywu, Powinieneś raczej zmodyfikować odpowiednie pliki w folderze Sass /sass, nastepnie wygenerować nowe pliki CSS i przechowywać go folderze/css. Zapewnia to spójność plików CSS i Sass.

Oto przykład pliku Sass:

.primary_block {
  margin-bottom: 40px;
}
.top-hr{
  background: $top-line-color;
  height: 5px;
  margin: 2px 0 31px;
}

...która zostanie wygenrowana w tych liniach CSS:

/* line 6, ../sass/product.scss */
.primary_block {
  margin-bottom: 40px;
}
/* line 9, ../sass/product.scss */
.top-hr {
  background: #c4c4c4;
  height: 5px;
  margin: 2px 0 31px;
}

Jak widzisz zmienna $top-line-color  w pliku Sass przemienia się w wartość #c4c4c4 w renderowanym pliku CSS. Zmienne Sass w domyślnym szablonie PrestaShop 1.6 są przechowywane w pliku _theme_variables.scss.

Pliki obrazów

Obrazy używane przez szablon powinny być przechowywane w folderze /img (i podfolderze dla szczególnych przypadków, na przykład /img/icon dla ikon Gif /img/jquery dla szczególnych obrazów jQuery).
Możesz korzystać z prawie każdego rodzaju obrazu jaki chcesz podczas tworzenia projektu.

Pod względem ikon PrestaShop używa zestawu czcionek Font Awesome przechowywanym w folderze /font. Używanie czcionki dla ikon ma wiele zalet:

Narzędzia

Tak na marginesie trzeba mieć solidne IDE (i jego dobrą znajomość) w celu szybkiego znalezienia poszukiwanego pliku takim narzędziem jak grep.

Należy również zapoznać się z narzędziami pre-kompilacji, aby ułatwić sobie życie.