Nette Documentation Preview

syntax
Latte Filtreleri
****************
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Latte Filtreleri

Şablonlarda, verileri nihai biçimine ayarlamaya veya yeniden biçimlendirmeye yardımcı olan fonksiyonları kullanabiliriz. Bunlara filtreler diyoruz.

Dönüşüm
batch doğrusal verilerin tabloya dökümü
breakLines Satır sonlarına HTML satır sonu ekler
bytes boyutu bayt cinsinden biçimlendirir
clamp değeri belirtilen aralıkla sınırlar
dataStream Data URI protokolü için dönüştürme
date tarih ve saati biçimlendirir
explode karakter dizisini ayırıcıya göre diziye böler
first dizinin ilk öğesini veya karakter dizisinin ilk karakterini döndürür
group verileri çeşitli kriterlere göre gruplandırır
implode diziyi bir karakter dizisi olarak birleştirir
indent metni soldan belirtilen sayıda sekme kadar girintiler
join diziyi bir karakter dizisi olarak birleştirir
last dizinin son öğesini veya karakter dizisinin son karakterini döndürür
length karakter dizisinin karakter cinsinden veya dizinin uzunluğunu döndürür
localDate tarih ve saati yerel ayara göre biçimlendirir
number sayıyı biçimlendirir
padLeft karakter dizisini soldan istenen uzunluğa tamamlar
padRight karakter dizisini sağdan istenen uzunluğa tamamlar
random dizinin rastgele bir öğesini veya karakter dizisinin rastgele bir karakterini döndürür
repeat karakter dizisini tekrarlar
replace aranan karakter dizisinin geçtiği yerleri değiştirir
replaceRE düzenli ifadeye göre geçtiği yerleri değiştirir
reverse UTF-8 karakter dizisini veya diziyi ters çevirir
slice dizinin veya karakter dizisinin bir bölümünü çıkarır
sort diziyi sıralar
spaceless boşlukları kaldırır, spaceless etiketi gibi
split karakter dizisini ayırıcıya göre diziye böler
strip boşlukları kaldırır
stripHtml HTML etiketlerini kaldırır ve HTML varlıklarını karakterlere dönüştürür
substr karakter dizisinin bir bölümünü döndürür
trim başlangıç ve sondaki boşlukları veya diğer karakterleri kaldırır
translate diğer dillere çeviri
truncate kelimeleri koruyarak uzunluğu kısaltır
webalize UTF-8 karakter dizisini URL'de kullanılan biçime dönüştürür
Harf Büyüklüğü
capitalize küçük harf, kelimelerin ilk harfi büyük
firstUpper ilk harfi büyük harfe dönüştürür
lower küçük harfe dönüştürür
upper büyük harfe dönüştürür
Yuvarlama
ceil sayıyı belirtilen hassasiyete göre yukarı yuvarlar
floor sayıyı belirtilen hassasiyete göre aşağı yuvarlar
round sayıyı belirtilen hassasiyete göre yuvarlar
Kaçış (Escaping)
escapeUrl URL'deki parametreyi kaçış işlemine tabi tutar
noescape değişkeni kaçış işlemi yapmadan yazdırır
query URL'de sorgu dizesi oluşturur

Ayrıca, Latte'nin bağlama duyarlı kaçış sayesinde kendisinin kullandığı ve sizin yazmanıza gerek olmayan HTML (escapeHtml ve escapeHtmlComment), XML (escapeXml), JavaScript (escapeJs), CSS (escapeCss) ve iCalendar (escapeICal) için kaçış filtreleri de vardır.

Güvenlik
checkUrl URL adresini tehlikeli girdilerden temizler
nocheck URL adresinin otomatik temizlenmesini önler

Latte src ve href niteliklerini otomatik olarak kontrol eder, bu nedenle checkUrl filtresini neredeyse hiç kullanmanız gerekmez.

Tüm varsayılan filtreler UTF-8 kodlamasındaki karakter dizileri için tasarlanmıştır.

Kullanım

Filtreler dikey çubuktan sonra yazılır (önünde bir boşluk olabilir):

<h1>{$heading|upper}</h1>

Filtreler (eski sürümlerde yardımcılar) zincirlenebilir ve ardından soldan sağa doğru sırayla uygulanır:

<h1>{$heading|lower|capitalize}</h1>

