Latte Filtreleri

Filtreler, verileri istediğimiz biçimde değiştiren veya biçimlendiren işlevlerdir. Bu, mevcut olan yerleşik filtrelerin bir özetidir.

Dize / dizi dönüşümü
batch doğrusal verilerin bir tabloda listelenmesi
breakLines Tüm yeni satırlardan önce HTML satır sonlarını ekler
bytes bayt cinsinden biçim boyutu
clamp değeri aralığa sıkıştırır
dataStream Veri URI protokol dönüşümü
date tarih ve saati biçimlendirir
explode bir dizeyi verilen sınırlayıcıya göre böler
first dizinin ilk elemanını veya karakter dizisini döndürür
group verileri çeşitli kriterlere göre gruplar
implode bir diziyi bir dizeye birleştirir
indent metni soldan sekme sayısı kadar girintiler
join bir diziyi bir dizeye birleştirir
last dizinin son elemanını veya karakter dizisini döndürür
length bir dize veya dizinin uzunluğunu döndürür
localDate tarih ve saati yerel ayara göre biçimlendirir
number format numarası
padLeft dizeyi soldan verilen uzunluğa tamamlar
padRight dizeyi sağdan verilen uzunluğa tamamlar
random dizinin rastgele elemanını veya karakter dizisini döndürür
repeat dizeyi tekrarlar
replace arama dizesinin tüm geçtiği yerleri değiştirme ile değiştirir
replaceRE düzenli ifadeye göre tüm oluşumları değiştirir
reverse bir UTF-8 dizesini veya dizisini tersine çevirir
slice bir dizi veya dizenin bir dilimini çıkarır
sort bir diziyi sıralar
spaceless boşluksuz etikete benzer şekilde boşlukları kaldırır
split bir dizeyi verilen sınırlayıcıya göre böler
strip boşlukları kaldırır
stripHtml HTML etiketlerini kaldırır ve HTML varlıklarını metne dönüştürür
substr dizenin bir kısmını döndürür
trim dizeden boşlukları çıkarır
translate diğer dillere çeviri
truncate tüm kelimeleri koruyarak uzunluğu kısaltır
webalize UTF-8 dizesini URL'de kullanılan şekle göre ayarlar
Harf muhafazası
capitalize küçük harf, her kelimenin ilk harfi büyük harf
firstUpper ilk harfi büyük yapar
lower bir dizeyi küçük harf yapar
upper bir dizeyi büyük harf yapar
Sayıları yuvarlama
ceil bir sayıyı belirli bir hassasiyete kadar yuvarlar
floor bir sayıyı belirli bir hassasiyete yuvarlar
round bir sayıyı belirli bir hassasiyete yuvarlar
Kaçış
escapeUrl URL'deki parametreyi kaçar
noescape bir değişkeni kaçış yapmadan yazdırır
query URL'de bir sorgu dizesi oluşturur

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

Güvenlik
checkUrl href niteliği içinde kullanılmak üzere dizeyi sterilize eder
nocheck otomatik URL sanitizasyonunu engeller

Latte src ve href özniteliklerini otomatik olarak kontrol eder, böylece checkUrl filtresini kullanmanıza neredeyse gerek kalmaz.

Tüm yerleşik filtreler UTF-8 kodlu dizelerle çalışır.

Kullanım

Latte, boru işareti gösterimini kullanarak filtreleri çağırmaya izin verir (önceki boşluğa izin verilir):

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

Filtreler zincirleme olabilir, bu durumda soldan sağa doğru sırayla uygulanırlar:

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

Parametreler filtre adından sonra iki nokta üst üste veya virgülle ayrılmış olarak konur:

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

İfade üzerinde filtreler uygulanabilir:

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

Özel filtreler bu şekilde kaydedilebilir:

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

Bunun gibi bir şablonda kullanırız:

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

Filtreler

batch (int $length, mixed $item)array

Doğrusal verilerin bir tablo biçiminde listelenmesini basitleştiren filtre. Verilen sayıda öğe içeren bir dizi döndürür. İkinci bir parametre sağlarsanız, bu son satırdaki eksik öğeleri doldurmak için kullanılır.

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

Baskılar:

<table>
	<tr>
		<td>a</td>
		<td>b</td>
		<td>c</td>
	</tr>
	<tr>
		<td>d</td>
		<td>e</td>
		<td>No item</td>
	</tr>
</table>

Ayrıca bkz. group ve iterateWhile etiketi.

breakLines

Tüm yeni satırlardan önce HTML satır sonlarını ekler.

{var $s = "Text & with \n newline"}
{$s|breakLines}    {* çıkışlar "Text &amp; with <br>\n newline" *}

bytes (int $precision=2)

Bayt cinsinden boyutu insan tarafından okunabilir bir biçimde biçimlendirir. Yerel ayar belirlenmişse, 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)

Bir sayıyı belirli bir hassasiyete kadar yuvarlar.

{=3.4|ceil}         {* çıkışlar 4 *}
{=135.22|ceil:1}    {* çıktılar 135.3 *}
{=135.22|ceil:3}    {* çıktılar 135.22 *}

Ayrıca bkz. zemin, yuvarlak.

capitalize

Değerin baş harfli bir sürümünü döndürür. Kelimeler büyük harflerle başlar, geri kalan tüm karakterler küçüktür. PHP eklentisi gerektirir mbstring.

{='i like LATTE'|capitalize} {* çıktılar 'I Like Latte' *}

Ayrıca bkz. firstUpper, lower, upper.

checkUrl

URL sanitizasyonunu 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 yazılmasını engeller.

{var $link = 'javascript:window.close()'}
<a data-href={$link|checkUrl}>checked</a>
<a data-href={$link}>unchecked</a>

Baskılar:

<a data-href="">checked</a>
<a data-href="javascript:window.close()">unchecked</a>

Ayrıca bkz. nocheck.

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

Min ve maks. dahil aralığına sıkıştırılmış değeri döndürür.

{$level|clamp: 0, 255}

Fonksiyon olarak da mevcuttur.

dataStream (string $mimetype=detect)

İçeriği veri URI şemasına dönüştürür. Harici dosyalara bağlantı vermeye gerek kalmadan HTML veya CSS'ye görüntü eklemek için kullanılabilir.

$img = Image::fromFile('obrazek.gif') değişkeninde bir görüntüye sahip olalım, sonra

<img src={$img|dataStream}>

Örneğin baskılar:

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

PHP uzantısı gerektirir fileinfo.

date (string $format)

Tarih ve saati date PHP işlevi tarafından kullanılan maskeye göre biçimlendirir. Süzgeç, tarihi UNIX zaman damgası biçiminde, dize olarak veya DateTimeInterface nesnesi olarak kabul eder.

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

Ayrıca bkz. localDate.

escapeUrl

URL'de parametre olarak kullanılacak bir değişkeni atar.

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

Ayrıca sorguya bakın.

explode (string $separator='')

Bir dizeyi verilen sınırlayıcıya göre böler ve bir dizeler dizisi döndürür. İçin takma ad split.

{='one,two,three'|explode:','}    {* returns ['one', 'two', 'three'] *}

Sınırlayıcı boş bir dizeyse (varsayılan değer), girdi ayrı karakterlere bölünecektir:

{='123'|explode}                  {* returns ['1', '2', '3'] *}

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

{='1,2,3'|split:','}              {* returns ['1', '2', '3'] *}

Ayrıca bkz. implode.

first

Dizinin ilk elemanını veya karakter dizisini döndürür:

{=[1, 2, 3, 4]|first}    {* çıktılar 1 *}
{='abcd'|first}          {* çıktılar 'a' *}

Ayrıca bkz. son, rastgele.

floor (int $precision=0)

Bir sayıyı belirli bir hassasiyete yuvarlar.

{=3.5|floor}        {* çıkışlar 3      *}
{=135.79|floor:1}   {* çıkışlar 135.7  *}
{=135.79|floor:3}   {* çıkışlar 135.79 *}

Ayrıca bkz. tavan, yuvarlak.

firstUpper

Değerin ilk harfini büyük harfe dönüştürür. PHP eklentisi gerektirir mbstring.

{='the latte'|firstUpper} {* çıktılar 'The latte' *}

Ayrıca bkz. büyük harf, alt, üst.

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

Filtre, verileri farklı kriterlere göre gruplandırır.

Bu örnekte, tablodaki satırlar categoryId sütununa göre gruplandırılmıştır. Çıktı, anahtarın categoryId sütunundaki değer olduğu bir dizi dizisidir. Ayrıntılı talimatları 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='')

Dizideki dizelerin birleştirilmesinden oluşan bir dizge döndürür. İçin takma ad join.

{=[1, 2, 3]|implode}      {* outputs '123' *}
{=[1, 2, 3]|implode:'|'}  {* outputs '1|2|3' *}

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

