Skip to content

Commit

Permalink
better wording [Closes #1038][Closes #1040][Closes #1026][Closes #1025][
Browse files Browse the repository at this point in the history
Closes #1019][Closes #1016][Closes #1015]
  • Loading branch information
mildabre authored and dg committed Dec 17, 2024
1 parent 435b70a commit c776dfd
Show file tree
Hide file tree
Showing 41 changed files with 142 additions and 142 deletions.
6 changes: 3 additions & 3 deletions application/cs/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ Odkaz, který zavolá signál, vytvoříme obvyklým způsobem, tedy v šabloně
<a n:href="click! $x, $y">click here</a>
```

Signál se vždy volá na aktuálním presenteru a view, tudíž není možné jej vyvolat na jiném presenteru nebo view.
Signál se vždy volá na aktuálním presenteru a action, není možné jej vyvolat na jiném presenteru nebo jiné action.

Signál tedy způsobí znovunačtení stránky úplně stejně jako při původním požadavku, jen navíc zavolá obslužnou metodu signálu s příslušnými parametry. Pokud metoda neexistuje, vyhodí se výjimka [api:Nette\Application\UI\BadSignalException], která se uživateli zobrazí jako chybová stránka 403 Forbidden.

Expand Down Expand Up @@ -430,7 +430,7 @@ class PaginatingControl extends Control
}
```

Opačný proces, tedy sesbírání hodnot z persistentních properites, má na starosti metoda `saveState()`.
Opačný proces, tedy sesbírání hodnot z persistentních properties, má na starosti metoda `saveState()`.


Signály do hloubky
Expand All @@ -444,7 +444,7 @@ Signál může přijímat jakákoliv komponenta, presenter nebo objekt, který i

Mezi hlavní příjemce signálů budou patřit `Presentery` a vizuální komponenty dědící od `Control`. Signál má sloužit jako znamení pro objekt, že má něco udělat – anketa si má započítat hlas od uživatele, blok s novinkami se má rozbalit a zobrazit dvakrát tolik novinek, formulář byl odeslán a má zpracovat data a podobně.

URL pro signál vytváříme pomocí metody [Component::link() |api:Nette\Application\UI\Component::link()]. Jako parametr `$destination` předáme řetězec `{signal}!` a jako `$args` pole argumentů, které chceme signálu předat. Signál se vždy volá na aktuální view s aktuálními parametry, parametry signálu se jen přidají. Navíc se přidává hned na začátku **parametr `?do`, který určuje signál**.
URL pro signál vytváříme pomocí metody [Component::link() |api:Nette\Application\UI\Component::link()]. Jako parametr `$destination` předáme řetězec `{signal}!` a jako `$args` pole argumentů, které chceme signálu předat. Signál se vždy volá na aktuálním presenteru a action s aktuálními parametry, parametry signálu se jen přidají. Navíc se přidává hned na začátku **parametr `?do`, který určuje signál**.

Jeho formát je buď `{signal}`, nebo `{signalReceiver}-{signal}`. `{signalReceiver}` je název komponenty v presenteru. Proto nemůže být v názvu komponenty pomlčka – používá se k oddělení názvu komponenty a signálu, je ovšem možné takto zanořit několik komponent.

Expand Down
2 changes: 1 addition & 1 deletion application/el/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ class PaginatingControl extends Control
}
```

Η αντίθετη διαδικασία, δηλαδή η συλλογή τιμών από persistent properites, αντιμετωπίζεται από τη μέθοδο `saveState()`.
Η αντίθετη διαδικασία, δηλαδή η συλλογή τιμών από persistent properties, αντιμετωπίζεται από τη μέθοδο `saveState()`.


Σήματα σε βάθος .[#toc-signals-in-depth]
Expand Down
6 changes: 3 additions & 3 deletions application/en/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ The link that calls the signal is created in the usual way, i.e. in the template
<a n:href="click! $x, $y">click here</a>
```

The signal is always called on the current presenter and view, so it is not possible to link to signal in different presenter / action.
The signal is always called on the current presenter and action, it cannot be called on another presenter or action.

Thus, the signal causes the page to be reloaded in exactly the same way as in the original request, only in addition it calls the signal handling method with the appropriate parameters. If the method does not exist, exception [api:Nette\Application\UI\BadSignalException] is thrown, which is displayed to the user as error page 403 Forbidden.