Parametreler, filtre adından sonra iki nokta üst üste veya virgülle ayrılarak girilir:

<h1>{$heading|truncate:20,''}</h1>

Filtreler bir ifadeye de uygulanabilir:

{var $name = ($title|upper) . ($subtitle|lower)}</h1>

Özel filtreler şu şekilde kaydedilebilir:

$latte = new Latte\Engine;
$latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));

Şablonda daha sonra şu şekilde çağrılır:

<p>{$text|shortify}</p>
<p>{$text|shortify:100}</p>

Filtreler

batch (int $length, mixed $item)array

Doğrusal verilerin tablo şeklinde listelenmesini kolaylaştıran bir filtre. Belirtilen sayıda öğe içeren bir dizi dizisi döndürür. İkinci bir parametre belirtirseniz, son satırdaki eksik öğeleri tamamlamak için kullanılır.

{var $items = ['a', 'b', 'c', 'd', 'e']}
<table>
{foreach ($items|batch: 3, 'Öğe yok') as $row}
	<tr>
		{foreach $row as $column}
			<td>{$column}</td>
		{/foreach}
	</tr>
{/foreach}
</table>

Yazdırır:

<table>
	<tr>
		<td>a</td>
		<td>b</td>
		<td>c</td>
	</tr>
	<tr>
		<td>d</td>
		<td>e</td>
		<td>Öğe yok</td>
	</tr>
</table>

Ayrıca bkz. group ve iterateWhile etiketi.

breakLines

Her yeni satır karakterinden önce HTML <br> etiketini ekler.

{var $s = "Metin & ile \n yeni satır"}
{$s|breakLines}    {* "Metin &amp; ile <br>\n yeni satır" yazdırır *}

bytes (int $precision=2)

Boyutu bayt cinsinden insan tarafından okunabilir bir biçime dönüştürür. Eğer yerel ayar ayarlanmışsa, ilgili ondalık ve binlik ayırıcılar kullanılır.

{$size|bytes}     0 B, 1.25 GB, …
{$size|bytes:0}   10 B, 1 GB, …

ceil (int $precision=0)

Sayıyı belirtilen hassasiyete göre yukarı yuvarlar.

{=3.4|ceil}         {* 4 yazdırır      *}
{=135.22|ceil:1}    {* 135.3 yazdırır  *}
{=135.22|ceil:3}    {* 135.22 yazdırır *}

Ayrıca bkz. floor, round.

capitalize

Kelimeler büyük harfle başlar, geri kalan tüm karakterler küçük harf olur. mbstring PHP eklentisini gerektirir.

{='LATTE severim'|capitalize}  {* 'Latte Severim' yazdırır *}

Ayrıca bkz. firstUpper, lower, upper.

checkUrl

URL adresinin temizlenmesini zorlar. Değişkenin bir web URL'si (yani HTTP/HTTPS protokolü) içerip içermediğini kontrol eder ve güvenlik riski oluşturabilecek bağlantıların yazdırılmasını önler.

{var $link = 'javascript:window.close()'}
<a data-href={$link|checkUrl}>kontrollü</a>
<a data-href={$link}>kontrolsüz</a>

Yazdırır:

<a data-href="">kontrollü</a>
<a data-href="javascript:window.close()">kontrolsüz</a>

Ayrıca bkz. nocheck.

clamp (int|float $min, int|float $max)

Değeri verilen kapsayıcı min ve max aralığıyla sınırlar.

{$level|clamp: 0, 255}

Ayrıca fonksiyon olarak da mevcuttur.

dataStream (string $mimetype=detect)

İçeriği data URI scheme'ye dönüştürür. Bu sayede harici dosyalara bağlantı vermeden HTML veya CSS'e resimler eklenebilir.

Değişkende bir resmimiz olsun $img = Image::fromFile('resim.gif'), o zaman

<img src={$img|dataStream}>

Örneğin şunu yazdırır:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==">

fileinfo PHP eklentisini gerektirir.

date (string $format)

Tarih ve saati date PHP fonksiyonu tarafından kullanılan maskeye göre biçimlendirir. Filtre, tarihi UNIX zaman damgası, karakter dizisi veya DateTimeInterface türünde bir nesne olarak kabul eder.

{$today|date:'j. n. Y'}

Ayrıca bkz. localDate.

escapeUrl

