Skip to content

Commit

Permalink
latte 3.0.16
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed May 14, 2024
1 parent 81feb19 commit 4116b68
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 8 deletions.
58 changes: 53 additions & 5 deletions latte/cs/filters.texy
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ V šablonách můžeme používat funkce, které pomáhají upravit nebo přefor
| `date` | [formátuje datum |#date]
| `explode` | [rozdělí řetězec na pole podle oddělovače |#explode]
| `first` | [vrací první prvek pole nebo znak řetězce |#first]
| `group` | [seskupí data podle specifického klíče |#group]
| `implode` | [spojí pole do řetězce |#implode]
| `indent` | [odsadí text zleva o daný počet tabulátorů |#indent]
| `join` | [spojí pole do řetězce |#implode]
Expand Down Expand Up @@ -152,6 +153,8 @@ Vypíše:
</table>
```

Viz také [#group], [tags#iterateWhile].


breakLines .[filter]
--------------------
Expand Down Expand Up @@ -330,6 +333,25 @@ Převede první písmeno na velká. Vyžaduje PHP rozšíření `mbstring`.
Viz také [#capitalize], [#lower], [#upper].


group(string|int|\Closure by): array .[filter]{data-version:3.0.16}
-------------------------------------------------------------------
Filtr seskupí data podle různých kritérií.

V tomto příkladu se řádky v tabulce seskupují podle sloupce `categoryId`. Výstupem je pole polí, kde klíčem je hodnota ve sloupci `categoryId`. [Přečtěte si podrobný návod|cookbook/grouping].

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

Viz také [#batch], funkce [group|functions#group] a značka [iterateWhile|tags#iterateWhile].


implode(string glue = '') .[filter]
-----------------------------------
Vrátí řetězec, který je zřetězením položek sekvence. Alias pro `join`.
Expand Down Expand Up @@ -591,9 +613,9 @@ Pokud je zadaný parametr length a je kladný, posloupnost bude obsahovat tolik
Ve výchozím nastavení filtr změní pořadí a resetuje celočíselného klíče pole. Toto chování lze změnit nastavením preserveKeys na true. Řetězcové klíče jsou vždy zachovány, bez ohledu na tento parametr.


sort .[filter]
--------------
Filtr, který seřadí pole. Zachovává asociaci s klíčí.
sort(?Closure comparison, string|int|\Closure|null by=null, string|int|\Closure|bool byKey=false) .[filter]
-----------------------------------------------------------------------------------------------------------
Filtr slouží k seřazení prvků v poli nebo iterátoru, přičemž zachovává asociační klíče:

```latte
{foreach ($names|sort) as $name}
Expand All @@ -609,12 +631,38 @@ Filtr, který seřadí pole. Zachovává asociaci s klíčí.
{/foreach}
```

Jako parametr lze předat vlastní porovnávací funkci:
Můžete specifikovat vlastní porovnávací funkci pro řazení (příklad ukazuje, jak obrátit řazení od největší po nejmenší):

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

Filtr `|sort` také umožňuje řadit prvky podle klíčů:

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

Pokud potřebujete seřadit tabulku podle konkrétního sloupce, můžete použít parametr `by`. Hodnota `'name'` v ukázce určuje, že se bude řadit podle `$row->name` nebo `$row['name']` (v závislosti na tom, zda je `$row` pole nebo objekt):

```latte
{foreach ($table|sort: by: 'name') as $row}
{$row->name}
{/foreach}
```

Můžete také definovat callback funkci, která určí hodnotu, podle které se má seřadit:

```latte
{foreach ($table|sort: by: fn($row) => $row->category->name) as $row}
{$row->name}
{/foreach}
```

Stejným způsobem lze využít i parametr `byKey`.


spaceless .[filter]
-------------------
Expand Down
24 changes: 22 additions & 2 deletions latte/cs/functions.texy
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ V šablonách můžeme kromě běžných PHP funkcí používat i tyto další.
| `divisibleBy`| [zkontroluje, zda je proměnná dělitelná číslem |#divisibleBy]
| `even` | [zkontroluje, zda je dané číslo sudé |#even]
| `first` | [vrací první prvek pole nebo znak řetězce |#first]
| `group` | [seskupí data podle specifického klíče |#group]
| `hasBlock` | [zjistí existenci bloku |#hasBlock]
| `last` | [vrací poslední prvek pole nebo znak řetězce |#last]
| `odd` | [zkontroluje, zda je dané číslo liché |#odd]
Expand Down Expand Up @@ -74,8 +75,8 @@ Zkontroluje, zda je dané číslo sudé.
```


first(string|array $value): mixed .[method]
-------------------------------------------
first(string|iterable $value): mixed .[method]
----------------------------------------------
Vrací první prvek pole nebo znak řetězce:

```latte
Expand All @@ -86,6 +87,25 @@ Vrací první prvek pole nebo znak řetězce:
Viz také [#last], [filtr first|filters#first].


group(iterable $data, string|int|\Closure $by): array .[method]{data-version:3.0.16}
------------------------------------------------------------------------------------
Funkce seskupí data podle různých kritérií.

V tomto příkladu se řádky v tabulce seskupují podle sloupce `categoryId`. Výstupem je pole polí, kde klíčem je hodnota ve sloupci `categoryId`. [Přečtěte si podrobný návod|cookbook/grouping].

```latte
{foreach group($table, 'categoryId') as $categoryId => $items}
<ul>
{foreach $items as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
```

Viz také filtr [group|filters#group].


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Zjistí, zda blok uvedeného jména existuje:
Expand Down
4 changes: 3 additions & 1 deletion latte/cs/tags.texy
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ To je docela praktické, že?
`{iterateWhile}`
----------------

Zjednodušuje seskupování lineárních dat během iterování v cyklu foreach tím, že iteraci provádí ve vnořené smyčce, dokud je splněná podmínka. [Přečtěte si návod|cookbook/iteratewhile].
Zjednodušuje seskupování lineárních dat během iterování v cyklu foreach tím, že iteraci provádí ve vnořené smyčce, dokud je splněná podmínka. [Přečtěte si podrobný návod|cookbook/grouping].

Může také elegantně nahradit `{first}` a `{last}` v příkladu výše:

Expand All @@ -501,6 +501,8 @@ Může také elegantně nahradit `{first}` a `{last}` v příkladu výše:
{/foreach}
```

Viz také [filters#batch], [filters#group].


`{for}`
-------
Expand Down

0 comments on commit 4116b68

Please sign in to comment.