PSzablony tematyczne i Smarty
Spis treści
/*<![CDATA[*/ div.rbtoc1597140227957 {padding: 0px;} div.rbtoc1597140227957 ul {list-style: disc;margin-left: 0px;} div.rbtoc1597140227957 li {margin-left: 0px;padding-left: 0px;} /*]]>*/
Szablony tematyczne i Smarty
Smarty jest silnikiem szablonu PHP który jest wytrzymały,szybki, łatwy w nauce i użyciu, i ma czystą i kompaktową składnie do projektowania dedykowanego. Pomaga zbudować znacznie prostszy kod HTML i działa poprzez gromadzenie, a następnie buforowania każdej strony.
Możesz się dowiedzieć więcej wchodząc na oficjalną stronę: http://www.smarty.net/
Podstawowe zasady
Ograniczniki
Ograniczniki umozliwiają silnikowi szablonu "rozpoznać" Smarty zwraca się wewnątrz szablonu. Ograniczniki wykorzystywane przez Smarty są w nawiasach klamrowych The delimiters used by Smarty: {smarty_call}
Jeśli trzeba użyć rzeczywistych nawiasów klamrowych w kodzie szablonu Smarty posiada specjalne połączenie dla Ciebie: {redelim}
na lewej nawias klamrowy ({
), i {rdelim}
dla prawej nawias klamrowy (}
).
Komentarze
Jak w przypadku każdego języka programowania lub skryptów, można umieścić komentarze w kodzie szablonu, a silnik szablonu nie będzie ich analizowac.
Komentarze używają regularnych ograniczników, wraz z otwieraniem i zamykaniem * znaków.
Zmienne
Tak jak w PHP, zmienne są reprezentowane przez znak dolara, po którym następuje nazwa zmiennej. Umieszczenie zmiennej bezpośrednio w ograniczniku Smarty oznacza, że chcesz wyświetlić zmienną taką jaka jest.
Na przykład, {$foo}
Smarty jest odpowiednikiem PHP echo $foo;
.
Można również stosować moyfikatory do zmiennych:
Możesz uzyskać pełną listę dostępnych modyfikatorów na oficjalnej stronie internetowej: http://www.smarty.net/docs/en/language.modifiers.tpl
Tryby warunkowe
Smarty ma warunkowy system if
/ else
/ elseif
:
Możesz się dowiedzieć więcej o różnych trybach warunkowych na oficjalnej stronie: http://www.smarty.net/docsv2/en/language.function.if.tpl
Pętle
Smarty obsługuje dwie pętle: section
i foreach
. Można użyć iteratorów, a nawet trybu warunkowego foreachelse
:
Możesz dowiedzieć się więcej o każdej pętli na oficjalnych stronach internetowych:
Włączanie pliku
Można łatwo dołączyć plik szablonu do innego używając funkcji include
, extends
or block
. Dzięki dziedziczeniu, włączenie pliku może mieć wpływ na wiele szablonów naraz.
Metoda przypisania używa dwóch obowiązkowych argumentów:
file
: Uwględnia nazwę plikiu szablonu.assign
: Nazwa zmiennej wyjścia zostanie przypisana.
Oto kilka przykładów:
Demonstracja dziedziczenia z extends
i block
:
Ten ostatni przykład używa funkcji block
, który jest przeznaczony do określenia nazwy powierzchni żródła matrycy do matrycy dziedziczenia.
Można się dowiedzieć wiecej na temat dziedziczenia szablonów i każdej funkcji umieszczenia na swojej stronie na oficjalnej stronie:
Funkcja debugowania
Kompletny zestaw procesów wewnętrznych z szablonu Smarty mogą być wyświetlane, gdy wyświetlana jest strona.
Podczas rozwoju tematycznego, można to zrobić dla każdego ładowania strony poprzez edycje pliku /config/smarty.config.inc.php
i edycje $smarty->debugging
wartości:
Gdy motyw jest na stronie produkcyjnej, można włączyć funkcje debugowania poprzez dodanie dyrektywy{DEBUG}
w pliku szablonu.
Można także zarządzać funkcją debugowania bezpośrednio z PrestaShop w menu "Paramenty Zaawansowane" na sronie "Konserwacja" zmień opcje "Konsola Debugownia" do swoich upodobań,
Możesz dowiedzieć się więcej o tej funkcji debug
na oficjalnej stronie: http://www.smarty.net/docs/en/language.function.debug.tpl
Zaawansowane zastosowania
Zrzuty
Funkcja capture
umożliwia pobieranie danych wyjściowych szablonu bez wyświetlania go. Na przykład: {capture name="myCapture'} ... {/capture}
W celu korzystania z takich materiałów należy przywołać $smarty
super zmienna: $smarty.capture.myCapture
Nie zapomnij sprawdzić chwytu przed użyciem go:
{if $smarty.capture.<name>}
or {if isset($smarty.capture.<name>}
Funkcja przechwytywania ma możliwość automatycznego przypisania zmiennej:
Możesz dowiedzieć się więcej o funkcji capture
na oficjalnej stronie: http://www.smarty.net/docs/en/language.function.capture.tpl
Przypisanie zmiennych
Możliwe jest przypisanie zmiennej do pliku szablonu (widok) używając funkcję assign
:
Możesz dowiedzieć się więcej o funkcji assign
na oficjalnej stronie: http://www.smarty.net/docs/en/language.function.assign.tpl
Zmienna $smarty
$smarty
jest to tak zwana super zmienna. To sprawia, że można pobrać kilka przydatnych informacji:
capture
wartości:$smarty.capture.myVariable
wartości GET:
{$smarty.get.<name>}
wartości POST:
{$smarty.post.<name>}
aktualny timestamp:
{$smarty.now}
, lub niestandardowego formatowania{$smarty.now|date_format:'%d-%m-%Y %H:%M:%S'}
stałe PHP:
{$smarty.const.<constant name>}
w Smarty 2, $smarty
mogą być stosowane foreach
:
Gdy pętla jest zdefiniowana jako: {foreach from=$myarray key="mykey" item="myitem"}
...można wykonać wezwanie $
smarty.foreach.name
.property
Od PrestaShop 1.5 zaleca się polegać tylko na składni Smarty 3 z szablonu PrestaShop, W związku z tym $smarty.foreach.varName.property
wezwanie call musi być zastapiony przez $varName@property
równoważne wezwanie.
Możesz dowiedzieć więcej o zmiennej $smarty
na oficjalnej stronie: http://www.smarty.net/docs/en/language.variables.smarty.tpl
Literówki
Etykieta literal
umożliwia blokowi danych do wykorzystanie jej dosłownie, bez Smarty próbuje je interpretować:
Możesz dowiedzieć się więcej na temat funkcji dosłownej na oficjalnej stronie: http://www.smarty.net/docs/en/language.function.literal.tpl
Funkcje
Funkcje Smarty nie używa $
prefix, podobnie jak zmienne: {debug}
, {rdelim}
, {ldelim}
, ...
Mogą one zaakceptować argumenty: {include file='<name of the file>'}
Struktura wywołania funkcji jest więc: {nameOfTheFunction arg1='...' arg2='...'}
Nie można użyć modyfikatorów na funkcjach, na przykład {nameOfTheFunction arg1='...' |lower}
nie będzie działać zgodnie z oczekiwaniami. .
Możesz dowiedzieć sie więcej o funkcjach Smarty na oficjalnej stronie:
Wtyczki
Wtyczki Smarty umożliwia łatwe rozszerzenie standardowego zachowania. Są one zapisane w PHP. Na przykład, PrestaShop ma wtyczki Smarty, które tworzą specyficzną funkcje obsługiwania tłumaczeń: {l}
Po pierwsze w temacie:
i w module (nawet jeśli jest nadpisany!) And in a module (even if overridden!):
Możesz dowiedzieć się więcej o wtyczkach Smarty na oficjalnej stronie: http://www.smarty.net/docs/en/plugins.tpl
Smarty niemile widziane z PrestaShop
Kilka rzeczy które trzeba wyraźnie unikać przy użyciu Smarty:
Nie rób stałego bezpośredniego połączenia PrestaShop. Bardziej szczegółowo nawet nie używaj
{$smarty.const._DB_PASSWD_}
, z oczywistych powodów..Nie zastępuj przypisanych zmiennych PrestaShop.
Nie twórz niepotrzebnie kodu trudnego do odczytania. Na przykład powstrzymując się od jakichkolwiek zawołań
include
od dołączonego już od wewnątrz pliku.Nie rób bezpośredniego połączenia PHP. Na przykład nie należy używać
{php} // PHP code {/php}
Last updated