Değişkeni URL'de parametre olarak kullanılmak üzere kaçış işlemine tabi tutar.

<a href="http://example.com/{$name|escapeUrl}">{$name}</a>

Ayrıca bkz. query.

explode (string $separator='')

Karakter dizisini ayırıcıya göre diziye böler. split için takma ad.

{='bir,iki,üç'|explode:','}    {* ['bir', 'iki', 'üç'] döndürür *}

Ayırıcı boş bir karakter dizisi ise (varsayılan değer), girdi tek tek karakterlere bölünecektir:

{='123'|explode}                  {* ['1', '2', '3'] döndürür *}

Ayrıca split takma adını da kullanabilirsiniz:

{='1,2,3'|split:','}              {* ['1', '2', '3'] döndürür *}

Ayrıca bkz. implode.

first

Dizinin ilk öğesini veya karakter dizisinin ilk karakterini döndürür:

{=[1, 2, 3, 4]|first}    {* 1 yazdırır *}
{='abcd'|first}          {* 'a' yazdırır *}

Ayrıca bkz. last, random.

floor (int $precision=0)

Sayıyı belirtilen hassasiyete göre aşağı yuvarlar.

{=3.5|floor}        {* 3 yazdırır      *}
{=135.79|floor:1}   {* 135.7 yazdırır  *}
{=135.79|floor:3}   {* 135.79 yazdırır *}

Ayrıca bkz. ceil, round.

firstUpper

İlk harfi büyük harfe dönüştürür. mbstring PHP eklentisini gerektirir.

{='latte'|firstUpper}  {* 'Latte' yazdırır *}

Ayrıca bkz. capitalize, lower, upper.

group (string|int|\Closure $by)array

Filtre, verileri çeşitli kriterlere göre gruplandırır.

Bu örnekte, tablodaki satırlar categoryId sütununa göre gruplandırılır. Çıktı, anahtarın categoryId sütunundaki değer olduğu bir dizi dizisidir. Detaylı kılavuzu okuyun.

{foreach ($items|group: categoryId) as $categoryId => $categoryItems}
    <ul>
        {foreach $categoryItems as $item}
            <li>{$item->name}</li>
        {/foreach}
    </ul>
{/foreach}

Ayrıca bkz. batch, group fonksiyonu ve iterateWhile etiketi.

implode (string $glue='')

Bir dizinin öğelerinin birleştirilmesiyle oluşan bir karakter dizisi döndürür. join için takma ad.

{=[1, 2, 3]|implode}      {* '123' yazdırır *}
{=[1, 2, 3]|implode:'|'}  {* '1|2|3' yazdırır *}

Ayrıca join takma adını da kullanabilirsiniz:

{=[1, 2, 3]|join}         {* '123' yazdırır *}

indent (int $level=1, string $char="\t")

Metni soldan belirtilen sayıda sekme veya ikinci argümanda belirtebileceğimiz diğer karakterlerle girintiler. Boş satırlar girintilenmez.

<div>
{block |indent}
<p>Merhaba</p>
{/block}
</div>

Yazdırır:

<div>
	<p>Merhaba</p>
</div>

last

Dizinin son öğesini veya karakter dizisinin son karakterini döndürür:

{=[1, 2, 3, 4]|last}    {* 4 yazdırır *}
{='abcd'|last}          {* 'd' yazdırır *}

Ayrıca bkz. first, random.

length

Bir karakter dizisinin veya dizinin uzunluğunu döndürür.

  • karakter dizileri için UTF-8 karakter cinsinden uzunluğu döndürür
  • diziler için öğe sayısını döndürür
  • Countable arayüzünü uygulayan nesneler için count() metodunun dönüş değerini kullanır
  • IteratorAggregate arayüzünü uygulayan nesneler için iterator_count() fonksiyonunun dönüş değerini kullanır
{if ($users|length) > 10}
	...
{/if}

localDate (?string $format=null, ?string $date=null, ?string $time=null)

Tarih ve saati yerel ayara göre biçimlendirir, bu da farklı diller ve bölgeler arasında zaman verilerinin tutarlı ve yerelleştirilmiş bir şekilde görüntülenmesini sağlar. Filtre, tarihi UNIX zaman damgası, karakter dizisi veya DateTimeInterface türünde bir nesne olarak kabul eder.

{$date|localDate}                  {* 15 Nisan 2024 *}
{$date|format: yM}                 {* 4/2024 *}
{$date|localDate: date: medium}    {* 15.04.2024 *}

Filtreyi parametresiz kullanırsanız, tarih long seviyesinde yazdırılır, bkz. aşağıda.

a) biçim kullanımı

format parametresi, hangi zaman bileşenlerinin görüntüleneceğini açıklar. Bunun için harf kodları kullanır ve bunların tekrar sayısı çıktının genişliğini etkiler:

yıl y / yy / yyyy 2024 / 24 / 2024
ay M / MM / MMMMMMM 8 / 08 / AğuAğustos
gün d / dd / EEEEE 1 / 01 / PazPazar
saat j / H / h tercih edilen / 24 saatlik / 12 saatlik
dakika m / mm 5 / 05 (saniyelerle kombinasyonda 2 basamak)
saniye s / ss 8 / 08 (dakikalarla kombinasyonda 2 basamak)

Biçimdeki kodların sırası önemli değildir, çünkü bileşenlerin sırası yerel ayarın geleneklerine göre yazdırılır. Bu nedenle biçim ondan bağımsızdır. Örneğin, yyyyMMMMd biçimi en_US ortamında April 15, 2024 yazdırırken, tr_TR ortamında 15 Nisan 2024 yazdırır:

locale: tr_TR en_US
format: 'dMy' 10.08.2024 8/10/2024
format: 'yM' 8/2024 8/2024
format: 'yyyyMMMM' Ağustos 2024 August 2024
format: 'MMMM' Ağustos August
format: 'jm' 17:22 5:22 PM
format: 'Hm' 17:22 17:22
format: 'hm' 5:22 ös 5:22 PM

b) önceden ayarlanmış stillerin kullanımı

date ve time parametreleri, tarih ve saatin ne kadar ayrıntılı yazdırılacağını belirler. Birkaç seviye arasından seçim yapabilirsiniz: full, long, medium, short. Yalnızca tarihi, yalnızca saati veya her ikisini de yazdırmayı seçebilirsiniz:

locale: tr_TR en_US
date: short 23.01.1978 1/23/78
date: medium 23 Oca 1978 Jan 23, 1978
date: long 23 Ocak 1978 January 23, 1978
date: full 23 Ocak 1978 Pazartesi Monday, January 23, 1978
time: short 08:30 8:30 AM
time: medium 08:30:59 8:30:59 AM
time: long 08:30:59 GMT+03:00 8:30:59 AM GMT+1
date: short, time: short 23.01.1978 08:30 1/23/78, 8:30 AM
date: medium, time: short 23 Oca 1978 08:30 Jan 23, 1978, 8:30 AM
date: long, time: short 23 Ocak 1978 08:30 January 23, 1978 at 8:30 AM

Tarih için ayrıca relative- önekini kullanabilirsiniz (ör. relative-short), bu, günümüze yakın tarihler için dün, bugün veya yarın gösterir, aksi takdirde standart şekilde yazdırılır.

{$date|localDate: date: relative-short}    {* dün *}

Ayrıca bkz. date.

lower

Karakter dizisini küçük harfe dönüştürür. mbstring PHP eklentisini gerektirir.

{='LATTE'|lower}   {* 'latte' yazdırır *}

Ayrıca bkz. capitalize, firstUpper, upper.

nocheck

URL adresinin otomatik temizlenmesini önler. Latte otomatik olarak kontrol eder, değişkenin bir web URL'si (yani HTTP/HTTPS protokolü) içerip içermediğini ve güvenlik riski oluşturabilecek bağlantıların yazdırılmasını önler.

Bağlantı javascript: veya data: gibi başka bir şema kullanıyorsa ve içeriğinden eminseniz, |nocheck kullanarak kontrolü kapatabilirsiniz.

{var $link = 'javascript:window.close()'}

<a href={$link}>kontrollü</a>
<a href={$link|nocheck}>kontrolsüz</a>

Yazdırır:

<a href="">kontrollü</a>
<a href="javascript:window.close()">kontrolsüz</a>

Ayrıca bkz. checkUrl.

noescape

Otomatik kaçış işlemini devre dışı bırakır.

{var $trustedHtmlString = '<b>merhaba</b>'}
Kaçışlı: {$trustedHtmlString}
Kaçışsız: {$trustedHtmlString|noescape}

Yazdırır:

Kaçışlı: &lt;b&gt;merhaba&lt;/b&gt;
Kaçışsız: <b>merhaba</b>

noescape filtresinin yanlış kullanımı XSS güvenlik açığına yol açabilir! Ne yaptığınızdan ve yazdırılan karakter dizisinin güvenilir bir kaynaktan geldiğinden tamamen emin değilseniz asla kullanmayın.

number (int $decimals=0, string $decPoint='.', string $thousandsSep=',')

Sayıyı belirli sayıda ondalık basamağa göre biçimlendirir. Eğer yerel ayar ayarlanmışsa, ilgili ondalık ve binlik ayırıcılar kullanılır.

{1234.20|number}              1,234
{1234.20|number:1}            1,234.2
{1234.20|number:2}            1,234.20
{1234.20|number:2, ',', ' '}  1 234,20

number (string $format)

format parametresi, sayıların görünümünü tam olarak ihtiyaçlarınıza göre tanımlamanıza olanak tanır. Bunun için yerel ayarın ayarlanmış olması gerekir. Biçim, tam açıklaması DecimalFormat belgelerinde bulunan birkaç özel karakterden oluşur:

  • 0 zorunlu basamak, sıfır olsa bile her zaman görüntülenir
  • # isteğe bağlı basamak, yalnızca bu konumda gerçekten bir sayı varsa görüntülenir
  • @ anlamlı basamak, sayıyı belirli sayıda geçerli basamakla görüntülemeye yardımcı olur
  • . ondalık virgülünün (veya ülkeye göre noktanın) nerede olması gerektiğini belirtir
  • , basamak gruplarını, en sık binlikleri ayırmak için kullanılır
  • % sayıyı 100 ile çarpar ve yüzde işaretini ekler

Örneklere bakalım. İlk örnekte iki ondalık basamak zorunludur, ikincisinde isteğe bağlıdır. Üçüncü örnek soldan ve sağdan sıfırlarla tamamlamayı gösterir, dördüncü sadece var olan basamakları gösterir:

{1234.5|number: '#,##0.00'}     {* 1,234.50 *}
{1234.5|number: '#,##0.##'}     {* 1,234.5 *}
{1.23  |number: '000.000'}      {* 001.230 *}
{1.2   |number: '##.##'}        {* 1.2 *}

Anlamlı basamaklar, ondalık virgüle bakılmaksızın kaç basamağın görüntüleneceğini belirler ve yuvarlama yapılır:

{1234|number: '@@'}             {* 1200 *}
{1234|number: '@@@'}            {* 1230 *}
{1234|number: '@@@#'}           {* 1234 *}
{1.2345|number: '@@@'}          {* 1.23 *}
{0.00123|number: '@@'}          {* 0.0012 *}

Bir sayıyı yüzde olarak göstermenin kolay yolu. Sayı 100 ile çarpılır ve % işareti eklenir:

{0.1234|number: '#.##%'}        {* 12.34% *}

Pozitif ve negatif sayılar için farklı bir biçim tanımlayabiliriz, bunlar ; işaretiyle ayrılır. Bu şekilde, örneğin pozitif sayıların + işaretiyle gösterilmesini ayarlayabiliriz:

{42|number: '#.##;(#.##)'}      {* 42 *}
{-42|number: '#.##;(#.##)'}     {* (42) *}
{42|number: '+#.##;-#.##'}      {* +42 *}
{-42|number: '+#.##;-#.##'}     {* -42 *}

Unutmayın, sayıların gerçek görünümü ülke ayarlarına göre değişebilir. Örneğin, bazı ülkelerde ondalık ayırıcı olarak nokta yerine virgül kullanılır. Bu filtre bunu otomatik olarak dikkate alır ve sizin hiçbir şey yapmanıza gerek kalmaz.

padLeft (int $length, string $pad=' ')

Karakter dizisini soldan başka bir karakter dizisiyle belirli bir uzunluğa tamamlar.

{='merhaba'|padLeft: 10, '123'}  {* '12312merhaba' yazdırır *}

padRight (int $length, string $pad=' ')

Karakter dizisini sağdan başka bir karakter dizisiyle belirli bir uzunluğa tamamlar.

{='merhaba'|padRight: 10, '123'}  {* 'merhaba12312' yazdırır *}

query

URL'de dinamik olarak sorgu dizesi oluşturur:

<a href="http://example.com/?{[name: 'John Doe', age: 43]|query}">tıkla</a>
<a href="http://example.com/?search={$search|query}">ara</a>

Yazdırır:

<a href="http://example.com/?name=John+Doe&amp;age=43">tıkla</a>
<a href="http://example.com/?search=Foo+Bar">ara</a>

null değerli anahtarlar atlanır.

Ayrıca bkz. escapeUrl.

random

Dizinin rastgele bir öğesini veya karakter dizisinin rastgele bir karakterini döndürür:

{=[1, 2, 3, 4]|random}    {* örn.: 3 yazdırır *}
{='abcd'|random}          {* örn.: 'b' yazdırır *}

Ayrıca bkz. first, last.

repeat (int $count)

Karakter dizisini x kez tekrarlar.

{='merhaba'|repeat: 3}  {* 'merhabamerhabamerhaba' yazdırır *}

replace (string|array $search, string $replace='')

Arama karakter dizisinin tüm geçtiği yerleri değiştirme karakter dizisiyle değiştirir.

{='merhaba dünya'|replace: 'dünya', 'arkadaş'}  {* 'merhaba arkadaş' yazdırır *}

Aynı anda birden fazla değiştirme de yapılabilir:

{='merhaba dünya'|replace: [m => d, d => m]}  {* 'derhaba münma' yazdırır *}

replaceRE (string $pattern, string $replace='')

Değiştirme ile düzenli ifade araması yapar.

{='merhaba dünya'|replaceRE: '/d.*/', 'd'}  {* 'merhabad' yazdırır *}

reverse

Verilen karakter dizisini veya diziyi ters çevirir.

{var $s = 'Nette'}
{$s|reverse}    {* 'etteN' yazdırır *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse}    {* ['e', 't', 't', 'e', 'N'] döndürür *}

round (int $precision=0)

Sayıyı belirtilen hassasiyete göre yuvarlar.

{=3.4|round}        {* 3 yazdırır      *}
{=3.5|round}        {* 4 yazdırır      *}
{=135.79|round:1}   {* 135.8 yazdırır  *}
{=135.79|round:3}   {* 135.79 yazdırır *}

Ayrıca bkz. ceil, floor.

slice (int $start, ?int $length=null, bool $preserveKeys=false)

Bir dizinin veya karakter dizisinin bir bölümünü çıkarır.

{='merhaba'|slice: 1, 2}           {* 'er' yazdırır *}
{=['a', 'b', 'c']|slice: 1, 2}   {* ['b', 'c'] yazdırır *}

Filtre, diziler için PHP array_slice fonksiyonu gibi veya karakter dizileri için mb_substr fonksiyonu gibi çalışır ve UTF-8 modunda iconv_substr fonksiyonuna geri döner.

Eğer başlangıç pozitifse, dizi/karakter dizisinin başından itibaren bu kadar kaydırılarak başlar. Eğer negatifse, sondan bu kadar kaydırılarak başlar.

Eğer length parametresi belirtilmişse ve pozitifse, dizi bu kadar öğe içerecektir. Eğer bu fonksiyona negatif bir length parametresi geçirilirse, dizi başlangıç pozisyonundan başlayıp dizinin sonundan length kadar öğe öncesinde biten tüm öğeleri içerecektir. Eğer bu parametre belirtilmezse, dizi başlangıç pozisyonundan itibaren orijinal dizinin tüm öğelerini içerecektir.

Varsayılan olarak, filtre sırayı değiştirir ve tamsayı dizi anahtarlarını sıfırlar. Bu davranış, preserveKeys'i true olarak ayarlayarak değiştirilebilir. Karakter dizisi anahtarları, bu parametreden bağımsız olarak her zaman korunur.

sort (?Closure $comparison, string|int|\Closure|null $by=null, string|int|\Closure|bool $byKey=false)

Filtre, bir dizinin veya yineleyicinin öğelerini sıralar ve ilişkisel anahtarlarını korur. Eğer yerel ayar ayarlanmışsa, özel bir karşılaştırma fonksiyonu belirtilmediği sürece sıralama onun kurallarına göre yapılır.

{foreach ($isimler|sort) as $isim}
	...
{/foreach}

Sıralanmış dizi ters sırada:

{foreach ($isimler|sort|reverse) as $isim}
	...
{/foreach}

