PSzablony tematyczne i Smarty
Last updated
Was this helpful?
Last updated
Was this helpful?
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;} /*]]>*/
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.
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 (}
).
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.
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:
Smarty ma warunkowy system if
/ else
/ elseif
:
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:
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:
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ń,
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żliwe jest przypisanie zmiennej do pliku szablonu (widok) używając funkcję assign
:
$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
:
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.
Etykieta literal
umożliwia blokowi danych do wykorzystanie jej dosłownie, bez Smarty próbuje je interpretować:
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 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!):
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}
Możesz się dowiedzieć więcej wchodząc na oficjalną stronę:
Możesz uzyskać pełną listę dostępnych modyfikatorów na oficjalnej stronie internetowej:
Możesz się dowiedzieć więcej o różnych trybach warunkowych na oficjalnej stronie:
Możesz dowiedzieć się więcej o tej funkcji debug
na oficjalnej stronie:
Możesz dowiedzieć się więcej o funkcji capture
na oficjalnej stronie:
Możesz dowiedzieć się więcej o funkcji assign
na oficjalnej stronie:
Gdy pętla jest zdefiniowana jako: {foreach from=$myarray key="mykey" item="myitem"}
...można wykonać wezwanie $
.property
Możesz dowiedzieć więcej o zmiennej $smarty
na oficjalnej stronie:
Możesz dowiedzieć się więcej na temat funkcji dosłownej na oficjalnej stronie:
Możesz dowiedzieć się więcej o wtyczkach Smarty na oficjalnej stronie: