Skip to content

Commit 70874c6

Browse files
committed
latte: info about Latte\Runtime\Html
1 parent aad9ef8 commit 70874c6

17 files changed

Lines changed: 187 additions & 17 deletions

latte/bg/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ $latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $
6868

6969
Разбира се, функцията, представляваща филтъра, може да приема произволен брой параметри, като се поддържат и променливи параметри.
7070

71+
Ако филтърът връща низ в HTML, можете да го маркирате така, че Latte да не го ескапира автоматично (и следователно двойно). По този начин се избягва необходимостта от задаване на `|noescape` в шаблона.
72+
Най-лесният начин е да обвиете низа в обект `Latte\Runtime\Html`, а другият начин е [Контекстни филтри |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
В този случай филтърът трябва да осигури правилно извеждане на данните.
80+
7181

7282
Филтри, които използват класа .[#toc-filters-using-the-class]
7383
-------------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// променете типа на съдържанието на HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/cs/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Jak vidíte, funkce obdrží levou stranu filtru před pipe `|` jako první argu
6868

6969
Funkce představující filtr může samozřejmě přijímat libovolný počet parametrů, podporovány jsou i variadic parametry.
7070

71+
Pokud filtr vrací řetězec v HTML, můžete jej označit tak, aby jej Latte automaticky (a tedy dvojitě) neescapovalo. Vyhnete se tak potřebě uvádět v šabloně `|noescape`.
72+
Nejjednodušší cestou je řetězec zabalit do objektu `Latte\Runtime\Html`, druhou cestu představují [Kontextové filtry|#Kontextové filtry].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount Kč</i>"));
76+
```
77+
78+
.[note]
79+
Filtr musí v takovém případě zajistit správné escapování dat.
80+
7181

7282
Filtry pomocí třídy
7383
-------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// změníme content-type na HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount Kč</i>";
154164
});
155165
```
156166

latte/de/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Wie Sie sehen können, erhält die Funktion die linke Seite des Filters vor der
6868

6969
Natürlich kann die Funktion, die den Filter darstellt, eine beliebige Anzahl von Parametern annehmen, und auch variable Parameter werden unterstützt.
7070

71+
Wenn der Filter eine Zeichenkette in HTML zurückgibt, können Sie diese so markieren, dass Latte sie nicht automatisch (und damit doppelt) umbricht. Dadurch wird vermieden, dass Sie `|noescape` in der Vorlage angeben müssen.
72+
Am einfachsten ist es, die Zeichenkette in ein `Latte\Runtime\Html` Objekt zu verpacken, die andere Möglichkeit sind [kontextuelle Filter |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
In diesem Fall muss der Filter das korrekte Escaping der Daten sicherstellen.
80+
7181

7282
Filter, die die Klasse .[#toc-filters-using-the-class]
7383
------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// Inhaltstyp in HTML ändern
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/el/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ $latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $
6868

6969
Φυσικά, η συνάρτηση που αναπαριστά το φίλτρο μπορεί να δεχτεί οποιονδήποτε αριθμό παραμέτρων, ενώ υποστηρίζονται και μεταβλητές παράμετροι.
7070

71+
Αν το φίλτρο επιστρέφει ένα αλφαριθμητικό σε HTML, μπορείτε να το επισημάνετε έτσι ώστε το Latte να μην το αποφεύγει αυτόματα (και επομένως διπλά). Με αυτόν τον τρόπο αποφεύγεται η ανάγκη προσδιορισμού του `|noescape` στο πρότυπο.
72+
Ο ευκολότερος τρόπος είναι να τυλίξετε τη συμβολοσειρά σε ένα αντικείμενο `Latte\Runtime\Html`, ο άλλος τρόπος είναι τα [φίλτρα πλαισίου |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
Στην περίπτωση αυτή, το φίλτρο πρέπει να διασφαλίζει τη σωστή διαφυγή των δεδομένων.
80+
7181

7282
Φίλτρα που χρησιμοποιούν την κλάση .[#toc-filters-using-the-class]
7383
------------------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// αλλάζουμε τον τύπο περιεχομένου σε HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/en/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ As you can see, the function receives the left side of the filter before the pip
6868

6969
Of course, the function representing the filter can accept any number of parameters, and variadic parameters are also supported.
7070

71+
If the filter returns a string in HTML, you can mark it so that Latte does not automatically (and therefore double) escaping it. This avoids the need to specify `|noescape` in the template.
72+
The easiest way is to wrap the string in a `Latte\Runtime\Html` object, the other way is [Contextual Filters|#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
In this case, the filter must ensure correct escaping of the data.
80+
7181

7282
Filters Using the Class
7383
-----------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// change content-type to HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/es/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Como puede ver, la función recibe la parte izquierda del filtro antes de la tub
6868

6969
Por supuesto, la función que representa el filtro puede aceptar cualquier número de parámetros, y también se admiten parámetros variádicos.
7070

71+
Si el filtro devuelve una cadena en HTML, puede marcarla para que Latte no la escape automáticamente (y por tanto por partida doble). Esto evita la necesidad de especificar `|noescape` en la plantilla.
72+
La forma más fácil es envolver la cadena en un objeto `Latte\Runtime\Html`, la otra forma es [Filtros contextuales |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
En este caso, el filtro debe garantizar el correcto escape de los datos.
80+
7181

7282
Filtros que utilizan la clase .[#toc-filters-using-the-class]
7383
-------------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// change content-type to HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/fr/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Comme vous pouvez le voir, la fonction reçoit le côté gauche du filtre avant
6868

6969
Bien sûr, la fonction représentant le filtre peut accepter n'importe quel nombre de paramètres, et les paramètres variadiques sont également supportés.
7070

71+
Si le filtre renvoie une chaîne en HTML, vous pouvez la marquer pour que Latte ne l'échappe pas automatiquement (et donc doublement). Cela évite d'avoir à spécifier `|noescape` dans le modèle.
72+
La méthode la plus simple consiste à envelopper la chaîne dans un objet `Latte\Runtime\Html`, l'autre méthode étant celle des [filtres contextuels |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
Dans ce cas, le filtre doit assurer l'échappement correct des données.
80+
7181

7282
Filtres utilisant la classe .[#toc-filters-using-the-class]
7383
-----------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// changez le type de contenu en HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/hu/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Mint látható, a függvény a következő argumentumként a szűrő bal oldalá
6868

6969
Természetesen a szűrőt reprezentáló függvény tetszőleges számú paramétert fogadhat el, és a változó paraméterek is támogatottak.
7070

71+
Ha a szűrő egy karakterláncot ad vissza HTML-ben, akkor megjelölheted, hogy a Latte ne automatikusan (és ezért duplán) szedje ki. Így elkerülhető a `|noescape` megadása a sablonban.
72+
A legegyszerűbb, ha a sztringet egy `Latte\Runtime\Html` objektumba csomagoljuk, a másik lehetőség a [Contextual Filters |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
Ebben az esetben a szűrőnek biztosítania kell az adatok helyes kikerülését.
80+
7181

7282
Az osztályt használó szűrők .[#toc-filters-using-the-class]
7383
-----------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// a tartalomtípust HTML-re módosítja
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/it/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ Come si può vedere, la funzione riceve il lato sinistro del filtro prima della
6868

6969
Naturalmente, la funzione che rappresenta il filtro può accettare un numero qualsiasi di parametri e sono supportati anche i parametri variabili.
7070

71+
Se il filtro restituisce una stringa in HTML, è possibile contrassegnarla in modo che Latte non esegua automaticamente (e quindi doppiamente) l'escape. Questo evita la necessità di specificare `|noescape` nel template.
72+
Il modo più semplice è avvolgere la stringa in un oggetto `Latte\Runtime\Html`, l'altro modo è [Filtri contestuali |#Contextual Filters].
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
In questo caso, il filtro deve garantire il corretto escape dei dati.
80+
7181

7282
Filtri che utilizzano la classe .[#toc-filters-using-the-class]
7383
---------------------------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// cambia il tipo di contenuto in HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

latte/ja/extending-latte.texy

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ $latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $
6868

6969
もちろん、フィルタを表す関数は任意の数のパラメータを受け取ることができ、可変長のパラメータもサポートされています。
7070

71+
フィルターがHTMLの文字列を返す場合、ラテが自動的に(つまり二重に)エスケープしないようにマークすることができます。これにより、テンプレートで`|noescape` を指定する必要がなくなります。
72+
最も簡単な方法は、`Latte\Runtime\Html` オブジェクトで文字列をラップすることです。もう一つの方法は、[コンテキストフィルタ |#Contextual Filters]です。
73+
74+
```php
75+
$latte->addFilter('money', fn(float $amount) => new Latte\Runtime\Html("<i>$amount EUR</i>"));
76+
```
77+
78+
.[note]
79+
この場合、フィルターはデータの正しいエスケープを保証しなければならない。
80+
7181

7282
クラスを使ったフィルタ .[#toc-filters-using-the-class]
7383
-------------------------------------------
@@ -150,7 +160,7 @@ $latte->addFilter('money', function (FilterInfo $info, float $amount): string {
150160

151161
// change content-type to HTML
152162
$info->contentType = ContentType::Html;
153-
return "<i>$num Kč</i>";
163+
return "<i>$amount EUR</i>";
154164
});
155165
```
156166

0 commit comments

Comments
 (0)