Expand Down Expand Up @@ -430,7 +430,7 @@ class PaginatingControl extends Control
}
```

The opposite process, that is, collecting values from persistent properites, is handled by the `saveState()` method.
The opposite process, that is, collecting values from persistent properties, is handled by the `saveState()` method.


Signals in Depth
Expand All @@ -444,7 +444,7 @@ Signal can be received by any component, presenter of object which implements in

The main receivers of signals are `Presenters` and visual components extending `Control`. A signal is a sign for an object that it has to do something - poll counts in a vote from user, box with news has to unfold, form was sent and has to process data and so on.

The URL for the signal is created using the method [Component::link() |api:Nette\Application\UI\Component::link()]. As parameter `$destination` we pass string `{signal}!` and as `$args` an array of arguments which we want to pass to the signal handler. Signal parameters are attached to the URL of the current presenter/view. **The parameter `?do` in the URL determines the signal called.**
The URL for the signal is created using the [Component::link() |api:Nette\Application\UI\Component::link()] method. We pass the string `{signal}!` as the `$destination` parameter and the array of arguments we want to pass to the signal as `$args`. The signal is always called on the current presenter and action with the current parameters, the signal parameters are just added. In addition, the **parameter `?do`, which specifies the signal** is added right at the beginning.

Its format is `{signal}` or `{signalReceiver}-{signal}`. `{signalReceiver}` is the name of the component in the presenter. This is why hyphen (inaccurately dash) can't be present in the name of components - it is used to divide the name of the component and signal, but it's possible to compose several components.

Expand Down
2 changes: 1 addition & 1 deletion application/pl/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ class PaginatingControl extends Control
}
```

Procesem przeciwnym, czyli pobieraniem wartości z persistent properites, zajmuje się metoda `saveState()`.
Procesem przeciwnym, czyli pobieraniem wartości z persistent properties, zajmuje się metoda `saveState()`.


Sygnały w głąb .[#toc-signaly-do-hloubky]
Expand Down
2 changes: 1 addition & 1 deletion application/pt/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ class PaginatingControl extends Control
}
```

O processo oposto, ou seja, a coleta de valores de properites persistentes, é tratado pelo método `saveState()`.
O processo oposto, ou seja, a coleta de valores de properties persistentes, é tratado pelo método `saveState()`.


Sinais em profundidade .[#toc-signals-in-depth]
Expand Down
2 changes: 1 addition & 1 deletion best-practices/cs/composer.texy
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ composer update

Composer stáhne Nette Database do složky `vendor/`. Dále vytvoří soubor `composer.lock`, který obsahuje informace o tom, které verze knihoven přesně nainstaloval.

Composer vygeneruje soubor `vendor/autoload.php`, který můžeme jednoduše zainkludovat a začít používat knihovny bez jakékoli další práce:
Composer vygeneruje soubor `vendor/autoload.php`, který můžeme jednoduše inkludovat a začít používat knihovny bez jakékoli další práce:

```php
require __DIR__ . '/vendor/autoload.php';
Expand Down
2 changes: 1 addition & 1 deletion best-practices/cs/inject-method-attribute.texy
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class MyPresenter extends Nette\Application\UI\Presenter

Výhodou tohoto způsobu předávání závislostí byla velice úsporná podoba zápisu. Nicméně s příchodem [constructor property promotion |https://blog.nette.org/cs/php-8-0-kompletni-prehled-novinek#toc-constructor-property-promotion] se jeví snazší použít konstruktor.

Naopak tento způsob trpí stejnými nedostatky, jako předávání závislosti do properites obecně: nemáme kontrolu nad změnami v proměnné a zároveň se proměnná stává součástí veřejného rozhraní třídy, což je nežádnoucí.
Naopak tento způsob trpí stejnými nedostatky, jako předávání závislosti do properties obecně: nemáme kontrolu nad změnami v proměnné a zároveň se proměnná stává součástí veřejného rozhraní třídy, což je nežádnoucí.


{{sitename: Best Practices}}
2 changes: 1 addition & 1 deletion database/cs/upgrading.texy
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Přechod z verze 3.1 na 3.2

Minimální požadovaná verze PHP je 8.1.

Kód byl pečlivě vyladěn pro PHP 8.1. Byly doplněny všechny nové typehinty u metod a properites. Změny jsou jen drobné:
Kód byl pečlivě vyladěn pro PHP 8.1. Byly doplněny všechny nové typehinty u metod a properties. Změny jsou jen drobné:

- MySQL: nulové datum `0000-00-00` vrací jako `null`
- MySQL: decimal bez desetinných míst vrací jako int místo float
Expand Down
12 changes: 6 additions & 6 deletions forms/bg/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
В Nette е много лесно да се реагира на изпълнението или неизпълнението на дадено условие от страна на JavaScript, като се използва методът `toggle()`, вж. раздел [Динамичен JavaScript |#Динамический JavaScript].


Връзки между контролите .[#toc-references-between-controls]
===========================================================
Препратка към друг елемент .[#toc-reference-to-another-element]
===============================================================

Аргумент на правило или условие може да бъде препратка към друг елемент. Например можете динамично да потвърдите, че `text` има толкова знаци, колкото са посочени в полето `length`:
Като аргумент за правило или условие можете да предадете и друг елемент от формуляра. Тогава правилото ще използва стойността, въведена по-късно от потребителя в браузъра. Това може да се използва например за динамично потвърждаване, че елементът `password` съдържа същия низ като елемента `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
14 changes: 7 additions & 7 deletions forms/cs/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
V Nette lze velmi snadno reagovat na splnění či nesplnění podmínky i na straně JavaScriptu pomocí metody `toggle()`, viz [#dynamický JavaScript].


Reference mezi prvky
====================
Reference na jiný prvek
=======================

Jako argument pravidla či podmínky lze uvádět referenci na jiný prvek. Takto lze např. dynamicky validovat, že prvek `text` má tolik znaků, jako je hodnota prvku `length`:
Jako argument pravidla či podmínky lze předat i jiný prvek formuláře. Pravidlo potom použije hodnotu vloženou později uživatelem v prohlížeči. Takto lze např. dynamicky validovat, že prvek `password` obsahuje stejný řetězec jako prvek `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Heslo');
$form->addPassword('password_confirm', 'Potvrďte heslo')
->addRule($form::Equal, 'Zadaná hesla se neshodují', $form['password']);
```


Expand All @@ -172,7 +172,7 @@ Vlastní pravidla a podmínky

Občas se dostaneme do situace, kdy nám vestavěná validační pravidla v Nette nestačí a potřebujeme data od uživatele validovat po svém. V Nette je to velmi jednoduché!

Metodám `addRule()` či `addCondition()` lze první parametr předat libovolný callback. Ten přijímá jako první parametr samotný prvek a vrací boolean hodnotu určující, zda validace proběhla v pořádku. Při přidávání pravidla pomocí `addRule()` je možné zadat i další argumenty, ty jsou pak předány jako druhý parametr.
Metodám `addRule()` či `addCondition()` lze jako první parametr předat libovolný callback. Ten přijímá jako první parametr samotný prvek a vrací boolean hodnotu určující, zda validace proběhla v pořádku. Při přidávání pravidla pomocí `addRule()` je možné zadat i další argumenty, ty jsou pak předány jako druhý parametr.

Vlastní sadu validátorů tak můžeme vytvořit jako třídu se statickými metodami:

Expand Down
12 changes: 6 additions & 6 deletions forms/de/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
In Nette ist es sehr einfach, auf die Erfüllung oder Nichterfüllung einer Bedingung auf der JavaScript-Seite mit der Methode `toggle()` zu reagieren, siehe [Dynamisches JavaScript |#Dynamic JavaScript].


Referenzen zwischen Controls .[#toc-references-between-controls]
================================================================
Verweis auf ein anderes Element .[#toc-reference-to-another-element]
====================================================================

Das Regel- oder Bedingungsargument kann ein Verweis auf ein anderes Element sein. Sie können zum Beispiel dynamisch überprüfen, ob `text` so viele Zeichen hat wie der Wert des Feldes `length` beträgt:
Als Argument für eine Regel oder Bedingung können Sie auch ein anderes Formularelement übergeben. Die Regel wird dann den Wert verwenden, den der Benutzer später im Browser eingibt. Auf diese Weise kann z. B. dynamisch überprüft werden, ob das Element `password` dieselbe Zeichenfolge enthält wie das Element `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
12 changes: 6 additions & 6 deletions forms/el/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
Στη Nette, είναι πολύ εύκολο να αντιδράσετε στην εκπλήρωση ή όχι μιας συνθήκης από την πλευρά της JavaScript χρησιμοποιώντας τη μέθοδο `toggle()`, βλέπε [Δυναμική JavaScript |#Dynamic JavaScript].


Αναφορές μεταξύ στοιχείων ελέγχου .[#toc-references-between-controls]
=====================================================================
Αναφορά σε άλλο στοιχείο .[#toc-reference-to-another-element]
=============================================================

Το όρισμα του κανόνα ή της συνθήκης μπορεί να είναι μια αναφορά σε ένα άλλο στοιχείο. Για παράδειγμα, μπορείτε να επικυρώσετε δυναμικά ότι το `text` έχει τόσους χαρακτήρες όσοι είναι οι τιμές του πεδίου `length`:
Ως όρισμα για έναν κανόνα ή συνθήκη, μπορείτε επίσης να περάσετε ένα άλλο στοιχείο της φόρμας. Ο κανόνας θα χρησιμοποιήσει τότε την τιμή που θα εισαχθεί αργότερα από τον χρήστη στο πρόγραμμα περιήγησης. Αυτό μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη δυναμική επικύρωση ότι το στοιχείο `password` περιέχει την ίδια συμβολοσειρά με το στοιχείο `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
12 changes: 6 additions & 6 deletions forms/en/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
In Nette, it is very easy to react to the fulfillment or not of a condition on the JavaScript side using the `toggle()` method, see [#Dynamic JavaScript].


References Between Controls
===========================
Reference to Another Element
============================

The rule or condition argument can be a reference to another element. For example, you can dynamically validate that the `text` has as many characters as the value of the `length` field is:
As an argument for a rule or condition, you can also pass another form element. The rule will then use the value entered later by the user in the browser. This can be used, for example, to dynamically validate that the `password` element contains the same string as the `password_confirm` element:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
10 changes: 5 additions & 5 deletions forms/es/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
En Nette, es muy fácil reaccionar al cumplimiento o no de una condición en la parte JavaScript utilizando el método `toggle()`, véase [JavaScript dinámico |#Dynamic JavaScript].


Referencias entre Controles .[#toc-references-between-controls]
Referencia a otro elemento .[#toc-reference-to-another-element]
===============================================================

El argumento de la regla o condición puede ser una referencia a otro elemento. Por ejemplo, puede validar dinámicamente que `text` tenga tantos caracteres como el valor del campo `length`:
Como argumento para una regla o condición, también puede pasar otro elemento del formulario. La regla utilizará entonces el valor introducido posteriormente por el usuario en el navegador. Esto se puede utilizar, por ejemplo, para validar dinámicamente que el elemento `password` contiene la misma cadena que el elemento `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
12 changes: 6 additions & 6 deletions forms/fr/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ $form->addText(/* ... */)
Dans Nette, il est très facile de réagir à la réalisation ou non d'une condition du côté JavaScript en utilisant la méthode `toggle()`, voir [Dynamic JavaScript |#Dynamic JavaScript].


Références entre les contrôles .[#toc-references-between-controls]
==================================================================
Référence à un autre élément .[#toc-reference-to-another-element]
=================================================================

L'argument de la règle ou de la condition peut être une référence à un autre élément. Par exemple, vous pouvez valider dynamiquement que le champ `text` comporte autant de caractères que la valeur du champ `length`:
En tant qu'argument d'une règle ou d'une condition, vous pouvez également transmettre un autre élément de formulaire. La règle utilisera alors la valeur introduite ultérieurement par l'utilisateur dans le navigateur. Cela peut être utilisé, par exemple, pour valider dynamiquement que l'élément `password` contient la même chaîne de caractères que l'élément `password_confirm`:

```php
$form->addInteger('length');
$form->addText('text')
->addRule($form::Length, null, $form['length']);
$form->addPassword('password', 'Password');
$form->addPassword('password_confirm', 'Confirm Password')
->addRule($form::Equal, 'The passwords do not match', $form['password']);
```


Expand Down
Loading

0 comments on commit c776dfd

Please sign in to comment.