Sıralama için özel bir karşılaştırma fonksiyonu belirleyebilirsiniz (örnek, en büyükten en küçüğe ters sıralamanın nasıl yapılacağını gösterir):

{var $tersCevrilmis = ($isimler|sort: fn($a, $b) => $b <=> $a)}

|sort filtresi ayrıca öğeleri anahtarlara göre sıralamaya da olanak tanır:

{foreach ($isimler|sort: byKey: true) as $isim}
	...
{/foreach}

Bir tabloyu belirli bir sütuna göre sıralamanız gerekiyorsa, by parametresini kullanabilirsiniz. Örnekteki 'name' değeri, $item'ın dizi mi yoksa nesne mi olduğuna bağlı olarak $item->name veya $item['name']'e göre sıralanacağını belirtir:

{foreach ($items|sort: by: 'name') as $item}
	{$item->name}
{/foreach}

Ayrıca, neye göre sıralanacağını belirleyen bir geri çağırma fonksiyonu da tanımlayabilirsiniz:

{foreach ($items|sort: by: fn($items) => $items->category->name) as $item}
	{$item->name}
{/foreach}

byKey parametresi de aynı şekilde kullanılabilir.

spaceless

Çıktıdan gereksiz boşlukları (boşluk karakterlerini) kaldırır. Ayrıca strip takma adını da kullanabilirsiniz.

{block |spaceless}
	<ul>
		<li>Merhaba</li>
	</ul>
{/block}

Yazdırır:

<ul> <li>Merhaba</li> </ul>

stripHtml

HTML'i düz metne dönüştürür. Yani HTML etiketlerini kaldırır ve HTML varlıklarını metne dönüştürür.

{='<p>bir &lt; iki</p>'|stripHtml}  {* 'bir < iki' yazdırır *}

Sonuçtaki düz metin doğal olarak HTML etiketlerini temsil eden karakterler içerebilir, örneğin '&lt;p&gt;'|stripHtml <p>'ye dönüştürülür. Bu şekilde oluşturulan metni asla |noescape ile yazdırmayın, çünkü bu bir güvenlik açığına yol açabilir.

substr (int $offset, ?int $length=null)

Karakter dizisinin bir bölümünü çıkarır. Bu filtre slice filtresiyle değiştirilmiştir.

{$string|substr: 1, 2}

translate (…$args)

İfadeleri diğer dillere çevirir. Filtrenin kullanılabilir olması için çevirmenin ayarlanması gerekir. Ayrıca çeviri için etiketleri de kullanabilirsiniz.

<a href="basket">{='Sepet'|translate}</a>
<span>{$item|translate}</span>

trim (string $charlist=" \t\n\r\0\x0B\u{A0}")

Karakter dizisinin başından ve sonundan boşluk karakterlerini (veya diğer karakterleri) kaldırır.

{='  Latte severim.  '|trim}    {* 'Latte severim.' yazdırır *}
{='  Latte severim.'|trim: '.'} {* '  Latte severim' yazdırır *}

truncate (int $length, string $append='…')

Bir karakter dizisini belirtilen maksimum uzunluğa kırpar, bu sırada tam kelimeleri korumaya çalışır. Karakter dizisi kısaltılırsa, sonuna üç nokta ekler (ikinci parametre ile değiştirilebilir).

{var $title = 'Merhaba, nasılsınız?'}
{$title|truncate:5}  {* Merh…                *}
{$title|truncate:17} {* Merhaba, nasıl…      *}
{$title|truncate:30} {* Merhaba, nasılsınız?  *}

upper

Karakter dizisini büyük harfe dönüştürür. mbstring PHP eklentisini gerektirir.

{='latte'|upper}  {* 'LATTE' yazdırır *}

Ayrıca bkz. capitalize, firstUpper, lower.

webalize

UTF-8 karakter dizisini URL'de kullanılan biçime dönüştürür.

ASCII'ye dönüştürülür. Boşlukları tireye dönüştürür. Alfanümerik olmayan, alt çizgi veya tire olmayan karakterleri kaldırır. Küçük harfe dönüştürür. Ayrıca baştaki ve sondaki boşlukları kaldırır.

{var $s = 'Bizim 10. ürünümüz'}
{$s|webalize}   {* 'bizim-10-urunumuz' yazdırır *}

nette/utils kütüphanesini gerektirir.