Nette Documentation Preview

syntax
Φίλτρα Latte
************

.[perex]
Τα φίλτρα είναι συναρτήσεις που αλλάζουν ή μορφοποιούν τα δεδομένα σε μια μορφή που θέλουμε. Αυτή είναι μια περίληψη των ενσωματωμένων φίλτρων που είναι διαθέσιμα.

.[table-latte-filters]
|## Μετασχηματισμός αλφαριθμητικών/συστοιχιών
| `batch` | [καταχώριση γραμμικών δεδομένων σε πίνακα |#batch]
| `breakLines` | [Εισαγωγή διαχωρισμού γραμμών HTML πριν από όλες τις νέες γραμμές |#breakLines]
| `bytes` | [μορφοποιεί το μέγεθος σε bytes |#bytes]
| `clamp` | [συγκρατεί την τιμή στο εύρος |#clamp]
| `dataStream` | [Μετατροπή πρωτοκόλλου URI δεδομένων |#datastream]
| `date` | [μορφοποίηση ημερομηνίας |#date]
| `explode` | [Διαχωρίζει μια συμβολοσειρά με το δεδομένο διαχωριστικό |#explode]
| `first` | [επιστρέφει το πρώτο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς |#first]
| `implode` | [συνδέει έναν πίνακα με μια συμβολοσειρά |#implode]
| `indent` | [εσοχή του κειμένου από αριστερά με αριθμό tabs |#indent]
| `join` | [ενώνει έναν πίνακα σε μια συμβολοσειρά |#implode]
| `last` | [επιστρέφει το τελευταίο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς |#last]
| `length` | [επιστρέφει το μήκος μιας συμβολοσειράς ή ενός πίνακα |#length]
| `number` | [μορφοποίηση αριθμού |#number]
| `padLeft` | [συμπληρώνει τη συμβολοσειρά στο συγκεκριμένο μήκος από αριστερά |#padLeft]
| `padRight` | [συμπληρώνει τη συμβολοσειρά στο δεδομένο μήκος από τα δεξιά |#padRight]
| `random` | [επιστρέφει τυχαίο στοιχείο πίνακα ή χαρακτήρα συμβολοσειράς |#random]
| `repeat` | [επαναλαμβάνει τη συμβολοσειρά |#repeat]
| `replace` | [αντικαθιστά όλες τις εμφανίσεις της συμβολοσειράς αναζήτησης με την αντικατάσταση |#replace]
| `replaceRE` | [αντικαθιστά όλες τις εμφανίσεις σύμφωνα με την κανονική έκφραση |#replaceRE]
| `reverse` | [αντιστρέφει μια συμβολοσειρά ή έναν πίνακα UTF-8 |#reverse]
| `slice` | [εξάγει ένα τμήμα ενός πίνακα ή μιας συμβολοσειράς |#slice]
| `sort` | [ταξινομεί έναν πίνακα |#sort]
| `spaceless` | [αφαιρεί κενά |#spaceless], παρόμοια με την ετικέτα [χωρίς κενό |tags]
| `split` | [διαχωρίζει μια συμβολοσειρά με βάση το δεδομένο διαχωριστικό |#explode]
| `strip` | [αφαιρεί τα κενά |#spaceless]
| `stripHtml` | [αφαιρεί ετικέτες HTML και μετατρέπει οντότητες HTML σε κείμενο |#stripHtml]
| `substr` | [επιστρέφει μέρος της συμβολοσειράς |#substr]
| `trim` | [αφαιρεί το κενό διάστημα από τη συμβολοσειρά |#trim]
| `translate` | [μετάφραση σε άλλες γλώσσες|#translate]
| `truncate` | [συντομεύει το μήκος διατηρώντας ολόκληρες λέξεις |#truncate]
| `webalize` | [προσαρμόζει τη συμβολοσειρά UTF-8 στο σχήμα που χρησιμοποιείται στη διεύθυνση URL |#webalize]

.[table-latte-filters]
|## Περιτύπωμα γραμμάτων
| `capitalize` | [πεζά γράμματα, το πρώτο γράμμα κάθε λέξης κεφαλαίο |#capitalize]
| `firstUpper` | [κάνει το πρώτο γράμμα κεφαλαίο |#firstUpper]
| `lower` | [κάνει μια συμβολοσειρά πεζά |#lower]
| `upper` | [κάνει μια συμβολοσειρά κεφαλαίο |#upper]

.[table-latte-filters]
|## Στρογγυλοποίηση αριθμών
| `ceil` | [στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια |#ceil]
| `floor` | [στρογγυλοποιεί έναν αριθμό προς τα κάτω με δεδομένη ακρίβεια |#floor]
| `round` | [στρογγυλοποιεί έναν αριθμό σε δεδομένη ακρίβεια |#round]

.[table-latte-filters]
|## Escaping
| `escapeUrl` | [αποφεύγει την παράμετρο στη διεύθυνση URL |#escapeUrl]
| `noescape` | [εκτυπώνει μια μεταβλητή χωρίς διαφυγή |#noescape]
| `query` | [δημιουργεί μια συμβολοσειρά ερωτήματος στη διεύθυνση URL |#query]

Υπάρχουν επίσης φίλτρα διαφυγής για HTML (`escapeHtml` και `escapeHtmlComment`), XML (`escapeXml`), JavaScript (`escapeJs`), CSS (`escapeCss`) και iCalendar (`escapeICal`), τα οποία το Latte χρησιμοποιεί το ίδιο χάρη στην [διαφυγή με επίγνωση του περιβάλλοντος |safety-first#Context-aware escaping] και δεν χρειάζεται να τα γράψετε.

.[table-latte-filters]
|## Ασφάλεια
| `checkUrl` | [Αποκαθαρίζει τη συμβολοσειρά για χρήση μέσα στο χαρακτηριστικό href |#checkUrl].
| `nocheck` | [αποτρέπει την αυτόματη εξυγίανση URL |#nocheck]

Latte οι [έλεγχοι |safety-first#link checking] των χαρακτηριστικών `src` και `href` γίνονται [αυτόματα |safety-first#link checking], οπότε σχεδόν δεν χρειάζεται να χρησιμοποιήσετε το φίλτρο `checkUrl`.


.[note]
Όλα τα ενσωματωμένα φίλτρα λειτουργούν με κωδικοποιημένες συμβολοσειρές UTF-8.


Χρήση .[#toc-usage]
===================

Το Latte επιτρέπει την κλήση φίλτρων με τη χρήση του συμβολισμού με το σύμβολο της πίπας (επιτρέπεται το κενό που προηγείται):

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

Τα φίλτρα μπορούν να είναι αλυσιδωτά, οπότε εφαρμόζονται με τη σειρά από αριστερά προς τα δεξιά:

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

Οι παράμετροι τοποθετούνται μετά το όνομα του φίλτρου χωρισμένες με άνω και κάτω τελεία ή κόμμα:

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

Τα φίλτρα μπορούν να εφαρμοστούν στην έκφραση:

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

[Προσαρμοσμένα φίλτρα |extending-latte#filters] μπορούν να καταχωρηθούν με αυτόν τον τρόπο:

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

Τα χρησιμοποιούμε σε ένα πρότυπο όπως αυτό:

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


Φίλτρα .[#toc-filters]
======================


batch(int length, mixed item): array .[filter]
----------------------------------------------
Φίλτρο που απλοποιεί την καταχώριση γραμμικών δεδομένων με τη μορφή πίνακα. Επιστρέφει έναν πίνακα με τον δεδομένο αριθμό στοιχείων. Εάν δώσετε μια δεύτερη παράμετρο, αυτή χρησιμοποιείται για να συμπληρώσει τα στοιχεία που λείπουν στην τελευταία γραμμή.

```latte
{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>
```

Εκτυπώσεις:

```latte
<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>
```


breakLines .[filter]
--------------------
Εισάγει διαλείμματα γραμμής HTML πριν από όλες τις νέες γραμμές.

```latte
{var $s = "Text & with \n newline"}
{$s|breakLines}    {* outputs "Text & with <br>\n newline" *}
```


bytes(int precision = 2) .[filter]
----------------------------------
Διαμορφώνει ένα μέγεθος σε bytes σε μορφή αναγνώσιμη από τον άνθρωπο.

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


ceil(int precision = 0) .[filter]
---------------------------------
Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

```latte
{=3.4|ceil}         {* έξοδοι 4 *}
{=135.22|ceil:1}    {* έξοδοι 135.3 *}
{=135.22|ceil:3}    {* έξοδοι 135.22 *}
```

Βλέπε επίσης [floor |#floor], [round |#round].


capitalize .[filter]
--------------------
Επιστρέφει μια έκδοση της τιμής με τίτλο. Οι λέξεις θα ξεκινούν με κεφαλαία γράμματα, όλοι οι υπόλοιποι χαρακτήρες είναι πεζά. Απαιτεί την επέκταση PHP `mbstring`.

```latte
{='i like LATTE'|capitalize}  {* outputs 'I Like Latte' *}
```

Βλέπε επίσης [firstUpper |#firstUpper], [lower |#lower], [upper |#upper].


checkUrl .[filter]
------------------
Επιβάλλει την εξυγίανση URL. Ελέγχει αν η μεταβλητή περιέχει μια διεύθυνση URL στο διαδίκτυο (δηλαδή πρωτόκολλο HTTP/HTTPS) και αποτρέπει τη συγγραφή συνδέσμων που μπορεί να αποτελούν κίνδυνο για την ασφάλεια.

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

Εκτυπώνει:

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

Βλέπε επίσης [nocheck |#nocheck].


clamp(int|float min, int|float max) .[filter]
---------------------------------------------
Επιστρέφει την τιμή που έχει περιοριστεί στο συνολικό εύρος των min και max.

```latte
{$level|clamp: 0, 255}
```

Υπάρχει επίσης ως [συνάρτηση |functions#clamp].


dataStream(string mimetype = detect) .[filter]
----------------------------------------------
Μετατρέπει το περιεχόμενο σε σχήμα URI δεδομένων. Μπορεί να χρησιμοποιηθεί για την εισαγωγή εικόνων σε HTML ή CSS χωρίς την ανάγκη σύνδεσης εξωτερικών αρχείων.

Ας έχουμε μια εικόνα σε μια μεταβλητή `$img = Image::fromFile('obrazek.gif')`, τότε

```latte
<img src={$img|dataStream}>
```

Εκτυπώνει για παράδειγμα:

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

.[caution]
Απαιτεί επέκταση PHP `fileinfo`.


date(string format) .[filter]
-----------------------------
Επιστρέφει μια ημερομηνία στη δεδομένη μορφή χρησιμοποιώντας τις επιλογές των συναρτήσεων PHP [php:strftime] ή [php:date]. Το φίλτρο λαμβάνει μια ημερομηνία ως χρονοσφραγίδα UNIX, συμβολοσειρά ή αντικείμενο τύπου `DateTime`.

```latte
{$today|date:'%d.%m.%Y'}
{$today|date:'j. n. Y'}
```


escapeUrl .[filter]
-------------------
Διασώζει μια μεταβλητή που θα χρησιμοποιηθεί ως παράμετρος σε URL.

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

Βλέπε επίσης [query |#query].


explode(string separator = '') .[filter]
----------------------------------------
Διαχωρίζει μια συμβολοσειρά με βάση το δεδομένο διαχωριστικό και επιστρέφει έναν πίνακα συμβολοσειρών. Ψευδώνυμο για το `split`.

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

Εάν ο διαχωριστής είναι κενή συμβολοσειρά (προεπιλεγμένη τιμή), η είσοδος θα διαιρεθεί σε μεμονωμένους χαρακτήρες:

```latte
{='123'|explode}                  {* επιστρέφει ['1', '2', '3'] *}
```

Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο `split`:

```latte
{='1,2,3'|split:','}              {* επιστρέφει ['1', '2', '3'] *}
```

Δείτε επίσης [implode |#implode].


first .[filter]
---------------
Επιστρέφει το πρώτο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς:

```latte
{=[1, 2, 3, 4]|first}    {* έξοδοι 1 *}
{='abcd'|first}          {* έξοδοι 'a' *}
```

Βλέπε επίσης [last |#last], [random |#random].


floor(int precision = 0) .[filter]
----------------------------------
Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

```latte
{=3.5|floor}        {* έξοδοι 3 *}
{=135.79|floor:1}   {* έξοδοι 135.7 *}
{=135.79|floor:3}   {* έξοδοι 135.79 *}
```

Βλέπε επίσης [ceil |#ceil], [round |#round].


firstUpper .[filter]
--------------------
Μετατρέπει το πρώτο γράμμα της τιμής σε κεφαλαίο. Απαιτεί την επέκταση PHP `mbstring`.

```latte
{='the latte'|firstUpper}  {* outputs 'The latte' *}
```

Βλέπε επίσης [capitalize |#capitalize], [lower |#lower], [upper |#upper].


implode(string glue = '') .[filter]
-----------------------------------
Επιστρέφει μια συμβολοσειρά που είναι η συνένωση των συμβολοσειρών του πίνακα. Ψευδώνυμο για το `join`.

```latte
{=[1, 2, 3]|implode}      {* έξοδοι '123' *}
{=[1, 2, 3]|implode:'|'}  {* έξοδοι '1|2|3' *}
```

Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο `join`:

```latte
{=[1, 2, 3]|join}         {* έξοδοι '123' *}
```


indent(int level = 1, string char = "\t") .[filter]
---------------------------------------------------
Παρεμβάλλει ένα κείμενο από τα αριστερά κατά ένα δεδομένο αριθμό tabs ή άλλων χαρακτήρων που καθορίζουμε στο δεύτερο προαιρετικό όρισμα. Οι κενές γραμμές δεν εσοδεύονται.

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

Εκτυπώνει:

```latte
<div>
	<p>Hello</p>
</div>
```


last .[filter]
--------------
Επιστρέφει το τελευταίο στοιχείο του πίνακα ή το χαρακτήρα της συμβολοσειράς:

```latte
{=[1, 2, 3, 4]|last}    {* έξοδοι 4 *}
{='abcd'|last}          {* έξοδοι 'd' *}
```

Βλέπε επίσης [first |#first], [random |#random].


length .[filter]
----------------
Επιστρέφει το μήκος μιας συμβολοσειράς ή ενός πίνακα.

- για συμβολοσειρές, θα επιστρέψει το μήκος σε χαρακτήρες UTF-8
- για πίνακες, επιστρέφει τον αριθμό των στοιχείων.
- για αντικείμενα που υλοποιούν τη διεπαφή Countable, θα χρησιμοποιήσει την τιμή επιστροφής της count()
- για αντικείμενα που υλοποιούν τη διεπαφή IteratorAggregate, θα χρησιμοποιήσει την τιμή επιστροφής της iterator_count()


```latte
{if ($users|length) > 10}
	...
{/if}
```


lower .[filter]
---------------
Μετατρέπει μια τιμή σε πεζά γράμματα. Απαιτεί την επέκταση PHP `mbstring`.

```latte
{='LATTE'|lower}   {* έξοδοι 'latte' *}
```

Βλέπε επίσης [capitalize |#capitalize], [firstUpper |#firstUpper], [upper |#upper].


nocheck .[filter]
-----------------
Αποτρέπει την αυτόματη εξυγίανση URL. Το Latte [ελέγχει αυτόματα |safety-first#Link checking] αν η μεταβλητή περιέχει μια διεύθυνση URL στο διαδίκτυο (δηλαδή πρωτόκολλο HTTP/HTTPS) και αποτρέπει τη συγγραφή συνδέσμων που μπορεί να αποτελούν κίνδυνο για την ασφάλεια.

Αν ο σύνδεσμος χρησιμοποιεί διαφορετικό σχήμα, όπως `javascript:` ή `data:`, και είστε σίγουροι για το περιεχόμενό του, μπορείτε να απενεργοποιήσετε τον έλεγχο μέσω του `|nocheck`.

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

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

Εκτυπώσεις:

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

Βλέπε επίσης [checkUrl |#checkUrl].


noescape .[filter]
------------------
Απενεργοποιεί την αυτόματη διαφυγή.

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

Εκτυπώνει:

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

.[warning]
Η κατάχρηση του φίλτρου `noescape` μπορεί να οδηγήσει σε ευπάθεια XSS! Ποτέ μην το χρησιμοποιείτε εκτός αν είστε **απολύτως σίγουροι** για το τι κάνετε και ότι η συμβολοσειρά που εκτυπώνετε προέρχεται από αξιόπιστη πηγή.


number(int decimals = 0, string decPoint = '.', string thousandsSep = ',') .[filter]
------------------------------------------------------------------------------------
Διαμορφώνει έναν αριθμό σε δεδομένο αριθμό δεκαδικών ψηφίων. Μπορείτε επίσης να καθορίσετε έναν χαρακτήρα του δεκαδικού σημείου και του διαχωριστικού χιλιάδων.

```latte
{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
```


padLeft(int length, string pad = ' ') .[filter]
-----------------------------------------------
Συμπληρώνει μια συμβολοσειρά σε συγκεκριμένο μήκος με μια άλλη συμβολοσειρά από αριστερά.

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


padRight(int length, string pad = ' ') .[filter]
------------------------------------------------
Γεμίζει μια συμβολοσειρά σε ένα συγκεκριμένο μήκος με μια άλλη συμβολοσειρά από δεξιά.

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


query  .[filter]
----------------
Δημιουργεί δυναμικά μια συμβολοσειρά ερωτήματος στη διεύθυνση URL:

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

Εκτυπώσεις:

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

 `null` παραλείπονται.

Βλέπε επίσης [escapeUrl |#escapeUrl].


random .[filter]
----------------
Επιστρέφει τυχαίο στοιχείο πίνακα ή χαρακτήρα συμβολοσειράς:

```latte
{=[1, 2, 3, 4]|random}    {* παράδειγμα εξόδου: 3 *}
{='abcd'|random}          {* παράδειγμα εξόδου: 'b' *}
```

Βλέπε επίσης [first |#first], [last |#last].


repeat(int count) .[filter]
---------------------------
Επαναλαμβάνει τη συμβολοσειρά x φορές.

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


replace(string|array search, string replace = '') .[filter]
-----------------------------------------------------------
Αντικαθιστά όλες τις εμφανίσεις της συμβολοσειράς αναζήτησης με τη συμβολοσειρά αντικατάστασης.

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

Μπορούν να γίνουν πολλαπλές αντικαταστάσεις ταυτόχρονα:

```latte
{='hello world'|replace: [h => l, l => h]}  {* έξοδοι 'lehho worhd' *}
```


replaceRE(string pattern, string replace = '') .[filter]
--------------------------------------------------------
Αντικαθιστά όλες τις εμφανίσεις σύμφωνα με την κανονική έκφραση.

```latte
{='hello world'|replaceRE: '/l.*/', 'l'}  {* έξοδοι 'hel' *}
```


reverse .[filter]
-----------------
Αντιστρέφει δεδομένη συμβολοσειρά ή πίνακα.

```latte
{var $s = 'Nette'}
{$s|reverse}    {* έξοδοι 'etteN' *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse}    {* returns ['e', 't', 't', 'e', 'N'] *}
```


round(int precision = 0) .[filter]
----------------------------------
Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

```latte
{=3.4|round}        {* έξοδοι 3 *}
{=3.5|round}        {* έξοδοι 4 *}
{=135.79|round:1}   {* έξοδοι 135.8 *}
{=135.79|round:3}   {* έξοδοι 135.79 *}
```

Βλέπε επίσης [ceil |#ceil], [floor |#floor].


slice(int start, int length = null, bool preserveKeys = false) .[filter]
------------------------------------------------------------------------
Εξάγει μια φέτα ενός πίνακα ή μιας συμβολοσειράς.

```latte
{='hello'|slice: 1, 2}           {* έξοδοι 'el' *}
{=['a', 'b', 'c']|slice: 1, 2}   {* outputs ['b', 'c'] *}
```

Το φίλτρο slice λειτουργεί όπως η συνάρτηση `array_slice` της PHP για πίνακες και `mb_substr` για συμβολοσειρές με μια υποχώρηση στο `iconv_substr` σε λειτουργία UTF-8.

Εάν η αρχή είναι μη αρνητική, η ακολουθία θα ξεκινήσει από αυτή την αρχή στη μεταβλητή. Εάν το start είναι αρνητικό, η ακολουθία θα ξεκινήσει τόσο μακριά από το τέλος της μεταβλητής.

Αν το length δίνεται και είναι θετικό, τότε η ακολουθία θα έχει μέχρι τόσα στοιχεία. Εάν η μεταβλητή είναι μικρότερη από το μήκος, τότε θα υπάρχουν μόνο τα διαθέσιμα στοιχεία της μεταβλητής. Αν το μήκος δίνεται και είναι αρνητικό, τότε η ακολουθία θα σταματήσει τόσα στοιχεία από το τέλος της μεταβλητής. Αν παραλείπεται, τότε η ακολουθία θα έχει τα πάντα από το offset μέχρι το τέλος της μεταβλητής.

Το φίλτρο θα αναδιατάξει και θα επαναφέρει τα κλειδιά του ακέραιου πίνακα από προεπιλογή. Αυτή η συμπεριφορά μπορεί να αλλάξει θέτοντας το preserveKeys σε true. Τα αλφαριθμητικά κλειδιά διατηρούνται πάντα, ανεξάρτητα από αυτήν την παράμετρο.


sort  .[filter]
---------------
Φίλτρο που ταξινομεί έναν πίνακα και διατηρεί τη συσχέτιση δεικτών.

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

Πίνακας ταξινομημένος με αντίστροφη σειρά.

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

Μπορείτε να περάσετε τη δική σας συνάρτηση σύγκρισης ως παράμετρο:

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


spaceless  .[filter]
--------------------
Αφαιρεί τα περιττά κενά από την έξοδο. Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο `strip`.

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

Εκτυπώνει:

```latte
<ul> <li>Hello</li> </ul>
```


stripHtml .[filter]
-------------------
Μετατρέπει την HTML σε απλό κείμενο. Δηλαδή, αφαιρεί τις ετικέτες HTML και μετατρέπει τις οντότητες HTML σε κείμενο.

```latte
{='<p>one &lt; two</p>'|stripHtml}  {* outputs 'one < two' *}
```

Το προκύπτον απλό κείμενο μπορεί φυσικά να περιέχει χαρακτήρες που αντιπροσωπεύουν ετικέτες HTML, για παράδειγμα το `'&lt;p&gt;'|stripHtml` μετατρέπεται σε `<p>`. Ποτέ μην εξάγετε το κείμενο που προκύπτει με `|noescape`, καθώς αυτό μπορεί να οδηγήσει σε ευπάθεια ασφαλείας.


substr(int offset, int length = null) .[filter]
-----------------------------------------------
Εξάγει μια φέτα μιας συμβολοσειράς. Αυτό το φίλτρο έχει αντικατασταθεί από ένα φίλτρο [φέτας |#slice].

```latte
{$string|substr: 1, 2}
```


translate(string message, ...args) .[filter]
--------------------------------------------
Μεταφράζει εκφράσεις σε άλλες γλώσσες. Για να καταστήσετε το φίλτρο διαθέσιμο, πρέπει να [ρυθμίσετε τον μεταφραστή |develop#TranslatorExtension]. Μπορείτε επίσης να χρησιμοποιήσετε τις [ετικέτες για τη μετάφραση |tags#Translation].

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


trim(string charlist = " \t\n\r\0\x0B\u{A0}") .[filter]
-------------------------------------------------------
Απογύμνωση αρχικών και τελικών χαρακτήρων, από προεπιλογή κενό διάστημα.

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


truncate(int length, string append = '…') .[filter]
---------------------------------------------------
Συντομεύει μια συμβολοσειρά στο μέγιστο δοσμένο μήκος, αλλά προσπαθεί να διατηρήσει ολόκληρες λέξεις. Αν η συμβολοσειρά είναι κομμένη, προσθέτει ελλειψογράμματα στο τέλος (αυτό μπορεί να αλλάξει με τη δεύτερη παράμετρο).

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


upper .[filter]
---------------
Μετατρέπει μια τιμή σε κεφαλαία γράμματα. Απαιτεί την επέκταση PHP `mbstring`.

```latte
{='latte'|upper}  {* έξοδοι 'LATTE' *}
```

Βλέπε επίσης [capitalize |#capitalize], [firstUpper |#firstUpper], [lower |#lower].


webalize .[filter]
------------------
Μετατρέπει σε ASCII.

Μετατρέπει τα κενά σε παύλες. Αφαιρεί χαρακτήρες που δεν είναι αλφαριθμητικοί, υπογράμμιση ή παύλα. Μετατρέπει σε πεζά γράμματα. Αφαιρεί επίσης τα λευκά κενά που προηγούνται και ακολουθούν.

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

.[caution]
Απαιτεί το πακέτο [nette/utils |utils:].

Φίλτρα Latte

Τα φίλτρα είναι συναρτήσεις που αλλάζουν ή μορφοποιούν τα δεδομένα σε μια μορφή που θέλουμε. Αυτή είναι μια περίληψη των ενσωματωμένων φίλτρων που είναι διαθέσιμα.

Μετασχηματισμός αλφαριθμητικών/συστοιχιών
batch καταχώριση γραμμικών δεδομένων σε πίνακα
breakLines Εισαγωγή διαχωρισμού γραμμών HTML πριν από όλες τις νέες γραμμές
bytes μορφοποιεί το μέγεθος σε bytes
clamp συγκρατεί την τιμή στο εύρος
dataStream Μετατροπή πρωτοκόλλου URI δεδομένων
date μορφοποίηση ημερομηνίας
explode Διαχωρίζει μια συμβολοσειρά με το δεδομένο διαχωριστικό
first επιστρέφει το πρώτο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς
implode συνδέει έναν πίνακα με μια συμβολοσειρά
indent εσοχή του κειμένου από αριστερά με αριθμό tabs
join ενώνει έναν πίνακα σε μια συμβολοσειρά
last επιστρέφει το τελευταίο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς
length επιστρέφει το μήκος μιας συμβολοσειράς ή ενός πίνακα
number μορφοποίηση αριθμού
padLeft συμπληρώνει τη συμβολοσειρά στο συγκεκριμένο μήκος από αριστερά
padRight συμπληρώνει τη συμβολοσειρά στο δεδομένο μήκος από τα δεξιά
random επιστρέφει τυχαίο στοιχείο πίνακα ή χαρακτήρα συμβολοσειράς
repeat επαναλαμβάνει τη συμβολοσειρά
replace αντικαθιστά όλες τις εμφανίσεις της συμβολοσειράς αναζήτησης με την αντικατάσταση
replaceRE αντικαθιστά όλες τις εμφανίσεις σύμφωνα με την κανονική έκφραση
reverse αντιστρέφει μια συμβολοσειρά ή έναν πίνακα UTF-8
slice εξάγει ένα τμήμα ενός πίνακα ή μιας συμβολοσειράς
sort ταξινομεί έναν πίνακα
spaceless αφαιρεί κενά, παρόμοια με την ετικέτα χωρίς κενό
split διαχωρίζει μια συμβολοσειρά με βάση το δεδομένο διαχωριστικό
strip αφαιρεί τα κενά
stripHtml αφαιρεί ετικέτες HTML και μετατρέπει οντότητες HTML σε κείμενο
substr επιστρέφει μέρος της συμβολοσειράς
trim αφαιρεί το κενό διάστημα από τη συμβολοσειρά
translate μετάφραση σε άλλες γλώσσες
truncate συντομεύει το μήκος διατηρώντας ολόκληρες λέξεις
webalize προσαρμόζει τη συμβολοσειρά UTF-8 στο σχήμα που χρησιμοποιείται στη διεύθυνση URL
Περιτύπωμα γραμμάτων
capitalize πεζά γράμματα, το πρώτο γράμμα κάθε λέξης κεφαλαίο
firstUpper κάνει το πρώτο γράμμα κεφαλαίο
lower κάνει μια συμβολοσειρά πεζά
upper κάνει μια συμβολοσειρά κεφαλαίο
Στρογγυλοποίηση αριθμών
ceil στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια
floor στρογγυλοποιεί έναν αριθμό προς τα κάτω με δεδομένη ακρίβεια
round στρογγυλοποιεί έναν αριθμό σε δεδομένη ακρίβεια
Escaping
escapeUrl αποφεύγει την παράμετρο στη διεύθυνση URL
noescape εκτυπώνει μια μεταβλητή χωρίς διαφυγή
query δημιουργεί μια συμβολοσειρά ερωτήματος στη διεύθυνση URL

Υπάρχουν επίσης φίλτρα διαφυγής για HTML (escapeHtml και escapeHtmlComment), XML (escapeXml), JavaScript (escapeJs), CSS (escapeCss) και iCalendar (escapeICal), τα οποία το Latte χρησιμοποιεί το ίδιο χάρη στην διαφυγή με επίγνωση του περιβάλλοντος και δεν χρειάζεται να τα γράψετε.

Ασφάλεια
checkUrl Αποκαθαρίζει τη συμβολοσειρά για χρήση μέσα στο χαρακτηριστικό href.
nocheck αποτρέπει την αυτόματη εξυγίανση URL

Latte οι έλεγχοι των χαρακτηριστικών src και href γίνονται αυτόματα, οπότε σχεδόν δεν χρειάζεται να χρησιμοποιήσετε το φίλτρο checkUrl.

Όλα τα ενσωματωμένα φίλτρα λειτουργούν με κωδικοποιημένες συμβολοσειρές UTF-8.

Χρήση

Το Latte επιτρέπει την κλήση φίλτρων με τη χρήση του συμβολισμού με το σύμβολο της πίπας (επιτρέπεται το κενό που προηγείται):

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

Τα φίλτρα μπορούν να είναι αλυσιδωτά, οπότε εφαρμόζονται με τη σειρά από αριστερά προς τα δεξιά:

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

Οι παράμετροι τοποθετούνται μετά το όνομα του φίλτρου χωρισμένες με άνω και κάτω τελεία ή κόμμα:

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

Τα φίλτρα μπορούν να εφαρμοστούν στην έκφραση:

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

Προσαρμοσμένα φίλτρα μπορούν να καταχωρηθούν με αυτόν τον τρόπο:

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

Τα χρησιμοποιούμε σε ένα πρότυπο όπως αυτό:

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

Φίλτρα

batch (int length, mixed item)array

Φίλτρο που απλοποιεί την καταχώριση γραμμικών δεδομένων με τη μορφή πίνακα. Επιστρέφει έναν πίνακα με τον δεδομένο αριθμό στοιχείων. Εάν δώσετε μια δεύτερη παράμετρο, αυτή χρησιμοποιείται για να συμπληρώσει τα στοιχεία που λείπουν στην τελευταία γραμμή.

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

Εκτυπώσεις:

<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>

breakLines

Εισάγει διαλείμματα γραμμής HTML πριν από όλες τις νέες γραμμές.

{var $s = "Text & with \n newline"}
{$s|breakLines}    {* outputs "Text & with <br>\n newline" *}

bytes (int precision = 2)

Διαμορφώνει ένα μέγεθος σε bytes σε μορφή αναγνώσιμη από τον άνθρωπο.

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

ceil (int precision = 0)

Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

{=3.4|ceil}         {* έξοδοι 4 *}
{=135.22|ceil:1}    {* έξοδοι 135.3 *}
{=135.22|ceil:3}    {* έξοδοι 135.22 *}

Βλέπε επίσης floor, round.

capitalize

Επιστρέφει μια έκδοση της τιμής με τίτλο. Οι λέξεις θα ξεκινούν με κεφαλαία γράμματα, όλοι οι υπόλοιποι χαρακτήρες είναι πεζά. Απαιτεί την επέκταση PHP mbstring.

{='i like LATTE'|capitalize}  {* outputs 'I Like Latte' *}

Βλέπε επίσης firstUpper, lower, upper.

checkUrl

Επιβάλλει την εξυγίανση URL. Ελέγχει αν η μεταβλητή περιέχει μια διεύθυνση URL στο διαδίκτυο (δηλαδή πρωτόκολλο HTTP/HTTPS) και αποτρέπει τη συγγραφή συνδέσμων που μπορεί να αποτελούν κίνδυνο για την ασφάλεια.

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

Εκτυπώνει:

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

Βλέπε επίσης nocheck.

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

Επιστρέφει την τιμή που έχει περιοριστεί στο συνολικό εύρος των min και max.

{$level|clamp: 0, 255}

Υπάρχει επίσης ως συνάρτηση.

dataStream (string mimetype = detect)

Μετατρέπει το περιεχόμενο σε σχήμα URI δεδομένων. Μπορεί να χρησιμοποιηθεί για την εισαγωγή εικόνων σε HTML ή CSS χωρίς την ανάγκη σύνδεσης εξωτερικών αρχείων.

Ας έχουμε μια εικόνα σε μια μεταβλητή $img = Image::fromFile('obrazek.gif'), τότε

<img src={$img|dataStream}>

Εκτυπώνει για παράδειγμα:

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

Απαιτεί επέκταση PHP fileinfo.

date (string format)

Επιστρέφει μια ημερομηνία στη δεδομένη μορφή χρησιμοποιώντας τις επιλογές των συναρτήσεων PHP strftime ή date. Το φίλτρο λαμβάνει μια ημερομηνία ως χρονοσφραγίδα UNIX, συμβολοσειρά ή αντικείμενο τύπου DateTime.

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

escapeUrl

Διασώζει μια μεταβλητή που θα χρησιμοποιηθεί ως παράμετρος σε URL.

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

Βλέπε επίσης query.

explode (string separator = '')

Διαχωρίζει μια συμβολοσειρά με βάση το δεδομένο διαχωριστικό και επιστρέφει έναν πίνακα συμβολοσειρών. Ψευδώνυμο για το split.

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

Εάν ο διαχωριστής είναι κενή συμβολοσειρά (προεπιλεγμένη τιμή), η είσοδος θα διαιρεθεί σε μεμονωμένους χαρακτήρες:

{='123'|explode}                  {* επιστρέφει ['1', '2', '3'] *}

Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο split:

{='1,2,3'|split:','}              {* επιστρέφει ['1', '2', '3'] *}

Δείτε επίσης implode.

first

Επιστρέφει το πρώτο στοιχείο του πίνακα ή τον χαρακτήρα της συμβολοσειράς:

{=[1, 2, 3, 4]|first}    {* έξοδοι 1 *}
{='abcd'|first}          {* έξοδοι 'a' *}

Βλέπε επίσης last, random.

floor (int precision = 0)

Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

{=3.5|floor}        {* έξοδοι 3 *}
{=135.79|floor:1}   {* έξοδοι 135.7 *}
{=135.79|floor:3}   {* έξοδοι 135.79 *}

Βλέπε επίσης ceil, round.

firstUpper

Μετατρέπει το πρώτο γράμμα της τιμής σε κεφαλαίο. Απαιτεί την επέκταση PHP mbstring.

{='the latte'|firstUpper}  {* outputs 'The latte' *}

Βλέπε επίσης capitalize, lower, upper.

implode (string glue = '')

Επιστρέφει μια συμβολοσειρά που είναι η συνένωση των συμβολοσειρών του πίνακα. Ψευδώνυμο για το join.

{=[1, 2, 3]|implode}      {* έξοδοι '123' *}
{=[1, 2, 3]|implode:'|'}  {* έξοδοι '1|2|3' *}

Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο join:

{=[1, 2, 3]|join}         {* έξοδοι '123' *}

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

Παρεμβάλλει ένα κείμενο από τα αριστερά κατά ένα δεδομένο αριθμό tabs ή άλλων χαρακτήρων που καθορίζουμε στο δεύτερο προαιρετικό όρισμα. Οι κενές γραμμές δεν εσοδεύονται.

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

Εκτυπώνει:

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

last

Επιστρέφει το τελευταίο στοιχείο του πίνακα ή το χαρακτήρα της συμβολοσειράς:

{=[1, 2, 3, 4]|last}    {* έξοδοι 4 *}
{='abcd'|last}          {* έξοδοι 'd' *}

Βλέπε επίσης first, random.

length

Επιστρέφει το μήκος μιας συμβολοσειράς ή ενός πίνακα.

  • για συμβολοσειρές, θα επιστρέψει το μήκος σε χαρακτήρες UTF-8
  • για πίνακες, επιστρέφει τον αριθμό των στοιχείων.
  • για αντικείμενα που υλοποιούν τη διεπαφή Countable, θα χρησιμοποιήσει την τιμή επιστροφής της count()
  • για αντικείμενα που υλοποιούν τη διεπαφή IteratorAggregate, θα χρησιμοποιήσει την τιμή επιστροφής της iterator_count()
{if ($users|length) > 10}
	...
{/if}

lower

Μετατρέπει μια τιμή σε πεζά γράμματα. Απαιτεί την επέκταση PHP mbstring.

{='LATTE'|lower}   {* έξοδοι 'latte' *}

Βλέπε επίσης capitalize, firstUpper, upper.

nocheck

Αποτρέπει την αυτόματη εξυγίανση URL. Το Latte ελέγχει αυτόματα αν η μεταβλητή περιέχει μια διεύθυνση URL στο διαδίκτυο (δηλαδή πρωτόκολλο HTTP/HTTPS) και αποτρέπει τη συγγραφή συνδέσμων που μπορεί να αποτελούν κίνδυνο για την ασφάλεια.

Αν ο σύνδεσμος χρησιμοποιεί διαφορετικό σχήμα, όπως javascript: ή data:, και είστε σίγουροι για το περιεχόμενό του, μπορείτε να απενεργοποιήσετε τον έλεγχο μέσω του |nocheck.

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

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

Εκτυπώσεις:

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

Βλέπε επίσης checkUrl.

noescape

Απενεργοποιεί την αυτόματη διαφυγή.

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

Εκτυπώνει:

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

Η κατάχρηση του φίλτρου noescape μπορεί να οδηγήσει σε ευπάθεια XSS! Ποτέ μην το χρησιμοποιείτε εκτός αν είστε απολύτως σίγουροι για το τι κάνετε και ότι η συμβολοσειρά που εκτυπώνετε προέρχεται από αξιόπιστη πηγή.

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

Διαμορφώνει έναν αριθμό σε δεδομένο αριθμό δεκαδικών ψηφίων. Μπορείτε επίσης να καθορίσετε έναν χαρακτήρα του δεκαδικού σημείου και του διαχωριστικού χιλιάδων.

{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

padLeft (int length, string pad = ' ')

Συμπληρώνει μια συμβολοσειρά σε συγκεκριμένο μήκος με μια άλλη συμβολοσειρά από αριστερά.

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

padRight (int length, string pad = ' ')

Γεμίζει μια συμβολοσειρά σε ένα συγκεκριμένο μήκος με μια άλλη συμβολοσειρά από δεξιά.

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

query

Δημιουργεί δυναμικά μια συμβολοσειρά ερωτήματος στη διεύθυνση URL:

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

Εκτυπώσεις:

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

null παραλείπονται.

Βλέπε επίσης escapeUrl.

random

Επιστρέφει τυχαίο στοιχείο πίνακα ή χαρακτήρα συμβολοσειράς:

{=[1, 2, 3, 4]|random}    {* παράδειγμα εξόδου: 3 *}
{='abcd'|random}          {* παράδειγμα εξόδου: 'b' *}

Βλέπε επίσης first, last.

repeat (int count)

Επαναλαμβάνει τη συμβολοσειρά x φορές.

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

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

Αντικαθιστά όλες τις εμφανίσεις της συμβολοσειράς αναζήτησης με τη συμβολοσειρά αντικατάστασης.

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

Μπορούν να γίνουν πολλαπλές αντικαταστάσεις ταυτόχρονα:

{='hello world'|replace: [h => l, l => h]}  {* έξοδοι 'lehho worhd' *}

replaceRE (string pattern, string replace = '')

Αντικαθιστά όλες τις εμφανίσεις σύμφωνα με την κανονική έκφραση.

{='hello world'|replaceRE: '/l.*/', 'l'}  {* έξοδοι 'hel' *}

reverse

Αντιστρέφει δεδομένη συμβολοσειρά ή πίνακα.

{var $s = 'Nette'}
{$s|reverse}    {* έξοδοι 'etteN' *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse}    {* returns ['e', 't', 't', 'e', 'N'] *}

round (int precision = 0)

Στρογγυλοποιεί έναν αριθμό με δεδομένη ακρίβεια.

{=3.4|round}        {* έξοδοι 3 *}
{=3.5|round}        {* έξοδοι 4 *}
{=135.79|round:1}   {* έξοδοι 135.8 *}
{=135.79|round:3}   {* έξοδοι 135.79 *}

Βλέπε επίσης ceil, floor.

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

Εξάγει μια φέτα ενός πίνακα ή μιας συμβολοσειράς.

{='hello'|slice: 1, 2}           {* έξοδοι 'el' *}
{=['a', 'b', 'c']|slice: 1, 2}   {* outputs ['b', 'c'] *}

Το φίλτρο slice λειτουργεί όπως η συνάρτηση array_slice της PHP για πίνακες και mb_substr για συμβολοσειρές με μια υποχώρηση στο iconv_substr σε λειτουργία UTF-8.

Εάν η αρχή είναι μη αρνητική, η ακολουθία θα ξεκινήσει από αυτή την αρχή στη μεταβλητή. Εάν το start είναι αρνητικό, η ακολουθία θα ξεκινήσει τόσο μακριά από το τέλος της μεταβλητής.

Αν το length δίνεται και είναι θετικό, τότε η ακολουθία θα έχει μέχρι τόσα στοιχεία. Εάν η μεταβλητή είναι μικρότερη από το μήκος, τότε θα υπάρχουν μόνο τα διαθέσιμα στοιχεία της μεταβλητής. Αν το μήκος δίνεται και είναι αρνητικό, τότε η ακολουθία θα σταματήσει τόσα στοιχεία από το τέλος της μεταβλητής. Αν παραλείπεται, τότε η ακολουθία θα έχει τα πάντα από το offset μέχρι το τέλος της μεταβλητής.

Το φίλτρο θα αναδιατάξει και θα επαναφέρει τα κλειδιά του ακέραιου πίνακα από προεπιλογή. Αυτή η συμπεριφορά μπορεί να αλλάξει θέτοντας το preserveKeys σε true. Τα αλφαριθμητικά κλειδιά διατηρούνται πάντα, ανεξάρτητα από αυτήν την παράμετρο.

sort

Φίλτρο που ταξινομεί έναν πίνακα και διατηρεί τη συσχέτιση δεικτών.

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

Πίνακας ταξινομημένος με αντίστροφη σειρά.

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

Μπορείτε να περάσετε τη δική σας συνάρτηση σύγκρισης ως παράμετρο:

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

spaceless

Αφαιρεί τα περιττά κενά από την έξοδο. Μπορείτε επίσης να χρησιμοποιήσετε το ψευδώνυμο strip.

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

Εκτυπώνει:

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

stripHtml

Μετατρέπει την HTML σε απλό κείμενο. Δηλαδή, αφαιρεί τις ετικέτες HTML και μετατρέπει τις οντότητες HTML σε κείμενο.

{='<p>one &lt; two</p>'|stripHtml}  {* outputs 'one < two' *}

Το προκύπτον απλό κείμενο μπορεί φυσικά να περιέχει χαρακτήρες που αντιπροσωπεύουν ετικέτες HTML, για παράδειγμα το '&lt;p&gt;'|stripHtml μετατρέπεται σε <p>. Ποτέ μην εξάγετε το κείμενο που προκύπτει με |noescape, καθώς αυτό μπορεί να οδηγήσει σε ευπάθεια ασφαλείας.

substr (int offset, int length = null)

Εξάγει μια φέτα μιας συμβολοσειράς. Αυτό το φίλτρο έχει αντικατασταθεί από ένα φίλτρο φέτας.

{$string|substr: 1, 2}

translate (string message, …args)

Μεταφράζει εκφράσεις σε άλλες γλώσσες. Για να καταστήσετε το φίλτρο διαθέσιμο, πρέπει να ρυθμίσετε τον μεταφραστή. Μπορείτε επίσης να χρησιμοποιήσετε τις ετικέτες για τη μετάφραση.

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

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

Απογύμνωση αρχικών και τελικών χαρακτήρων, από προεπιλογή κενό διάστημα.

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

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

Συντομεύει μια συμβολοσειρά στο μέγιστο δοσμένο μήκος, αλλά προσπαθεί να διατηρήσει ολόκληρες λέξεις. Αν η συμβολοσειρά είναι κομμένη, προσθέτει ελλειψογράμματα στο τέλος (αυτό μπορεί να αλλάξει με τη δεύτερη παράμετρο).

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

upper

Μετατρέπει μια τιμή σε κεφαλαία γράμματα. Απαιτεί την επέκταση PHP mbstring.

{='latte'|upper}  {* έξοδοι 'LATTE' *}

Βλέπε επίσης capitalize, firstUpper, lower.

webalize

Μετατρέπει σε ASCII.

Μετατρέπει τα κενά σε παύλες. Αφαιρεί χαρακτήρες που δεν είναι αλφαριθμητικοί, υπογράμμιση ή παύλα. Μετατρέπει σε πεζά γράμματα. Αφαιρεί επίσης τα λευκά κενά που προηγούνται και ακολουθούν.

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

Απαιτεί το πακέτο nette/utils.