{=[1, 2, 3]|join}         {* outputs '123' *}

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

Bir metni soldan belirli sayıda sekme veya ikinci isteğe bağlı bağımsız değişkende belirttiğimiz diğer karakterler kadar girintiler. Boş satırlar girintilenmez.

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

Baskılar:

<div>
	<p>Hello</p>
</div>

last

Dizinin son elemanını veya karakter dizisini döndürür:

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

Ayrıca bkz. ilk, rastgele.

length

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

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

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

Tarih ve saati yerel ayara göre biçimlendirerek, zaman verilerinin farklı diller ve bölgeler arasında tutarlı ve yerelleştirilmiş bir şekilde görüntülenmesini sağlar. Filtre, tarihi UNIX zaman damgası, dize veya DateTimeInterface nesnesi olarak kabul eder.

{$date|localDate}                  {* 15. dubna 2024 *}
{$date|format: yM}                 {* 4/2024 *}
{$date|localDate: date: medium}    {* 15. 4. 2024 *}

Filtreyi herhangi bir parametre olmadan kullanırsanız, daha sonra açıklanacağı gibi tarihi uzun biçim düzeyinde verir.

a) Formatı kullanma

format parametresi hangi zaman bileşenlerinin görüntülenmesi gerektiğini açıklar. Tekrar sayısının çıktının genişliğini etkilediği harf kodlarını kullanır:

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 saat / 12 saat
Dakika m / mm 5 / 05 (saniye ile birleştirildiğinde 2 hane)
Saniye s / ss 8 / 08 (dakika ile birleştirildiğinde 2 hane)

Biçimdeki kodların sırası önemli değildir, çünkü bileşenlerin sırası yerel ayarların kurallarına göre görüntülenecektir. Bu nedenle, biçim yerelden bağımsızdır. Örneğin, en_US yerel ayarında yyyyMMMMd biçimi April 15, 2024 çıktısını verirken, cs_CZ yerel ayarında 15. dubna 2024 çıktısını verir:

locale: tr-TR en_US
format: 'dMy' 10.08.2024 8/10/2024
format: 'yM' 08/2024 8/2024
format: 'yyyyMMMM' Ağustos 2024 August 2024
format: 'MMMM' Ağustos August
format: 'jm' 17:54 5:54 PM
format: 'Hm' 17:54 17:54
format: 'hm' ÖS 5:54 5:54 PM

b) Önceden ayarlanmış stilleri kullanma

date ve time parametreleri tarih ve saat gösterimi için ayrıntı düzeyini belirler. Birkaç seviye arasından seçim yapabilirsiniz: full, long, medium, short. Sadece tarihi, sadece saati ya da her ikisini birden görüntüleyebilirsiniz:

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+1 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 relative- önekini de kullanabilirsiniz (örneğin, relative-short), bu da günümüze yakın tarihler için yesterday, today veya tomorrow olarak görüntülenir; aksi takdirde standart şekilde görüntülenir.

{$date|localDate: date: relative-short}    {* yesterday *}

Ayrıca bkz. tarih.

lower

Bir değeri küçük harfe dönüştürür. PHP eklentisi gerektirir mbstring.

{='LATTE'|lower}   {* outputs 'latte' *}

Ayrıca bkz. capitalize, firstUpper, upper.

nocheck

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

Bağlantı javascript: veya data: gibi farklı bir şema kullanıyorsa ve içeriğinden eminseniz, kontrolü |nocheck üzerinden devre dışı bırakabilirsiniz.

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

<a href={$link}>checked</a>
<a href={$link|nocheck}>unchecked</a>

Baskılar:

<a href="">checked</a>
<a href="javascript:window.close()">unchecked</a>

Ayrıca bkz. checkUrl.

noescape

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

{var $trustedHtmlString = '<b>hello</b>'}
Escaped: {$trustedHtmlString}
Unescaped: {$trustedHtmlString|noescape}

Baskılar:

Escaped: &lt;b&gt;hello&lt;/b&gt;
Unescaped: <b>hello</b>

noescape filtresinin yanlış kullanımı bir XSS güvenlik açığına yol açabilir! Ne yaptığınızdan ve yazdırdığınız dizenin güvenilir bir kaynaktan geldiğinden kesinlikle emin değilseniz asla kullanmayın.

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

