Szablony
WAŻNE! Poniższa treść przeznaczona jest tylko dla zaawansowanych użytkowników i nie jest objęta wsparciem technicznym. Wszelkie informacje w tym temacie znajdują się w artykule: Shoper Developers.
Z jakich szablonów korzysta sklep Shoper?
Szablony sklepów na platformie Shoper korzystają z systemu Smarty w wersji 2.x. Poza ogólnodostępnymi funkcjami, dostępne są tzw. helpery:
- {baseDir} – zwraca absolutną ścieżkę [bez domeny] pod jaką znajduje się sklep. Parametry:
- nonempty = 1 [opcjonalny] – zwraca ”/” zamiast pustego stringu, jeżeli sklep nie znajduje się w żadnym z podfolderów.
Przykład:
<
<a href="http://december.com/html/4/element/a.html">a</a>
<span class="kw3">href</span>="{baseDir nonempty=1}">Strona główna</
<a href="http://december.com/html/4/element/a.html">a</a>>
- {box} – wstawia do kodu szablon modułu (box). Działanie podobne do: {include}, ale m.in. z obsługą cache. Parametry:
- file (string) [obowiązkowy] – relatywna ścieżka do pliku szablonu,
- box (string) [obowiązkowy] – nazwa modułu.
Przykład:
{box file="../boxes/Menu/box.tpl" box="Menu"}
- {country} – zwraca nazwę kraju w aktualnym języku sesji. Parametry:
- code (string) [obowiązkowy] – dwuliterowy kod kraju.
Przykład:
{country code="PL"}
- {currency} – zwraca cenę w aktualnej walucie sesji. Parametry:
- value (float) [obowiązkowy] – wartość wejściowa, jeżeli waluta sesji jest inna niż waluta domyślna sklepu (wejściowa), nastąpi automatyczne przeliczenie w oparciu o stawki w sklepie,
- ceil (int) [opcjonalny] – ilość miejsc po przecinku, do zaokrąglenia,
- float (bool) [opcjonalny] – zwracany wynik rzutowany jest na float (pełna dokładność),
- float_currency (bool) [opcjonalny] – zwracany jest string bez formatowania walutowego (jak float), zaokrąglony do dwóch miejsc po przecinku.
Przykład:
{currency float_currency=1 value=13.5}
- {date} – zwraca datę w formacie odpowiednim do danego języka sesji. Parametry:
- value (string) [obowiązkowy] – data wejściowa (wszystkie formaty obsługiwane przez: Zend_Date),
- format (string) [opcjonalny] – wymuszenie własnego formatu.
Przykład:
{date value=$x format='Zend_Date::DATE_MEDIUM'}
- {dynamic}.
Przykład:
{dynamic} <
<a href="http://december.com/html/4/element/b.html">b</a>>{$user->user->getName()|escape}</
<a href="http://december.com/html/4/element/b.html">b</a>> {/dynamic}
- {float} – zwraca liczbę zmiennoprzecinkową w formatowaniu języka sesji (odstępy, separator dziesiętny, etc.). Parametry:
- value (float) [obowiązkowy] – wartość wejściowa,
- precision (int) [opcjonalny] – zaokrąglenie,
- useSign (bool) [opcjonalny] – wymuś znak (+),
- noformat (bool) [opcjonalny] – bez formatowania (używane np. tylko do zaokrąglania),
- trim (bool) [opcjonalny] – usuń zera oraz ewentualnie znak dziesiętny (jeżeli zbędny).
Przykład:
{float value=13.45 precision=1 useSign=true trim=true}
- {imageUrl} – zwraca ścieżkę do zdjęcia odpowiednio zdjęcia lub jego tymczasowej, zapisanej wersji (cache). Parametry:
- image (string) [obowiązkowy] – nazwa pliku,
- width (int) [opcjonalny] – szerokość w pikselach,
- height (int) [opcjonalny] – wysokość w pikselach,
- type (string) [opcjonalny] – typ (ścieżka), domyślnie: productGfx,
- overlay (bool) [opcjonalny] – w przypadku braku zdjęcia (np. dla produktu), użyj: pliku __overlay.jpg.
Dopuszczalne wartości dla: type znajdują się w sekcji: [userdata] pliku /environment/config/system_paths.ini.
Przykład:
<
<a href="http://december.com/html/4/element/a.html">a</a>
<span class="kw3">rel</span>="milkbox:gall"
<span class="kw3">href</span>="{imageUrl type='productGfx' image=$img->unic_name}">...</
<a href="http://december.com/html/4/element/a.html">a</a>>
- {include} – helper {include} jest standardowo zawarty w Smarty. Aplikacja dodaje do niego dodatkowe parametry, które pozwalają wymusić zapisanie w cache. Parametry:
- file (string) [obowiązkowy] – relatywna ścieżka do pliku szablonu,
- force_include_cache (bool) [opcjonalny] – wymuś zapisanie wyniku szablonu w cache,
- force_include_cache_tags (string) [opcjonalny] – oddzielona przecinkami lista klas, których modyfikacja ma spowodować usunięcie wyniku strony z cache.
Przykład:
{include file='footer.tpl' force_include_cache=1 force_include_cache_tags='Logic_SkinFooterGroupList,Logic_SkinFooterLinkList,Logic_SkinFooterGroup,Logic_SkinFooterLink'}
- {lang} – zwraca aktualny język sesji. Parametry:
- key (string) [obowiązkowy] – typ zwracanej wartości, dopuszczalne wartości: id | short | long.
Przykład:
<
<a href="http://december.com/html/4/element/script.html">script</a>
<span class="kw3">type</span>="text/javascript"
<span class="kw3">src</span>="{baseDir}/public/scripts/lang/{lang key='long'}.js"></
<a href="http://december.com/html/4/element/script.html">script</a>>
- {plugin} – parametry:
- module (string) [obowiązkowy] – moduł aplikacji,
- template (string) [obowiązkowy] – nazwa modyfikatora (szablonu).
Przykład:
{plugin module=shop template=basket-zagiel}
- {route} – zwraca ścieżkę do podstrony sklepu. Parametry:
- key (string) [obowiązkowy] – identyfikator ścieżki,
- function (string) [opcjonalny] – szczególny typ wywołania (np. dla produktu), używane dla modyfikowalnych linków SEO, dopuszczalne wartości: product | category | producer | news | infopage.
Pozostałe parametry zostają przekazane do klasy: System_Router.
Klucze ścieżek znajdują się w pliku: /environment/config/routers.ini. Wszystkie parametry podane w adresie route muszą zostać podane.
W przypadku użycia parametru: function, jako key należy podać: identyfikator (ID) danego produktu, producenta, itp.
Przykład:
Usunięcie produktu z koszyka:
<
<a href="http://december.com/html/4/element/a.html">a</a>
<span class="kw3">href</span>="{route key='basketRemove' basketId=$basket_product->getIdentifier()}" title="{translate key='Remove product from your basket'}">...</
<a href="http://december.com/html/4/element/a.html">a</a>>
Link do strony produktu:
<
<a href="http://december.com/html/4/element/a.html">a</a>
<span class="kw3">href</span>="{route function='product' key=$product->getIdentifier() productName=$product->translation->name productId=$product->getIdentifier()}" title="{$product->translation->name|escape}">...</
<a href="http://december.com/html/4/element/a.html">a</a>>
- {translate} – zwraca frazę przetłumaczoną na dany język sesji. W przypadku nieznalezienia tłumaczenia, zwraca frazę wejściową. Parametry:
- key (string) [obowiązkowy] – fraza wejściowa,
- format (string) [opcjonalny] – format, dopuszczalne wartości: currency | date | int.
Wszystkie pozostałe parametry zostają przekazane, po przetłumaczeniu frazy, do funkcji: vsprintf().
Przykład:
<
<a href="http://december.com/html/4/element/span.html">span</a>>{translate key='Order history (%d)' p1=$orders_count}</
<a href="http://december.com/html/4/element/span.html">span</a>>
Edycja szablonu przez protokół WebDAV
Od wersji 5.8.19 istnieje możliwość edycji szablonów graficznych sklepów abonamentowych za pomocą lokalnych edytorów kodu (np. Note++, Sublime etc.) wykorzystując protokół WebDAV.
Edycja szablonu przez protokół WebDAV możliwa jest tylko dla jego kopii. W oryginalnym szablonie nie ma możliwości edycji zaawansowanych plików skórki.
Możliwość edycji kodu szablonu graficznego przez WebDAV przyspiesza i usprawnia pracę developera, podczas wdrażania indywidualnych modyfikacji szablonów w sklepach SaaS.
- Więcej informacji: jak używać protokół WebDAV do edycji szablonów?
Zaawansowane modyfikacje i rozwiązania programistyczne w szablonie Storefront
Shoper Visual Editor to nie tylko intuicyjne narzędzie pozwalające na projektowanie szablonu sklepu jak z kloców, ale jednocześnie rozbudowana aplikacja pozwalająca na wprowadzanie zaawansowanych modyfikacji i nowoczesnych rozwiązań programistycznych.
- Więcej informacji: jakie modyfikacje można wprowadzić w szablonie Storefront?
Warto zapamiętać!
- Jakie funkcje realizują poszczególne helpery w szablonach sklepu Shoper?
- Jak zmieniać pliki szablonu sklepu przez WebDAV?
- Jak wdrożyć zaawansowane zmiany w szablonie Storefront?