Szablony

Program korzysta z systemu szablonów
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="{baseDir nonempty=1}">Strona główna</
                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}     <
                b>{$user->user->getName()|escape}</
                b>   {/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
                rel="milkbox:gall"
                href="{imageUrl type='productGfx' image=$img->unic_name}">...</
                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:

    <
                script
                type="text/javascript"
                src="{baseDir}/public/scripts/lang/{lang key='long'}.js"></
                script>
    
  • {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="{route key='basketRemove' basketId=$basket_product->getIdentifier()}" title="{translate key='Remove product from your basket'}">...</
                a>
    

    Link do strony produktu:

    <
                a
                href="{route function='product' key=$product->getIdentifier() productName=$product->translation->name productId=$product->getIdentifier()}" title="{$product->translation->name|escape}">...</
                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:

    <
                span>{translate key='Order history (%d)' p1=$orders_count}</
                span>
    
Czy artykuł okazał się pomocny?
TAK
NIE

W jaki sposób możemy poprawić jakość tego artykułu?

+ = Udowodnij, że nie jesteś robotem 🙂