Bir sayıyı belirtilen sayıda ondalık basamağa göre biçimlendirir. Yerel ayar belirlenmişse, 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. Ayarlanmış bir yerel ayar gerektirir. Biçim, tam açıklamasını DecimalFormat belgesinde bulabileceğiniz birkaç özel karakterden oluşur:

  • <c id=6/> zorunlu rakam, sıfır olsa bile her zaman görüntülenir
  • # isteğe bağlı rakam, yalnızca sayının o yerde bir rakamı varsa görüntülenir
  • @ anlamlı hane, sayının belirli sayıda anlamlı hane ile görüntülenmesine yardımcı olur
  • . ondalık ayırıcının olması gereken yeri işaretler (yerel ayara bağlı olarak virgül veya nokta)
  • , genellikle binlik rakam gruplarını ayırmak için kullanılır
  • % sayıyı 100 ile çarpar ve yüzde işaretini ekler

Şimdi bazı örneklere bakalım. İlk örnekte, iki ondalık basamak zorunludur; ikincisinde ise isteğe bağlıdır. Üçüncü örnekte her iki tarafta da sıfırlarla doldurma gösterilirken, dördüncü örnekte yalnızca mevcut rakamlar görüntülenir:

{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 *}

Önemli basamaklar, ondalık noktadan bağımsız olarak kaç basamağın görüntülenmesi gerektiğini belirler ve gerekirse sayıyı yuvarlar:

{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örüntülemenin kolay bir yolu. Sayı 100 ile çarpılır ve % işareti eklenir:

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

Pozitif ve negatif sayılar için ; karakteriyle ayrılmış farklı bir format tanımlayabiliriz. Bu şekilde, örneğin pozitif sayılar bir + işaretiyle gösterilebilir:

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

Sayıların gerçek görünümünün yerel ayarlara bağlı olarak değişebileceğini unutmayın. Örneğin, bazı ülkelerde ondalık ayırıcı olarak nokta yerine virgül kullanılır. Bu filtre bunu otomatik olarak hesaba katar, bu nedenle endişelenmenize gerek yoktur.

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

Bir dizeyi soldan başka bir dizeyle belirli bir uzunluğa kadar doldurur.

{='hello'|padLeft: 10, '123'}  {* outputs '12312hello' *}

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

Bir dizeyi sağdan başka bir dizeyle belirli bir uzunlukta doldurur.

{='hello'|padRight: 10, '123'}  {* outputs 'hello12312' *}

query

URL'de dinamik olarak bir sorgu dizesi oluşturur:

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

Baskılar:

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

Değeri null olan anahtarlar atlanır.

Ayrıca bkz. escapeUrl.

random

Dizinin rastgele elemanını veya karakter dizisini döndürür:

{=[1, 2, 3, 4]|random}    {* example output: 3 *}
{='abcd'|random}          {* example output: 'b' *}

Ayrıca bkz. ilk, son.

repeat (int $count)

Dizeyi x kez tekrarlar.

{='hello'|repeat: 3}  {* outputs 'hellohellohello' *}

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

Arama dizesinin tüm geçtiği yerleri değiştirme dizesiyle değiştirir.

{='hello world'|replace: 'world', 'friend'}  {* outputs 'hello friend' *}

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

{='hello world'|replace: [h => l, l => h]}  {* outputs 'lehho worhd' *}

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

Tüm oluşumları düzenli ifadeye göre değiştirir.

{='hello world'|replaceRE: '/l.*/', 'l'}  {* outputs 'hel' *}

reverse

Verilen dizeyi veya diziyi tersine çevirir.

{var $s = 'Nette'}
{$s|reverse}    {* outputs 'etteN' *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse}    {* returns ['e', 't', 't', 'e', 'N'] *}

round (int $precision=0)

Bir sayıyı belirli bir hassasiyete yuvarlar.

{=3.4|round}        {* outputs 3      *}
{=3.5|round}        {* outputs 4      *}
{=135.79|round:1}   {* outputs 135.8  *}
{=135.79|round:3}   {* outputs 135.79 *}

Ayrıca bkz. tavan, zemin.

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

Bir dizinin veya dizginin bir dilimini çıkarır.

{='hello'|slice: 1, 2}           {* outputs 'el' *}
{=['a', 'b', 'c']|slice: 1, 2}   {* outputs ['b', 'c'] *}

Dilim süzgeci, diziler için array_slice PHP işlevi ve dizeler için mb_substr işlevi olarak çalışır ve UTF-8 kipinde iconv_substr işlevine geri döner.

Başlangıç negatif değilse, dizi değişkendeki o başlangıçtan başlayacaktır. Başlangıç negatifse, dizi değişkenin sonundan o kadar uzakta başlayacaktır.

Uzunluk verilmişse ve pozitifse, dizinin içinde o kadar eleman olacaktır. Değişken uzunluktan daha kısaysa, yalnızca mevcut değişken öğeleri mevcut olacaktır. Uzunluk verilirse ve negatifse, dizi değişkenin sonundan itibaren o kadar elemanla duracaktır. Atlanırsa, dizi ofsetten değişkenin sonuna kadar her şeye sahip olacaktır.

Filtre, varsayılan olarak tamsayı dizi anahtarlarını yeniden sıralar ve sıfırlar. Bu davranış preserveKeys öğesi true olarak ayarlanarak değiştirilebilir. Dize 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, ilişkisel anahtarlarını koruyarak sıralar. Bir yerel ayarlandığında, özel bir karşılaştırma işlevi belirtilmediği sürece sıralama yerel ayarın kurallarını izler.

{foreach ($names|sort) as $name}
	...
{/foreach}

Dizi ters sırada sıralanır.

{foreach ($names|sort|reverse) as $name}
	...
{/foreach}

Sıralama için özel bir karşılaştırma işlevi belirtebilirsiniz (örnekte sıralamanın en büyükten en küçüğe doğru nasıl tersine çevrileceği gösterilmektedir):

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

|sort filtresi ayrıca öğeleri anahtara göre sıralamanıza da olanak tanır:

{foreach ($names|sort: byKey: true) as $name}
	...
{/foreach}

Bir tabloyu belirli bir sütuna göre sıralamanız gerekiyorsa, by parametresini kullanabilirsiniz. Örnekteki 'name' değeri, sıralamanın $row->name veya $row['name'], $row adresinin bir dizi veya nesne olmasına bağlı olarak değişir:

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

Ayrıca, sıralanacak değeri belirleyen bir geri arama işlevi de tanımlayabilirsiniz:

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

byKey parametresi de aynı şekilde kullanılabilir.

spaceless

Gereksiz boşlukları çıktıdan kaldırır. Ayrıca strip takma adını da kullanabilirsiniz.

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

Baskılar:

<ul> <li>Hello</li> </ul>

stripHtml

HTML'yi 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>one &lt; two</p>'|stripHtml}  {* outputs 'one < two' *}

Ortaya çıkan düz metin doğal olarak HTML etiketlerini temsil eden karakterler içerebilir, örneğin '&lt;p&gt;'|stripHtml şu şekilde dönüştürülür <p>. Bir güvenlik açığına yol açabileceğinden, ortaya çıkan metni asla |noescape ile çıktı olarak vermeyin.

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

Bir dizenin bir dilimini çıkarır. Bu filtre bir dilim filtresi ile değiştirilmiştir.

{$string|substr: 1, 2}

translate (string $message, …$args)

İfadeleri diğer dillere çevirir. Filtreyi kullanılabilir hale getirmek için çevirmen kurmanız gerekir. Çeviri için etiketleri de kullanabilirsiniz.

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

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

Baştaki ve sondaki karakterleri, varsayılan olarak boşlukları soyun.

{='  I like Latte.  '|trim}    {* outputs 'I like Latte.' *}
{='  I like Latte.'|trim: '.'} {* outputs '  I like Latte' *}

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

Bir dizeyi verilen maksimum uzunluğa kısaltır, ancak tüm kelimeleri korumaya çalışır. Dize kesilmişse sonuna üç nokta ekler (bu ikinci parametre ile değiştirilebilir).

{var $title = 'Hello, how are you?'}
{$title|truncate:5}  {* Hell…                *}
{$title|truncate:17} {* Hello, how are…      *}
{$title|truncate:30} {* Hello, how are you?  *}

upper

Bir değeri büyük harfe dönüştürür. PHP eklentisi gerektirir mbstring.

{='latte'|upper}  {* outputs 'LATTE' *}

Ayrıca bkz. capitalize, firstUpper, lower.

webalize

ASCII'ye dönüştürür.

Boşlukları tire işaretine dönüştürür. Alfanümerik, alt çizgi veya kısa çizgi olmayan karakterleri kaldırır. Küçük harfe dönüştürür. Ayrıca baştaki ve sondaki boşlukları da siler.

{var $s = 'Our 10. product'}
{$s|webalize}    {* outputs 'our-10-product' *}

nette/utils paketini gerektirir.

versiyon: 3.0