System szablonów Smarty - PHP - ściągawka

Smarty - system szablonów odzielający kod html od kodu języka php. Aktualnie używany w sklepie internetowym PrestaShop. Jest jednym z najpopularniejszych silników, jakiś czas temu został wyparty przez Twig, ale dalej jest w czołówce, aktualnie (rok 2022) na miejscu drugim.

Zalety:

  • prostota
  • przejrzystość kodu html (a co za tym idzie także php) - taki kod łatwiej się czyta
  • spora ilość udogodnień w postaci funkcji, modyfikatorów, pętli które zastępują możliwości PHP - odciążają złożoność kodu PHP
  • niezwodność dzięki kolejnym wersjom biblioteki - smarty jest już od 2002 roku
  • ciągły rozwój - silnik przystosowywany jest do najnowszych wersji PHP (aktualnie do 8.1)
  • smarty jest w 100% darmowe, jest to projekt open source

Przykłady użycia Smarty i ściągawka często używanych kawałków kodu

zmienne
{assign var='nazwaPola' value='uprawnienie_$nazwaPola'}
Reszta z dzielenia (np w co n-tym wierszu postów)
{if $smarty.foreach.NEWS.iteration % 3 eq 0}

{/if}

formatowanie liczby:
{$zmienna.cena|number_format:2:',':''}

Modyfikatory:
Zamiana znaków końca linii na tag BR:
{$zmienna|nl2br}

Przycięcie stringa do N znaków:
{$imie|truncate:N:'':TRUE}

smarty.foreach.nazwapetli.index % 3==0 - dla co trzeciego wiersza łącznie z początkiem
błędne:
smarty.foreach.nazwapetli.iteration % 3==0 

Ilość elementów w tablicy:
{$myarray|@count}

Skrócenie daty / formatowanie zmiennej MySQL datetime do 2019-05-01 13:23
{$data|date_format:'%Y-%m-%d %H:%M'}

Debugowanie zmiennej
{$klucze_obce|@print_r}

Przypisanie wskaźnika do zmiennej (Smarty wersja 3)
$smarty->assignByRef('Name', $myname);// w wersji 2 assign_by_ref