Skip to content

Commit 59ac109

Browse files
mildabredg
authored andcommitted
application: improvements (#990)(#993)(#999)(#1002)
1 parent 21abc31 commit 59ac109

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+639
-95
lines changed

application/bg/ajax.texy

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ AJAX и фрагменти
1010

1111
</div>
1212

13-
Заявката AJAX може да бъде открита чрез метода на услугата, който [капсулира HTTP заявката |http:request] `$httpRequest->isAjax()` (определя се въз основа на HTTP заглавието `X-Requested-With`). Съществува и съкратен метод в програмата за представяне: `$this->isAjax()`.
1413

15-
Заявката AJAX не се различава от обикновената заявка - водещият се извиква с определено представяне и параметри. От водещия зависи и как ще реагира: той може да използва процедурите си, за да върне фрагмент от HTML код, XML документ, JSON обект или част от Javascript код.
14+
Заявка AJAX .[#toc-ajax-request]
15+
================================
16+
17+
Заявката AJAX не се различава от класическата заявка - водещият се извиква с определен изглед и параметри. От водещия също зависи как да отговори на нея: той може да използва своя собствена процедура, която връща фрагмент от HTML код (HTML snippet), XML документ, JSON обект или JavaScript код.
18+
19+
От страна на сървъра AJAX заявката може да бъде открита с помощта на метода на услугата, [капсулиращ HTTP заявката |http:request] `$httpRequest->isAjax()` (открива се въз основа на HTTP заглавието `X-Requested-With`). Вътре в презентатора е наличен пряк път под формата на метода `$this->isAjax()`.
1620

1721
Съществува предварително обработен обект `payload`, предназначен за изпращане на данни към браузъра във формат JSON.
1822

@@ -60,6 +64,21 @@ npm install naja
6064
<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>
6165
```
6266

67+
За да създадете AJAX заявка от обикновена връзка (сигнал) или подаване на формуляр, просто маркирайте съответната връзка, формуляр или бутон с класа `ajax`:
68+
69+
```html
70+
<a n:href="go!" class="ajax">Go</a>
71+
72+
<form n:name="form" class="ajax">
73+
<input n:name="submit">
74+
</form>
75+
76+
or
77+
<form n:name="form">
78+
<input n:name="submit" class="ajax">
79+
</form>
80+
```
81+
6382

6483
Извадки .[#toc-snippety]
6584
========================

application/bg/bootstrap.texy

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ $configurator->addStaticParameters([
174174
]);
175175
```
176176

177-
Конфигурационните файлове могат да използват нормалния запис `%projectId%` за достъп до параметъра с име `projectId`. По подразбиране конфигураторът попълва следните параметри: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` и `consoleMode`.
177+
В конфигурационните файлове можем да запишем обичайната нотация `%projectId%`, за да получим достъп до параметъра с име `projectId`.
178178

179179

180180
Динамични параметри .[#toc-dynamic-parameters]
@@ -197,6 +197,19 @@ $configurator->addDynamicParameters([
197197
```
198198

199199

200+
Параметри по подразбиране .[#toc-default-parameters]
201+
----------------------------------------------------
202+
203+
Можете да използвате следните статични параметри в конфигурационните файлове:
204+
205+
- `%appDir%` е абсолютният път до директорията на файла `Bootstrap.php`
206+
- `%wwwDir%` е абсолютният път до директорията, съдържаща входния файл `index.php`
207+
- `%tempDir%` е абсолютният път до директорията за временни файлове
208+
- `%vendorDir%` е абсолютният път до директорията, в която Composer инсталира библиотеки
209+
- `%debugMode%` показва дали приложението е в режим на отстраняване на грешки
210+
- `%consoleMode%` показва дали заявката е постъпила от командния ред
211+
212+
200213
Внесени услуги .[#toc-imported-services]
201214
----------------------------------------
202215

application/bg/presenters.texy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ $url = $this->link('Product:show', [$id, 'lang' => 'en']);
158158
$this->forward('Product:show');
159159
```
160160

161-
Пример за временно пренасочване с HTTP код 302 или 303:
161+
Пример за т.нар. временно пренасочване с HTTP код 302 (или 303, ако текущият метод на заявка е POST):
162162

163163
```php
164164
$this->redirect('Product:show', $id);
@@ -170,7 +170,7 @@ $this->redirect('Product:show', $id);
170170
$this->redirectPermanent('Product:show', $id);
171171
```
172172

173-
Можете да пренасочите към друг URL адрес извън приложението, като използвате метода `redirectUrl()`:
173+
Можете да пренасочите към друг URL адрес извън приложението, като използвате метода `redirectUrl()`. Като втори параметър може да се посочи HTTP кодът, като по подразбиране той е 302 (или 303, ако текущият метод на заявка е POST):
174174

175175
```php
176176
$this->redirectUrl('https://nette.org');

application/bg/templates.texy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ Nette използва системата за шаблони [Latte |latte:]. L
4242
- `templates/<Presenter>/<view>.latte`
4343
- `templates/<Presenter>.<view>.latte`
4444

45-
Ако шаблонът не е намерен, отговорът ще бъде [грешка 404 |presenters#error-404-etc].
45+
Ако шаблонът не бъде намерен, ще се опита да търси в директорията `templates` едно ниво по-нагоре, т.е. на същото ниво като директорията с класа на водещия.
46+
47+
Ако шаблонът не бъде намерен и там, отговорът ще бъде [грешка 404 |presenters#Error 404 etc.].
4648

4749
Можете също така да промените изгледа с помощта на `$this->setView('jineView')`. Или вместо да търсите директно, посочете името на файла с шаблона, като използвате `$this->template->setFile('/path/to/template.latte')`.
4850

application/cs/ajax.texy

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@ Moderní webové aplikace dnes běží napůl na serveru, napůl v prohlížeči
1010

1111
</div>
1212

13-
AJAXový požadavek lze detekovat metodou služby [zapouzdřující HTTP požadavek |http:request] `$httpRequest->isAjax()` (detekuje podle HTTP hlavičky `X-Requested-With`). Uvnitř presenteru je k dispozici "zkratka" v podobě metody `$this->isAjax()`.
13+
14+
AJAXový požadavek
15+
=================
1416

1517
AJAXový požadavek se nijak neliší od klasického požadavku - je zavolán presenter s určitým view a parametry. Je také věcí presenteru, jak bude na něj reagovat: může použít vlastní rutinu, která vrátí nějaký fragment HTML kódu (HTML snippet), XML dokument, JSON objekt nebo kód v JavaScriptu.
1618

19+
Na straně serveru lze AJAXový požadavek detekovat metodou služby [zapouzdřující HTTP požadavek |http:request] `$httpRequest->isAjax()` (detekuje podle HTTP hlavičky `X-Requested-With`). Uvnitř presenteru je k dispozici "zkratka" v podobě metody `$this->isAjax()`.
20+
1721
Pro odesílání dat prohlížeči ve formátu JSON lze využít předpřipravený objekt `payload`:
1822

1923
```php
@@ -60,6 +64,21 @@ npm install naja
6064
<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>
6165
```
6266

67+
Aby se z obyčejného odkazu (signálu) nebo odeslání formuláře vytvořil AJAXový požadavek, stačí označit příslušný odkaz, formulář nebo tlačítko třídou `ajax`:
68+
69+
```html
70+
<a n:href="go!" class="ajax">Go</a>
71+
72+
<form n:name="form" class="ajax">
73+
<input n:name="submit">
74+
</form>
75+
76+
nebo
77+
<form n:name="form">
78+
<input n:name="submit" class="ajax">
79+
</form>
80+
```
81+
6382

6483
Snippety
6584
========

application/cs/bootstrap.texy

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ $configurator->addStaticParameters([
174174
]);
175175
```
176176

177-
Na parametr `projectId` se lze v konfiguraci odkázat obvyklým zápisem `%projectId%`. Třída Configurator automaticky přidává parametry `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` a `consoleMode`.
177+
Na parametr `projectId` se lze v konfiguraci odkázat obvyklým zápisem `%projectId%`.
178178

179179

180180
Dynamické parametry
@@ -197,6 +197,19 @@ $configurator->addDynamicParameters([
197197
```
198198

199199

200+
Výchozí parametry
201+
-----------------
202+
203+
V konfiguračních souborech můžete využít tyto statické parametry:
204+
205+
- `%appDir%` je absolutní cesta k adresáři se souborem `Bootstrap.php`
206+
- `%wwwDir%` je absolutní cesta k adresáři se vstupním souborem `index.php`
207+
- `%tempDir%` je absolutní cesta k adresáři pro dočasné soubory
208+
- `%vendorDir%` je absolutní cesta k adresáři, kam Composer instaluje knihovny
209+
- `%debugMode%` udává, zda je aplikace v debugovacím režimu
210+
- `%consoleMode%` udává, zda request přišel přes příkazovou řádku
211+
212+
200213
Importované služby
201214
------------------
202215

application/cs/presenters.texy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Metoda `forward()` přejde na nový presenter okamžitě bez HTTP přesměrován
158158
$this->forward('Product:show');
159159
```
160160

161-
Příklad tzv. dočasného přesměrování s HTTP kódem 302 nebo 303:
161+
Příklad tzv. dočasného přesměrování s HTTP kódem 302 (nebo 303, je-li metoda aktuálního požadavku POST):
162162

163163
```php
164164
$this->redirect('Product:show', $id);
@@ -170,7 +170,7 @@ Permanentní přesměrování s HTTP kódem 301 docílíte takto:
170170
$this->redirectPermanent('Product:show', $id);
171171
```
172172

173-
Na jinou URL mimo aplikaci lze přesměrovat metodou `redirectUrl()`:
173+
Na jinou URL mimo aplikaci lze přesměrovat metodou `redirectUrl()`. Jako druhý parametr lze uvést HTTP kód, výchozí je 302 (nebo 303, je-li metoda aktuálního požadavku POST):
174174

175175
```php
176176
$this->redirectUrl('https://nette.org');

application/cs/templates.texy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ Cestu k šablonám odvodí presenter podle jednoduché logiky. Zkusí, zda exist
4242
- `templates/<Presenter>/<view>.latte`
4343
- `templates/<Presenter>.<view>.latte`
4444

45-
Pokud šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.].
45+
Pokud šablonu nenajde, zkusí hledat ještě v adresáři `templates` o úroveň výš, tj. na stejné úrovni, jako je adresář s třídou presenteru.
46+
47+
Pokud ani tam šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.].
4648

4749
Můžete také změnit view pomocí `$this->setView('jineView')`. Nebo místo dohledávání přímo určit jméno souboru se šablonou pomocí `$this->template->setFile('/path/to/template.latte')`.
4850

application/de/ajax.texy

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ Moderne Webanwendungen laufen heute zur Hälfte auf einem Server und zur Hälfte
1010

1111
</div>
1212

13-
Eine AJAX-Anfrage kann mit einer Methode eines Dienstes, [der eine HTTP-Anfrage kapselt |http:request], erkannt werden `$httpRequest->isAjax()` (erkennt anhand des `X-Requested-With` HTTP-Headers). Es gibt auch eine Kurzform der Methode in Presenter: `$this->isAjax()`.
1413

15-
Eine AJAX-Anfrage unterscheidet sich nicht von einer normalen Anfrage - ein Presenter wird mit einer bestimmten Ansicht und Parametern aufgerufen. Auch hier ist es dem Präsentator überlassen, wie er reagiert: Er kann seine Routinen nutzen, um entweder ein Fragment von HTML-Code (ein Snippet), ein XML-Dokument, ein JSON-Objekt oder ein Stück Javascript-Code zurückzugeben.
14+
AJAX-Anfrage .[#toc-ajax-request]
15+
=================================
16+
17+
Eine AJAX-Anfrage unterscheidet sich nicht von einer klassischen Anfrage - der Presenter wird mit einer bestimmten Ansicht und Parametern aufgerufen. Es liegt auch am Präsentator, wie er darauf reagiert: Er kann seine eigene Routine verwenden, die ein HTML-Codefragment (HTML-Snippet), ein XML-Dokument, ein JSON-Objekt oder JavaScript-Code zurückgibt.
18+
19+
Auf der Serverseite kann eine AJAX-Anfrage mit Hilfe der Servicemethode erkannt werden [, die die HTTP-Anfrage kapselt |http:request] `$httpRequest->isAjax()` (erkennt auf der Grundlage des HTTP-Headers `X-Requested-With`). Innerhalb des Presenters ist eine Abkürzung in Form der Methode `$this->isAjax()` verfügbar.
1620

1721
Es gibt ein vorverarbeitetes Objekt namens `payload`, das für das Senden von Daten in JSON an den Browser bestimmt ist.
1822

@@ -60,6 +64,21 @@ npm install naja
6064
<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>
6165
```
6266

67+
Um eine AJAX-Anfrage aus einem regulären Link (Signal) oder einer Formularübermittlung zu erzeugen, markieren Sie einfach den entsprechenden Link, das Formular oder die Schaltfläche mit der Klasse `ajax`:
68+
69+
```html
70+
<a n:href="go!" class="ajax">Go</a>
71+
72+
<form n:name="form" class="ajax">
73+
<input n:name="submit">
74+
</form>
75+
76+
or
77+
<form n:name="form">
78+
<input n:name="submit" class="ajax">
79+
</form>
80+
```
81+
6382

6483
Schnipsel .[#toc-snippets]
6584
==========================

application/de/bootstrap.texy

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ $configurator->addStaticParameters([
174174
]);
175175
```
176176

177-
In Konfigurationsdateien können wir die übliche Notation `%projectId%` verwenden, um auf den Parameter mit dem Namen `projectId` zuzugreifen. Standardmäßig füllt der Configurator die folgenden Parameter aus: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` und `consoleMode`.
177+
In Konfigurationsdateien können wir die übliche Notation `%projectId%` verwenden, um auf den Parameter `projectId` zuzugreifen.
178178

179179

180180
Dynamische Parameter .[#toc-dynamic-parameters]
@@ -197,6 +197,19 @@ $configurator->addDynamicParameters([
197197
```
198198

199199

200+
Standard-Parameter .[#toc-default-parameters]
201+
---------------------------------------------
202+
203+
Sie können die folgenden statischen Parameter in den Konfigurationsdateien verwenden:
204+
205+
- `%appDir%` ist der absolute Pfad zu dem Verzeichnis, in dem sich die Datei `Bootstrap.php` befindet
206+
- `%wwwDir%` ist der absolute Pfad zu dem Verzeichnis, das die `index.php` Eintragsdatei enthält
207+
- `%tempDir%` ist der absolute Pfad zu dem Verzeichnis für temporäre Dateien
208+
- `%vendorDir%` ist der absolute Pfad zu dem Verzeichnis, in dem Composer die Bibliotheken installiert
209+
- `%debugMode%` gibt an, ob sich die Anwendung im Debug-Modus befindet
210+
- `%consoleMode%` zeigt an, ob die Anfrage über die Befehlszeile kam
211+
212+
200213
Importierte Dienste .[#toc-imported-services]
201214
---------------------------------------------
202215

application/de/presenters.texy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Die `forward()` schaltet ohne HTTP-Umleitung sofort auf den neuen Präsentator u
158158
$this->forward('Product:show');
159159
```
160160

161-
Beispiel einer temporären Umleitung mit HTTP-Code 302 oder 303:
161+
Beispiel für eine so genannte temporäre Umleitung mit HTTP-Code 302 (oder 303, wenn die aktuelle Anfragemethode POST ist):
162162

163163
```php
164164
$this->redirect('Product:show', $id);
@@ -170,7 +170,7 @@ Um eine dauerhafte Umleitung mit HTTP-Code 301 zu erreichen, verwenden Sie:
170170
$this->redirectPermanent('Product:show', $id);
171171
```
172172

173-
Sie können mit der Methode `redirectUrl()` zu einer anderen URL außerhalb der Anwendung umleiten:
173+
Sie können mit der Methode `redirectUrl()` zu einer anderen URL außerhalb der Anwendung umleiten. Der HTTP-Code kann als zweiter Parameter angegeben werden, wobei der Standardwert 302 ist (oder 303, wenn die aktuelle Anforderungsmethode POST ist):
174174

175175
```php
176176
$this->redirectUrl('https://nette.org');

application/de/templates.texy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ Der Pfad zu den Vorlagen wird nach einer einfachen Logik hergeleitet. Es wird ve
4242
- `templates/<Presenter>/<view>.latte`
4343
- `templates/<Presenter>.<view>.latte`
4444

45-
Wenn die Vorlage nicht gefunden wird, wird der [Fehler 404 |presenters#Error 404 etc.] ausgegeben.
45+
Wird die Vorlage nicht gefunden, wird versucht, im Verzeichnis `templates` eine Ebene höher zu suchen, d. h. auf der gleichen Ebene wie das Verzeichnis mit der Presenter-Klasse.
46+
47+
Wenn die Vorlage auch dort nicht gefunden wird, ist die Antwort ein [404-Fehler |presenters#Error 404 etc.].
4648

4749
Sie können die Ansicht auch mit `$this->setView('otherView')` ändern. Oder geben Sie statt der Suche direkt den Namen der Vorlagendatei mit `$this->template->setFile('/path/to/template.latte')` an.
4850

application/el/ajax.texy

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ AJAX & Snippets
1010

1111
</div>
1212

13-
Μια αίτηση AJAX μπορεί να ανιχνευθεί με τη χρήση μιας μεθόδου μιας υπηρεσίας που [ενθυλακώνει μια αίτηση HTTP |http:request] `$httpRequest->isAjax()` (ανιχνεύει με βάση την επικεφαλίδα `X-Requested-With` HTTP). Υπάρχει επίσης μια σύντομη μέθοδος στο presenter: `$this->isAjax()`.
1413

15-
Μια αίτηση AJAX δεν διαφέρει από μια κανονική αίτηση - καλείται ένας παρουσιαστής με μια συγκεκριμένη προβολή και παραμέτρους. Εξαρτάται, επίσης, από τον παρουσιαστή πώς θα αντιδράσει: μπορεί να χρησιμοποιήσει τις ρουτίνες του για να επιστρέψει είτε ένα τμήμα κώδικα HTML (ένα απόσπασμα), ένα έγγραφο XML, ένα αντικείμενο JSON ή ένα κομμάτι κώδικα Javascript.
14+
Αίτηση AJAX .[#toc-ajax-request]
15+
================================
16+
17+
Ένα αίτημα AJAX δεν διαφέρει από ένα κλασικό αίτημα - ο παρουσιαστής καλείται με μια συγκεκριμένη προβολή και παραμέτρους. Εξαρτάται επίσης από τον παρουσιαστή πώς θα απαντήσει σε αυτό: μπορεί να χρησιμοποιήσει τη δική του ρουτίνα, η οποία επιστρέφει ένα τμήμα κώδικα HTML (απόσπασμα HTML), ένα έγγραφο XML, ένα αντικείμενο JSON ή κώδικα JavaScript.
18+
19+
Από την πλευρά του διακομιστή, ένα αίτημα AJAX μπορεί να ανιχνευθεί χρησιμοποιώντας τη μέθοδο service που [ενθυλακώνει το αίτημα HTTP |http:request] `$httpRequest->isAjax()` (ανιχνεύει με βάση την επικεφαλίδα HTTP `X-Requested-With`). Στο εσωτερικό του παρουσιαστή, είναι διαθέσιμη μια συντόμευση με τη μορφή της μεθόδου `$this->isAjax()`.
1620

1721
Υπάρχει ένα προεπεξεργασμένο αντικείμενο που ονομάζεται `payload` και είναι αφιερωμένο στην αποστολή δεδομένων στο πρόγραμμα περιήγησης σε JSON.
1822

@@ -60,6 +64,21 @@ npm install naja
6064
<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>
6165
```
6266

67+
Για να δημιουργήσετε μια αίτηση AJAX από έναν κανονικό σύνδεσμο (σήμα) ή μια υποβολή φόρμας, απλά επισημάνετε τον σχετικό σύνδεσμο, τη φόρμα ή το κουμπί με την κλάση `ajax`:
68+
69+
```html
70+
<a n:href="go!" class="ajax">Go</a>
71+
72+
<form n:name="form" class="ajax">
73+
<input n:name="submit">
74+
</form>
75+
76+
or
77+
<form n:name="form">
78+
<input n:name="submit" class="ajax">
79+
</form>
80+
```
81+
6382

6483
Snippets .[#toc-snippets]
6584
=========================

0 commit comments

Comments
 (0)