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 6d83c80 commit 3304e08
Show file tree
Hide file tree
Showing 51 changed files with 1,326 additions and 136 deletions.
58 changes: 53 additions & 5 deletions latte/bg/filters.texy
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
| `date` | [форматиране на датата |#date]
| `explode` | [разделя низа с даден разделител |#explode]
| `first` [връща първия елемент на масив или символен низ |#first]
| `group` | [групиране на данни по различни критерии |#group]
| `implode` | [свързва масива с низ |#implode]
| `indent` | [отстъпи на текста наляво с броя на табулаторите |#indent]
| `join` | [обединяване на масив в низ |#implode]
Expand Down Expand Up @@ -152,6 +153,8 @@ batch(int length, mixed item): array .[filter]
</table>
```

Вижте също таговете [group |#group] и [iterateWhile |tags#iterateWhile].


breakLines .[filter]
--------------------
Expand Down Expand Up @@ -330,6 +333,25 @@ firstUpper .[filter]
Вижте също [capitalize |#capitalize], [lower |#lower], [upper |#upper].


group(string|int|\Closure by): array .[filter]{data-version:3.0.16}
-------------------------------------------------------------------
Филтърът групира данните по различни критерии.

В този пример редовете в таблицата са групирани по колоната `categoryId`. Изходът е масив от масиви, където ключът е стойността в колоната `categoryId`. Прочетете [подробните инструкции |cookbook/grouping].

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

Вижте също [batch |#batch], функцията [group |functions#group] и маркера [iterateWhile |tags#iterateWhile].


implode(string glue = '') .[filter]
-----------------------------------
Връща низ, който е конкатенация на низовете в масива. Псевдоним за `join`.
Expand Down Expand Up @@ -591,9 +613,9 @@ slice(int start, int length = null, bool preserveKeys = false) .[filter]
По подразбиране Filter ще пренареди и нулира ключовете на целочислените масиви. Това поведение може да бъде променено чрез задаване на стойност preserveKeys на true. Ключовете на низове винаги се запазват, независимо от този параметър.


sort .[filter]
---------------
Филтър, който сортира масив и поддържа асоциация на индексите.
sort(?Closure comparison, string|int|\Closure|null by=null, string|int|\Closure|bool byKey=false) .[filter]
-----------------------------------------------------------------------------------------------------------
Филтърът се използва за сортиране на елементите в масив или итератор, като се запазват ключовете за асоцииране:

```latte
{foreach ($names|sort) as $name}
Expand All @@ -609,12 +631,38 @@ sort .[filter]
{/foreach}
```

Можете да подадете своя собствена функция за сравнение като параметър:
Можете да зададете потребителска функция за сравнение за сортиране (примерът показва как да обърнете сортирането от най-голям към най-малък):

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

Филтърът `|sort` също така ви позволява да сортирате елементите по ключ:

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

Ако трябва да сортирате таблицата по определена колона, можете да използвате параметъра `by`. Стойността `'name'` в примера указва, че ще бъде сортирана по `$row->name` или `$row['name']`, в зависимост от това дали `$row` е масив или обект:

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

Можете също така да дефинирате функция за обратно извикване, която определя стойността, по която да се сортира:

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

Параметърът `byKey` може да се използва по същия начин.


spaceless .[filter]
--------------------
Expand Down
24 changes: 22 additions & 2 deletions latte/bg/functions.texy
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
| `divisibleBy`| [проверява дали дадена променлива се дели на дадено число |#divisibleBy]
| `even` | [проверява дали дадено число е четно число|#even]
| `first` | [връща първия елемент на масив или символен низ |#first]
| `group` | [групиране на данни по различни критерии |#group]
| `hasBlock` | [открива съществуването на блок |#hasBlock]
| `last` | [връща последния елемент на масив или символен низ|#last]
| `odd` | [проверява дали числото е нечетно |#odd]
Expand Down Expand Up @@ -74,8 +75,8 @@ even(int $value): bool .[method]
```


first(string|array $value): mixed .[method]
-------------------------------------------
first(string|iterable $value): mixed .[method]
----------------------------------------------
Връща първия елемент на масив или символен низ:

```latte
Expand All @@ -86,6 +87,25 @@ first(string|array $value): mixed .[method]
Вижте също [последно |#last], [първо филтриране |filters#first].


group(iterable $data, string|int|\Closure $by): array .[method]{data-version:3.0.16}
------------------------------------------------------------------------------------
Тази функция групира данните по различни критерии.

В този пример редовете в таблицата са групирани по колоната `categoryId`. Изходът е масив от полета, където ключът е стойността в колоната `categoryId`. Прочетете [подробните инструкции |cookbook/grouping].

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

Вижте също филтърна [група |filters#group].


hasBlock(string $name): bool .[method]{data-version:3.0.10}
-----------------------------------------------------------
Проверява дали блокът със зададеното име съществува:
Expand Down
4 changes: 3 additions & 1 deletion latte/bg/tags.texy
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ Lata е умен и `$iterator->last` работи не само за масив
`{iterateWhile}`
----------------

Опростява групирането на линейни данни по време на итерация в цикъл foreach чрез итерация във вложен цикъл, докато условието е изпълнено. [Прочетете инструкциите в книгата с рецепти |cookbook/iteratewhile].
Опростява групирането на линейни данни по време на итерация в цикъл foreach чрез итерация във вложен цикъл, докато не бъде изпълнено дадено условие. [Прочетете подробните инструкции |cookbook/grouping].

Той може също така елегантно да замени `{first}` и `{last}` в примера по-горе:

Expand All @@ -501,6 +501,8 @@ Lata е умен и `$iterator->last` работи не само за масив
{/foreach}
```

Вижте също филтри за [партиди |filters#batch] и [групи |filters#group].


`{for}`
-------
Expand Down
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 různých kritérií |#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] a značka [iterateWhile|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á ř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 různých kritérií |#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é filtry [batch|filters#batch] a [group|filters#group].


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

0 comments on commit 3304e08

Please sign in to comment.