From 3decfab9f932803bba7d53c9239942203b3818f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Brecher?= <34324008+mildabre@users.noreply.github.com> Date: Fri, 7 Apr 2023 16:32:01 +0200 Subject: [PATCH] application: improvements (#990)(#993)(#999)(#1002) --- application/bg/ajax.texy | 23 +++++++++++++++++++++-- application/bg/bootstrap.texy | 15 ++++++++++++++- application/bg/presenters.texy | 4 ++-- application/bg/templates.texy | 4 +++- application/cs/ajax.texy | 21 ++++++++++++++++++++- application/cs/bootstrap.texy | 15 ++++++++++++++- application/cs/presenters.texy | 4 ++-- application/cs/templates.texy | 4 +++- application/de/ajax.texy | 23 +++++++++++++++++++++-- application/de/bootstrap.texy | 15 ++++++++++++++- application/de/presenters.texy | 4 ++-- application/de/templates.texy | 4 +++- application/el/ajax.texy | 23 +++++++++++++++++++++-- application/el/bootstrap.texy | 15 ++++++++++++++- application/el/presenters.texy | 4 ++-- application/el/templates.texy | 4 +++- application/en/ajax.texy | 23 +++++++++++++++++++++-- application/en/bootstrap.texy | 15 ++++++++++++++- application/en/presenters.texy | 4 ++-- application/en/templates.texy | 4 +++- application/es/ajax.texy | 23 +++++++++++++++++++++-- application/es/bootstrap.texy | 15 ++++++++++++++- application/es/presenters.texy | 4 ++-- application/es/templates.texy | 4 +++- application/fr/ajax.texy | 23 +++++++++++++++++++++-- application/fr/bootstrap.texy | 15 ++++++++++++++- application/fr/presenters.texy | 4 ++-- application/fr/templates.texy | 4 +++- application/hu/ajax.texy | 23 +++++++++++++++++++++-- application/hu/bootstrap.texy | 15 ++++++++++++++- application/hu/presenters.texy | 4 ++-- application/hu/templates.texy | 4 +++- application/it/ajax.texy | 23 +++++++++++++++++++++-- application/it/bootstrap.texy | 15 ++++++++++++++- application/it/presenters.texy | 4 ++-- application/it/templates.texy | 4 +++- application/pl/ajax.texy | 23 +++++++++++++++++++++-- application/pl/bootstrap.texy | 15 ++++++++++++++- application/pl/presenters.texy | 4 ++-- application/pl/templates.texy | 4 +++- application/pt/ajax.texy | 23 +++++++++++++++++++++-- application/pt/bootstrap.texy | 15 ++++++++++++++- application/pt/presenters.texy | 4 ++-- application/pt/templates.texy | 4 +++- application/ro/ajax.texy | 23 +++++++++++++++++++++-- application/ro/bootstrap.texy | 15 ++++++++++++++- application/ro/presenters.texy | 4 ++-- application/ro/templates.texy | 4 +++- application/ru/ajax.texy | 23 +++++++++++++++++++++-- application/ru/bootstrap.texy | 15 ++++++++++++++- application/ru/presenters.texy | 4 ++-- application/ru/templates.texy | 4 +++- application/sl/ajax.texy | 23 +++++++++++++++++++++-- application/sl/bootstrap.texy | 15 ++++++++++++++- application/sl/presenters.texy | 4 ++-- application/sl/templates.texy | 4 +++- application/tr/ajax.texy | 23 +++++++++++++++++++++-- application/tr/bootstrap.texy | 15 ++++++++++++++- application/tr/presenters.texy | 4 ++-- application/tr/templates.texy | 4 +++- application/uk/ajax.texy | 23 +++++++++++++++++++++-- application/uk/bootstrap.texy | 15 ++++++++++++++- application/uk/presenters.texy | 4 ++-- application/uk/templates.texy | 4 +++- 64 files changed, 639 insertions(+), 95 deletions(-) diff --git a/application/bg/ajax.texy b/application/bg/ajax.texy index 924c419cf7..1bcf75bc98 100644 --- a/application/bg/ajax.texy +++ b/application/bg/ajax.texy @@ -10,9 +10,13 @@ AJAX и фрагменти -Заявката AJAX може да бъде открита чрез метода на услугата, който [капсулира HTTP заявката |http:request] `$httpRequest->isAjax()` (определя се въз основа на HTTP заглавието `X-Requested-With`). Съществува и съкратен метод в програмата за представяне: `$this->isAjax()`. -Заявката AJAX не се различава от обикновената заявка - водещият се извиква с определено представяне и параметри. От водещия зависи и как ще реагира: той може да използва процедурите си, за да върне фрагмент от HTML код, XML документ, JSON обект или част от Javascript код. +Заявка AJAX .[#toc-ajax-request] +================================ + +Заявката AJAX не се различава от класическата заявка - водещият се извиква с определен изглед и параметри. От водещия също зависи как да отговори на нея: той може да използва своя собствена процедура, която връща фрагмент от HTML код (HTML snippet), XML документ, JSON обект или JavaScript код. + +От страна на сървъра AJAX заявката може да бъде открита с помощта на метода на услугата, [капсулиращ HTTP заявката |http:request] `$httpRequest->isAjax()` (открива се въз основа на HTTP заглавието `X-Requested-With`). Вътре в презентатора е наличен пряк път под формата на метода `$this->isAjax()`. Съществува предварително обработен обект `payload`, предназначен за изпращане на данни към браузъра във формат JSON. @@ -60,6 +64,21 @@ npm install naja ``` +За да създадете AJAX заявка от обикновена връзка (сигнал) или подаване на формуляр, просто маркирайте съответната връзка, формуляр или бутон с класа `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Извадки .[#toc-snippety] ======================== diff --git a/application/bg/bootstrap.texy b/application/bg/bootstrap.texy index 17833a42e7..8d0b3dc5c4 100644 --- a/application/bg/bootstrap.texy +++ b/application/bg/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Конфигурационните файлове могат да използват нормалния запис `%projectId%` за достъп до параметъра с име `projectId`. По подразбиране конфигураторът попълва следните параметри: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` и `consoleMode`. +В конфигурационните файлове можем да запишем обичайната нотация `%projectId%`, за да получим достъп до параметъра с име `projectId`. Динамични параметри .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Параметри по подразбиране .[#toc-default-parameters] +---------------------------------------------------- + +Можете да използвате следните статични параметри в конфигурационните файлове: + +- `%appDir%` е абсолютният път до директорията на файла `Bootstrap.php` +- `%wwwDir%` е абсолютният път до директорията, съдържаща входния файл `index.php` +- `%tempDir%` е абсолютният път до директорията за временни файлове +- `%vendorDir%` е абсолютният път до директорията, в която Composer инсталира библиотеки +- `%debugMode%` показва дали приложението е в режим на отстраняване на грешки +- `%consoleMode%` показва дали заявката е постъпила от командния ред + + Внесени услуги .[#toc-imported-services] ---------------------------------------- diff --git a/application/bg/presenters.texy b/application/bg/presenters.texy index ec99e72f33..9c09769cda 100644 --- a/application/bg/presenters.texy +++ b/application/bg/presenters.texy @@ -158,7 +158,7 @@ $url = $this->link('Product:show', [$id, 'lang' => 'en']); $this->forward('Product:show'); ``` -Пример за временно пренасочване с HTTP код 302 или 303: +Пример за т.нар. временно пренасочване с HTTP код 302 (или 303, ако текущият метод на заявка е POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ $this->redirect('Product:show', $id); $this->redirectPermanent('Product:show', $id); ``` -Можете да пренасочите към друг URL адрес извън приложението, като използвате метода `redirectUrl()`: +Можете да пренасочите към друг URL адрес извън приложението, като използвате метода `redirectUrl()`. Като втори параметър може да се посочи HTTP кодът, като по подразбиране той е 302 (или 303, ако текущият метод на заявка е POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/bg/templates.texy b/application/bg/templates.texy index 05a8985093..850d3e2ecd 100644 --- a/application/bg/templates.texy +++ b/application/bg/templates.texy @@ -42,7 +42,9 @@ Nette използва системата за шаблони [Latte |latte:]. L - `templates//.latte` - `templates/..latte` -Ако шаблонът не е намерен, отговорът ще бъде [грешка 404 |presenters#error-404-etc]. +Ако шаблонът не бъде намерен, ще се опита да търси в директорията `templates` едно ниво по-нагоре, т.е. на същото ниво като директорията с класа на водещия. + +Ако шаблонът не бъде намерен и там, отговорът ще бъде [грешка 404 |presenters#Error 404 etc.]. Можете също така да промените изгледа с помощта на `$this->setView('jineView')`. Или вместо да търсите директно, посочете името на файла с шаблона, като използвате `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/cs/ajax.texy b/application/cs/ajax.texy index ac3792e0b6..e4d30f762a 100644 --- a/application/cs/ajax.texy +++ b/application/cs/ajax.texy @@ -10,10 +10,14 @@ Moderní webové aplikace dnes běží napůl na serveru, napůl v prohlížeči -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()`. + +AJAXový požadavek +================= 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. +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()`. + Pro odesílání dat prohlížeči ve formátu JSON lze využít předpřipravený objekt `payload`: ```php @@ -60,6 +64,21 @@ npm install naja ``` +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`: + +```html +Go + +
+ +
+ +nebo +
+ +
+``` + Snippety ======== diff --git a/application/cs/bootstrap.texy b/application/cs/bootstrap.texy index fdb5decb4d..55fbbfc0f5 100644 --- a/application/cs/bootstrap.texy +++ b/application/cs/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -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`. +Na parametr `projectId` se lze v konfiguraci odkázat obvyklým zápisem `%projectId%`. Dynamické parametry @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Výchozí parametry +----------------- + +V konfiguračních souborech můžete využít tyto statické parametry: + +- `%appDir%` je absolutní cesta k adresáři se souborem `Bootstrap.php` +- `%wwwDir%` je absolutní cesta k adresáři se vstupním souborem `index.php` +- `%tempDir%` je absolutní cesta k adresáři pro dočasné soubory +- `%vendorDir%` je absolutní cesta k adresáři, kam Composer instaluje knihovny +- `%debugMode%` udává, zda je aplikace v debugovacím režimu +- `%consoleMode%` udává, zda request přišel přes příkazovou řádku + + Importované služby ------------------ diff --git a/application/cs/presenters.texy b/application/cs/presenters.texy index dd318e3099..c6621449e7 100644 --- a/application/cs/presenters.texy +++ b/application/cs/presenters.texy @@ -158,7 +158,7 @@ Metoda `forward()` přejde na nový presenter okamžitě bez HTTP přesměrován $this->forward('Product:show'); ``` -Příklad tzv. dočasného přesměrování s HTTP kódem 302 nebo 303: +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): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Permanentní přesměrování s HTTP kódem 301 docílíte takto: $this->redirectPermanent('Product:show', $id); ``` -Na jinou URL mimo aplikaci lze přesměrovat metodou `redirectUrl()`: +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): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/cs/templates.texy b/application/cs/templates.texy index 3630e00ee4..5d0de8dc1a 100644 --- a/application/cs/templates.texy +++ b/application/cs/templates.texy @@ -42,7 +42,9 @@ Cestu k šablonám odvodí presenter podle jednoduché logiky. Zkusí, zda exist - `templates//.latte` - `templates/..latte` -Pokud šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.]. +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. + +Pokud ani tam šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.]. 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')`. diff --git a/application/de/ajax.texy b/application/de/ajax.texy index bcdbd4ac93..63922c5732 100644 --- a/application/de/ajax.texy +++ b/application/de/ajax.texy @@ -10,9 +10,13 @@ Moderne Webanwendungen laufen heute zur Hälfte auf einem Server und zur Hälfte -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()`. -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. +AJAX-Anfrage .[#toc-ajax-request] +================================= + +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. + +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. Es gibt ein vorverarbeitetes Objekt namens `payload`, das für das Senden von Daten in JSON an den Browser bestimmt ist. @@ -60,6 +64,21 @@ npm install naja ``` +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`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Schnipsel .[#toc-snippets] ========================== diff --git a/application/de/bootstrap.texy b/application/de/bootstrap.texy index 217e1b2407..590e4e76ef 100644 --- a/application/de/bootstrap.texy +++ b/application/de/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -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`. +In Konfigurationsdateien können wir die übliche Notation `%projectId%` verwenden, um auf den Parameter `projectId` zuzugreifen. Dynamische Parameter .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Standard-Parameter .[#toc-default-parameters] +--------------------------------------------- + +Sie können die folgenden statischen Parameter in den Konfigurationsdateien verwenden: + +- `%appDir%` ist der absolute Pfad zu dem Verzeichnis, in dem sich die Datei `Bootstrap.php` befindet +- `%wwwDir%` ist der absolute Pfad zu dem Verzeichnis, das die `index.php` Eintragsdatei enthält +- `%tempDir%` ist der absolute Pfad zu dem Verzeichnis für temporäre Dateien +- `%vendorDir%` ist der absolute Pfad zu dem Verzeichnis, in dem Composer die Bibliotheken installiert +- `%debugMode%` gibt an, ob sich die Anwendung im Debug-Modus befindet +- `%consoleMode%` zeigt an, ob die Anfrage über die Befehlszeile kam + + Importierte Dienste .[#toc-imported-services] --------------------------------------------- diff --git a/application/de/presenters.texy b/application/de/presenters.texy index b8aa5238e5..3e5c98a43d 100644 --- a/application/de/presenters.texy +++ b/application/de/presenters.texy @@ -158,7 +158,7 @@ Die `forward()` schaltet ohne HTTP-Umleitung sofort auf den neuen Präsentator u $this->forward('Product:show'); ``` -Beispiel einer temporären Umleitung mit HTTP-Code 302 oder 303: +Beispiel für eine so genannte temporäre Umleitung mit HTTP-Code 302 (oder 303, wenn die aktuelle Anfragemethode POST ist): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Um eine dauerhafte Umleitung mit HTTP-Code 301 zu erreichen, verwenden Sie: $this->redirectPermanent('Product:show', $id); ``` -Sie können mit der Methode `redirectUrl()` zu einer anderen URL außerhalb der Anwendung umleiten: +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): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/de/templates.texy b/application/de/templates.texy index 10b1ae1db5..a21bd7266f 100644 --- a/application/de/templates.texy +++ b/application/de/templates.texy @@ -42,7 +42,9 @@ Der Pfad zu den Vorlagen wird nach einer einfachen Logik hergeleitet. Es wird ve - `templates//.latte` - `templates/..latte` -Wenn die Vorlage nicht gefunden wird, wird der [Fehler 404 |presenters#Error 404 etc.] ausgegeben. +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. + +Wenn die Vorlage auch dort nicht gefunden wird, ist die Antwort ein [404-Fehler |presenters#Error 404 etc.]. 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. diff --git a/application/el/ajax.texy b/application/el/ajax.texy index 7e9e5c2d76..8ca0741a48 100644 --- a/application/el/ajax.texy +++ b/application/el/ajax.texy @@ -10,9 +10,13 @@ AJAX & Snippets -Μια αίτηση AJAX μπορεί να ανιχνευθεί με τη χρήση μιας μεθόδου μιας υπηρεσίας που [ενθυλακώνει μια αίτηση HTTP |http:request] `$httpRequest->isAjax()` (ανιχνεύει με βάση την επικεφαλίδα `X-Requested-With` HTTP). Υπάρχει επίσης μια σύντομη μέθοδος στο presenter: `$this->isAjax()`. -Μια αίτηση AJAX δεν διαφέρει από μια κανονική αίτηση - καλείται ένας παρουσιαστής με μια συγκεκριμένη προβολή και παραμέτρους. Εξαρτάται, επίσης, από τον παρουσιαστή πώς θα αντιδράσει: μπορεί να χρησιμοποιήσει τις ρουτίνες του για να επιστρέψει είτε ένα τμήμα κώδικα HTML (ένα απόσπασμα), ένα έγγραφο XML, ένα αντικείμενο JSON ή ένα κομμάτι κώδικα Javascript. +Αίτηση AJAX .[#toc-ajax-request] +================================ + +Ένα αίτημα AJAX δεν διαφέρει από ένα κλασικό αίτημα - ο παρουσιαστής καλείται με μια συγκεκριμένη προβολή και παραμέτρους. Εξαρτάται επίσης από τον παρουσιαστή πώς θα απαντήσει σε αυτό: μπορεί να χρησιμοποιήσει τη δική του ρουτίνα, η οποία επιστρέφει ένα τμήμα κώδικα HTML (απόσπασμα HTML), ένα έγγραφο XML, ένα αντικείμενο JSON ή κώδικα JavaScript. + +Από την πλευρά του διακομιστή, ένα αίτημα AJAX μπορεί να ανιχνευθεί χρησιμοποιώντας τη μέθοδο service που [ενθυλακώνει το αίτημα HTTP |http:request] `$httpRequest->isAjax()` (ανιχνεύει με βάση την επικεφαλίδα HTTP `X-Requested-With`). Στο εσωτερικό του παρουσιαστή, είναι διαθέσιμη μια συντόμευση με τη μορφή της μεθόδου `$this->isAjax()`. Υπάρχει ένα προεπεξεργασμένο αντικείμενο που ονομάζεται `payload` και είναι αφιερωμένο στην αποστολή δεδομένων στο πρόγραμμα περιήγησης σε JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Για να δημιουργήσετε μια αίτηση AJAX από έναν κανονικό σύνδεσμο (σήμα) ή μια υποβολή φόρμας, απλά επισημάνετε τον σχετικό σύνδεσμο, τη φόρμα ή το κουμπί με την κλάση `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets .[#toc-snippets] ========================= diff --git a/application/el/bootstrap.texy b/application/el/bootstrap.texy index 830a951dd6..71f6028048 100644 --- a/application/el/bootstrap.texy +++ b/application/el/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Στα αρχεία ρυθμίσεων, μπορούμε να γράψουμε τον συνήθη συμβολισμό `%projectId%` για να αποκτήσουμε πρόσβαση στην παράμετρο με το όνομα `projectId`. Από προεπιλογή, ο διαμορφωτής συμπληρώνει τις ακόλουθες παραμέτρους: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` και `consoleMode`. +Στα αρχεία ρυθμίσεων, μπορούμε να γράψουμε τον συνήθη συμβολισμό `%projectId%` για να αποκτήσουμε πρόσβαση στην παράμετρο με το όνομα `projectId`. Δυναμικές παράμετροι .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Προεπιλεγμένες παράμετροι .[#toc-default-parameters] +---------------------------------------------------- + +Μπορείτε να χρησιμοποιήσετε τις ακόλουθες στατικές παραμέτρους στα αρχεία διαμόρφωσης: + +- `%appDir%` είναι η απόλυτη διαδρομή προς τον κατάλογο του αρχείου `Bootstrap.php` +- `%wwwDir%` είναι η απόλυτη διαδρομή προς τον κατάλογο που περιέχει το αρχείο καταχώρησης `index.php` +- `%tempDir%` είναι η απόλυτη διαδρομή προς τον κατάλογο για τα προσωρινά αρχεία +- `%vendorDir%` είναι η απόλυτη διαδρομή προς τον κατάλογο όπου ο Composer εγκαθιστά τις βιβλιοθήκες +- Το `%debugMode%` δηλώνει αν η εφαρμογή βρίσκεται σε κατάσταση αποσφαλμάτωσης. +- Το `%consoleMode%` δηλώνει αν η αίτηση υποβλήθηκε μέσω της γραμμής εντολών. + + Εισαγόμενες υπηρεσίες .[#toc-imported-services] ----------------------------------------------- diff --git a/application/el/presenters.texy b/application/el/presenters.texy index f80336cde8..98c5b4ea42 100644 --- a/application/el/presenters.texy +++ b/application/el/presenters.texy @@ -158,7 +158,7 @@ $url = $this->link('Product:show', [$id, 'lang' => 'en']); $this->forward('Product:show'); ``` -με κωδικό HTTP 302 ή 303: +Παράδειγμα μιας λεγόμενης προσωρινής ανακατεύθυνσης με κωδικό HTTP 302 (ή 303, εάν η τρέχουσα μέθοδος αίτησης είναι POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ $this->redirect('Product:show', $id); $this->redirectPermanent('Product:show', $id); ``` -Μπορείτε να ανακατευθύνετε σε μια άλλη διεύθυνση URL εκτός της εφαρμογής με τη μέθοδο `redirectUrl()`: +Μπορείτε να ανακατευθύνετε σε μια άλλη διεύθυνση URL εκτός της εφαρμογής χρησιμοποιώντας τη μέθοδο `redirectUrl()`. Ο κωδικός HTTP μπορεί να καθοριστεί ως δεύτερη παράμετρος, με προεπιλεγμένη τιμή 302 (ή 303, αν η τρέχουσα μέθοδος αίτησης είναι POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/el/templates.texy b/application/el/templates.texy index c4ee865e55..4b83599f45 100644 --- a/application/el/templates.texy +++ b/application/el/templates.texy @@ -42,7 +42,9 @@ - `templates//.latte` - `templates/..latte` -Αν δεν βρει το πρότυπο, η απάντηση είναι [σφάλμα 404 |presenters#Error 404 etc.]. +Αν το πρότυπο δεν βρεθεί, θα προσπαθήσει να ψάξει στον κατάλογο `templates` ένα επίπεδο πιο πάνω, δηλαδή στο ίδιο επίπεδο με τον κατάλογο με την κλάση παρουσιαστή. + +Εάν το πρότυπο δεν βρεθεί ούτε εκεί, η απάντηση είναι ένα [σφάλμα 404 |presenters#Error 404 etc.]. Μπορείτε επίσης να αλλάξετε την προβολή χρησιμοποιώντας το `$this->setView('otherView')`. Ή, αντί για αναζήτηση, καθορίστε απευθείας το όνομα του αρχείου προτύπου χρησιμοποιώντας τη διεύθυνση `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/en/ajax.texy b/application/en/ajax.texy index b5d635a10c..f43ff28c2f 100644 --- a/application/en/ajax.texy +++ b/application/en/ajax.texy @@ -10,9 +10,13 @@ Modern web applications nowadays run half on a server and half in a browser. AJA -An AJAX request can be detected using a method of a service [encapsulating a HTTP request |http:request] `$httpRequest->isAjax()` (detects based on the `X-Requested-With` HTTP header). There is also a shorthand method in presenter: `$this->isAjax()`. -An AJAX request is no different from a normal one – a presenter is called with a certain view and parameters. It is, too, up to the presenter how will it react: it can use its routines to either return a fragment of HTML code (a snippet), an XML document, a JSON object or a piece of Javascript code. +AJAX Request +============ + +An AJAX request does not differ from a classic request - the presenter is called with a specific view and parameters. It is also up to the presenter how to respond to it: it can use its own routine, which returns an HTML code fragment (HTML snippet), an XML document, a JSON object, or JavaScript code. + +On the server side, an AJAX request can be detected using the service method [encapsulating the HTTP request |http:request] `$httpRequest->isAjax()` (detects based on the HTTP header `X-Requested-With`). Inside the presenter, a shortcut is available in the form of the method `$this->isAjax()`. There is a pre-processed object called `payload` dedicated to sending data to the browser in JSON. @@ -60,6 +64,21 @@ npm install naja ``` +To create an AJAX request from a regular link (signal) or form submittion, simply mark the relevant link, form, or button with the class `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets ======== diff --git a/application/en/bootstrap.texy b/application/en/bootstrap.texy index c7927f9733..c763e715a3 100644 --- a/application/en/bootstrap.texy +++ b/application/en/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -In configuration files, we can write usual notation `%projectId%` to access the parameter named `projectId`. By default, the Configurator populates the following parameters: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` and `consoleMode`. +In configuration files, we can write usual notation `%projectId%` to access the parameter named `projectId`. Dynamic Parameters @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Default Parameters +------------------ + +You can use the following static parameters in the configuration files: + +- `%appDir%` is the absolute path to the directory of `Bootstrap.php` file +- `%wwwDir%` is the absolute path to the directory containing the `index.php` entry file +- `%tempDir%` is the absolute path to the directory for temporary files +- `%vendorDir%` is the absolute path to the directory where Composer installs libraries +- `%debugMode%` indicates whether the application is in debug mode +- `%consoleMode%` indicates whether the request came through the command line + + Imported Services ----------------- diff --git a/application/en/presenters.texy b/application/en/presenters.texy index 62ded13925..680b937cf9 100644 --- a/application/en/presenters.texy +++ b/application/en/presenters.texy @@ -158,7 +158,7 @@ The `forward()` switches to the new presenter immediately without HTTP redirecti $this->forward('Product:show'); ``` -Example of temporary redirection with HTTP code 302 or 303: +Example of a so-called temporary redirection with HTTP code 302 (or 303, if the current request method is POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ To achieve permanent redirection with HTTP code 301 use: $this->redirectPermanent('Product:show', $id); ``` -You can redirect to another URL outside the application with the `redirectUrl()` method: +You can redirect to another URL outside the application using the `redirectUrl()` method. The HTTP code can be specified as the second parameter, with the default being 302 (or 303, if the current request method is POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/en/templates.texy b/application/en/templates.texy index 9c743b280b..5107b4493a 100644 --- a/application/en/templates.texy +++ b/application/en/templates.texy @@ -42,7 +42,9 @@ The path to the templates is deduced according to simple logic. It tries to see - `templates//.latte` - `templates/..latte` -If it does not find the template, the response is [error 404 |presenters#Error 404 etc.]. +If the template is not found, it will try to search in the `templates` directory one level up, i.e., at the same level as the directory with the presenter class. + +If the template is not found there either, the response is a [404 error|presenters#Error 404 etc.]. You can also change the view using `$this->setView('otherView')`. Or, instead of searching, directly specify the name of the template file using `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/es/ajax.texy b/application/es/ajax.texy index a81eb64441..0ba8886dd4 100644 --- a/application/es/ajax.texy +++ b/application/es/ajax.texy @@ -10,9 +10,13 @@ Hoy en día, las aplicaciones web modernas se ejecutan mitad en un servidor y mi -Una solicitud AJAX puede detectarse utilizando un método de un servicio que [encapsula una solicitud HTTP |http:request] `$httpRequest->isAjax()` (detecta basándose en la cabecera HTTP `X-Requested-With` ). También existe un método abreviado en presentador: `$this->isAjax()`. -Una petición AJAX no difiere de una normal: se llama a un presentador con una vista y unos parámetros determinados. También depende del presentador cómo reaccionará: puede utilizar sus rutinas para devolver un fragmento de código HTML (un snippet), un documento XML, un objeto JSON o un fragmento de código Javascript. +Solicitud AJAX .[#toc-ajax-request] +=================================== + +Una petición AJAX no difiere de una petición clásica: se llama al presentador con una vista y unos parámetros específicos. También depende del presentador cómo responder a ella: puede utilizar su propia rutina, que devuelve un fragmento de código HTML (HTML snippet), un documento XML, un objeto JSON o código JavaScript. + +En el lado del servidor, una petición AJAX puede detectarse utilizando el método de servicio [que encapsula la petición HTTP |http:request] `$httpRequest->isAjax()` (detecta basándose en la cabecera HTTP `X-Requested-With`). Dentro del presentador, se dispone de un acceso directo en forma del método `$this->isAjax()`. Existe un objeto preprocesado llamado `payload` dedicado a enviar datos al navegador en JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Para crear una solicitud AJAX a partir de un enlace normal (señal) o el envío de un formulario, basta con marcar el enlace, formulario o botón correspondiente con la clase `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Fragmentos .[#toc-snippets] =========================== diff --git a/application/es/bootstrap.texy b/application/es/bootstrap.texy index ef1140b871..3b67d5c4b9 100644 --- a/application/es/bootstrap.texy +++ b/application/es/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -En los archivos de configuración, podemos escribir la notación habitual `%projectId%` para acceder al parámetro denominado `projectId`. Por defecto, el Configurador rellena los siguientes parámetros: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` y `consoleMode`. +En los archivos de configuración, podemos escribir la notación habitual `%projectId%` para acceder al parámetro denominado `projectId`. Parámetros dinámicos .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Parámetros por defecto .[#toc-default-parameters] +------------------------------------------------- + +Puede utilizar los siguientes parámetros estáticos en los archivos de configuración: + +- `%appDir%` es la ruta absoluta al directorio del archivo `Bootstrap.php` +- `%wwwDir%` es la ruta absoluta al directorio que contiene el archivo de entrada `index.php` +- `%tempDir%` es la ruta absoluta al directorio para los archivos temporales +- `%vendorDir%` es la ruta absoluta al directorio donde Composer instala las bibliotecas +- `%debugMode%` indica si la aplicación está en modo depuración +- `%consoleMode%` indica si la solicitud llegó a través de la línea de comandos + + Servicios importados .[#toc-imported-services] ---------------------------------------------- diff --git a/application/es/presenters.texy b/application/es/presenters.texy index 20722240db..0bbbb69867 100644 --- a/application/es/presenters.texy +++ b/application/es/presenters.texy @@ -158,7 +158,7 @@ El `forward()` cambia al nuevo presentador inmediatamente sin redirección HTTP: $this->forward('Product:show'); ``` -Ejemplo de redirección temporal con código HTTP 302 o 303: +Ejemplo de una redirección temporal con código HTTP 302 (o 303, si el método de solicitud actual es POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Para conseguir una redirección permanente con código HTTP 301 utilice: $this->redirectPermanent('Product:show', $id); ``` -Puede redirigir a otra URL fuera de la aplicación con el método `redirectUrl()`: +Puede redirigir a otra URL fuera de la aplicación utilizando el método `redirectUrl()`. El código HTTP puede especificarse como segundo parámetro, siendo el predeterminado 302 (o 303, si el método de solicitud actual es POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/es/templates.texy b/application/es/templates.texy index bbae32eb8a..761f7a648e 100644 --- a/application/es/templates.texy +++ b/application/es/templates.texy @@ -42,7 +42,9 @@ La ruta a las plantillas se deduce según una lógica simple. Se intenta ver si - `templates//.latte` - `templates/..latte` -Si no encuentra la plantilla, la respuesta es [error 404 |presenters#Error 404 etc.]. +Si no se encuentra la plantilla, se intentará buscar en el directorio `templates` un nivel más arriba, es decir, al mismo nivel que el directorio con la clase presentadora. + +Si la plantilla tampoco se encuentra allí, la respuesta es un [error 404 |presenters#Error 404 etc.]. También puede cambiar la vista utilizando `$this->setView('otherView')`. O, en lugar de buscar, especifique directamente el nombre del archivo de plantilla utilizando `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/fr/ajax.texy b/application/fr/ajax.texy index 06f9ffb892..55c07c6dc6 100644 --- a/application/fr/ajax.texy +++ b/application/fr/ajax.texy @@ -10,9 +10,13 @@ Les applications web modernes fonctionnent aujourd'hui pour moitié sur un serve -Une requête AJAX peut être détectée à l'aide d'une méthode d'un service [encapsulant une requête HTTP |http:request] `$httpRequest->isAjax()` (détecte sur la base de l'en-tête HTTP `X-Requested-With` ). Il existe également une méthode abrégée dans Presenter : `$this->isAjax()`. -Une demande AJAX n'est pas différente d'une demande normale - un présentateur est appelé avec une certaine vue et des paramètres. La réaction du présentateur est également libre : il peut utiliser ses routines pour renvoyer un fragment de code HTML (un snippet), un document XML, un objet JSON ou un morceau de code Javascript. +Demande AJAX .[#toc-ajax-request] +================================= + +Une requête AJAX ne diffère pas d'une requête classique : le diffuseur est appelé avec une vue et des paramètres spécifiques. C'est également au présentateur de décider comment y répondre : il peut utiliser sa propre routine, qui renvoie un fragment de code HTML (extrait HTML), un document XML, un objet JSON ou du code JavaScript. + +Côté serveur, une requête AJAX peut être détectée à l'aide de la méthode de service [encapsulant la requête HTTP |http:request] `$httpRequest->isAjax()` (détection basée sur l'en-tête HTTP `X-Requested-With`). Dans le présentateur, un raccourci est disponible sous la forme de la méthode `$this->isAjax()`. Il existe un objet prétraité appelé `payload` dédié à l'envoi de données au navigateur en JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Pour créer une requête AJAX à partir d'un lien normal (signal) ou d'une soumission de formulaire, il suffit de marquer le lien, le formulaire ou le bouton concerné avec la classe `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Extraits de texte .[#toc-snippets] ================================== diff --git a/application/fr/bootstrap.texy b/application/fr/bootstrap.texy index fbb3566d18..8bea659e34 100644 --- a/application/fr/bootstrap.texy +++ b/application/fr/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Dans les fichiers de configuration, nous pouvons écrire la notation usuelle `%projectId%` pour accéder au paramètre nommé `projectId`. Par défaut, le configurateur renseigne les paramètres suivants : `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` et `consoleMode`. +Dans les fichiers de configuration, nous pouvons écrire la notation habituelle `%projectId%` pour accéder au paramètre nommé `projectId`. Paramètres dynamiques .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Paramètres par défaut .[#toc-default-parameters] +------------------------------------------------ + +Vous pouvez utiliser les paramètres statiques suivants dans les fichiers de configuration : + +- `%appDir%` est le chemin absolu vers le répertoire du fichier `Bootstrap.php` +- `%wwwDir%` est le chemin absolu vers le répertoire contenant le fichier d'entrée `index.php` +- `%tempDir%` est le chemin absolu vers le répertoire des fichiers temporaires +- `%vendorDir%` est le chemin absolu vers le répertoire où Composer installe les bibliothèques +- `%debugMode%` indique si l'application est en mode débogage +- `%consoleMode%` indique si la demande provient de la ligne de commande + + Services importés .[#toc-imported-services] ------------------------------------------- diff --git a/application/fr/presenters.texy b/application/fr/presenters.texy index 3f9caa0405..59db98b157 100644 --- a/application/fr/presenters.texy +++ b/application/fr/presenters.texy @@ -158,7 +158,7 @@ La méthode `forward()` permet de passer immédiatement au nouveau présentateur $this->forward('Product:show'); ``` -Exemple de redirection temporaire avec le code HTTP 302 ou 303 : +Exemple de redirection temporaire avec le code HTTP 302 (ou 303, si la méthode de requête actuelle est POST) : ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Pour obtenir une redirection permanente avec le code HTTP 301, utilisez : $this->redirectPermanent('Product:show', $id); ``` -Vous pouvez rediriger vers une autre URL en dehors de l'application avec la méthode `redirectUrl()`: +Vous pouvez rediriger vers une autre URL en dehors de l'application en utilisant la méthode `redirectUrl()`. Le code HTTP peut être spécifié comme deuxième paramètre, la valeur par défaut étant 302 (ou 303, si la méthode de requête actuelle est POST) : ```php $this->redirectUrl('https://nette.org'); diff --git a/application/fr/templates.texy b/application/fr/templates.texy index 83ac0a9d46..8ecd733495 100644 --- a/application/fr/templates.texy +++ b/application/fr/templates.texy @@ -42,7 +42,9 @@ Le chemin vers les modèles est déduit selon une logique simple. Il essaie de v - `templates//.latte` - `templates/..latte` -S'il ne trouve pas le modèle, la réponse est une [erreur 404 |presenters#Error 404 etc.]. +Si le modèle n'est pas trouvé, il essaiera de chercher dans le répertoire `templates` au niveau supérieur, c'est-à-dire au même niveau que le répertoire contenant la classe du présentateur. + +Si le modèle n'y est pas trouvé non plus, la réponse est une [erreur 404 |presenters#Error 404 etc.]. Vous pouvez également changer la vue en utilisant `$this->setView('otherView')`. Ou, au lieu de chercher, spécifiez directement le nom du fichier de modèle en utilisant `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/hu/ajax.texy b/application/hu/ajax.texy index adab48653b..fb0a6e08b8 100644 --- a/application/hu/ajax.texy +++ b/application/hu/ajax.texy @@ -10,9 +10,13 @@ A modern webes alkalmazások manapság félig a szerveren, félig a böngészőb -Egy AJAX-kérés a `$httpRequest->isAjax()` [HTTP-kérést kapszulázó |http:request] szolgáltatás módszerével detektálható (a `X-Requested-With` HTTP-fejléc alapján detektál). A prezenterben is van egy rövidített módszer: `$this->isAjax()`. -Az AJAX-kérés nem különbözik a normál kéréstől - a prezentert egy bizonyos nézettel és paraméterekkel hívják meg. Az is a prezenteren múlik, hogy miként reagál: a rutinjaival vagy egy HTML kódrészletet (snippet), egy XML-dokumentumot, egy JSON objektumot vagy egy Javascript kódrészletet adhat vissza. +AJAX kérés .[#toc-ajax-request] +=============================== + +Az AJAX-kérés nem különbözik a klasszikus kéréstől - a bemutatót egy adott nézettel és paraméterekkel hívják meg. Az is a prezenteren múlik, hogyan válaszol rá: használhat saját rutint, amely egy HTML kódrészletet (HTML snippet), egy XML-dokumentumot, egy JSON-objektumot vagy JavaScript-kódot ad vissza. + +Kiszolgálói oldalon az AJAX-kérés a [HTTP-kérést kapszulázó |http:request] szolgáltatási módszerrel detektálható `$httpRequest->isAjax()` (a HTTP fejléc alapján detektál `X-Requested-With`). A prezenteren belül a `$this->isAjax()` metódus formájában egy rövidítés áll rendelkezésre. Létezik egy `payload` nevű előfeldolgozott objektum, amely arra szolgál, hogy az adatokat JSON-ban küldje el a böngészőnek. @@ -60,6 +64,21 @@ npm install naja ``` +Ahhoz, hogy AJAX-kérést hozzon létre egy hagyományos linkből (jel) vagy űrlapküldésből, egyszerűen jelölje meg az adott linket, űrlapot vagy gombot a `ajax` osztállyal: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets .[#toc-snippets] ========================= diff --git a/application/hu/bootstrap.texy b/application/hu/bootstrap.texy index 941bad5c80..5d0a614439 100644 --- a/application/hu/bootstrap.texy +++ b/application/hu/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -A konfigurációs fájlokban a `%projectId%` szokásos jelölést írhatjuk a `projectId` nevű paraméter eléréséhez. Alapértelmezés szerint a konfigurátor a következő paramétereket tölti fel: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` és `consoleMode`. +A konfigurációs fájlokban a `%projectId%` szokásos jelölést írhatjuk a `projectId` nevű paraméter eléréséhez. Dinamikus paraméterek .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Alapértelmezett paraméterek .[#toc-default-parameters] +------------------------------------------------------ + +A konfigurációs fájlokban a következő statikus paramétereket használhatja: + +- `%appDir%` a `Bootstrap.php` fájl könyvtárának abszolút elérési útja. +- `%wwwDir%` a `index.php` beviteli fájlt tartalmazó könyvtár abszolút elérési útja. +- `%tempDir%` az ideiglenes fájlok könyvtárának abszolút elérési útja. +- `%vendorDir%` az abszolút elérési út a könyvtárak Composer általi telepítésének könyvtárához. +- `%debugMode%` jelzi, hogy az alkalmazás hibakeresési módban van-e. +- `%consoleMode%` jelzi, hogy a kérés a parancssoron keresztül érkezett-e. + + Importált szolgáltatások .[#toc-imported-services] -------------------------------------------------- diff --git a/application/hu/presenters.texy b/application/hu/presenters.texy index 85c6c2df1b..d2c2238c1a 100644 --- a/application/hu/presenters.texy +++ b/application/hu/presenters.texy @@ -158,7 +158,7 @@ A `forward()` azonnal átvált az új bemutatóra HTTP átirányítás nélkül: $this->forward('Product:show'); ``` -Példa ideiglenes átirányításra 302 vagy 303 HTTP-kóddal: +Példa egy úgynevezett ideiglenes átirányításra 302-es HTTP-kóddal (vagy 303-as kóddal, ha az aktuális kérési mód POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ A 301-es kódú HTTP-kóddal történő állandó átirányítás eléréséhez $this->redirectPermanent('Product:show', $id); ``` -A `redirectUrl()` módszerrel átirányíthat egy másik, az alkalmazáson kívüli URL-címre: +A `redirectUrl()` módszerrel átirányíthat egy másik, az alkalmazáson kívüli URL-címre. A HTTP-kódot a második paraméterként lehet megadni, az alapértelmezett érték 302 (vagy 303, ha az aktuális kérési mód POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/hu/templates.texy b/application/hu/templates.texy index 8f9478e63b..71b205b7d1 100644 --- a/application/hu/templates.texy +++ b/application/hu/templates.texy @@ -42,7 +42,9 @@ A sablonok elérési útvonalát egyszerű logika szerint vezetjük le. Megprób - `templates//.latte` - `templates/..latte` -Ha nem találja a sablont, a válasz [404-es hiba |presenters#Error 404 etc.]. +Ha a sablon nem található, a program megpróbál a `templates` könyvtárban keresni egy szinttel feljebb, azaz ugyanazon a szinten, mint a bemutató osztályt tartalmazó könyvtár. + +Ha a sablon ott sem található, a válasz [404-es hiba |presenters#Error 404 etc.]. A nézetet a `$this->setView('otherView')` segítségével is megváltoztathatja. Vagy a keresés helyett közvetlenül megadhatja a sablonfájl nevét a `$this->template->setFile('/path/to/template.latte')` segítségével. diff --git a/application/it/ajax.texy b/application/it/ajax.texy index 1f583a4321..61d7bcd9ca 100644 --- a/application/it/ajax.texy +++ b/application/it/ajax.texy @@ -10,9 +10,13 @@ Le moderne applicazioni web oggi vengono eseguite per metà su un server e per m -Una richiesta AJAX può essere rilevata utilizzando un metodo di un servizio [che incapsula una richiesta HTTP |http:request] `$httpRequest->isAjax()` (rileva in base all'intestazione HTTP `X-Requested-With` ). Esiste anche un metodo abbreviato in presenter: `$this->isAjax()`. -Una richiesta AJAX non è diversa da una normale richiesta: un presenter viene chiamato con una determinata vista e con dei parametri. Anche il presentatore può decidere come reagire: può usare le sue routine per restituire un frammento di codice HTML (uno snippet), un documento XML, un oggetto JSON o un pezzo di codice Javascript. +Richiesta AJAX .[#toc-ajax-request] +=================================== + +Una richiesta AJAX non differisce da una richiesta classica: il presentatore viene chiamato con una vista e dei parametri specifici. Il presentatore può anche decidere come rispondere: può usare la propria routine, che restituisce un frammento di codice HTML (snippet HTML), un documento XML, un oggetto JSON o codice JavaScript. + +Sul lato server, una richiesta AJAX può essere rilevata utilizzando il metodo di servizio [che incapsula la richiesta HTTP |http:request] `$httpRequest->isAjax()` (rileva in base all'intestazione HTTP `X-Requested-With`). All'interno del presentatore, è disponibile una scorciatoia sotto forma del metodo `$this->isAjax()`. Esiste un oggetto pre-elaborato chiamato `payload`, dedicato all'invio di dati al browser in JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Per creare una richiesta AJAX da un normale link (segnale) o dall'invio di un modulo, è sufficiente contrassegnare il relativo link, modulo o pulsante con la classe `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippet .[#toc-snippets] ======================== diff --git a/application/it/bootstrap.texy b/application/it/bootstrap.texy index c2032bcbb8..4efbe28af1 100644 --- a/application/it/bootstrap.texy +++ b/application/it/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Nei file di configurazione, si può scrivere la solita notazione `%projectId%` per accedere al parametro chiamato `projectId`. Per impostazione predefinita, il Configuratore popola i seguenti parametri: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` e `consoleMode`. +Nei file di configurazione, possiamo scrivere la solita notazione `%projectId%` per accedere al parametro chiamato `projectId`. Parametri dinamici .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Parametri predefiniti .[#toc-default-parameters] +------------------------------------------------ + +È possibile utilizzare i seguenti parametri statici nei file di configurazione: + +- `%appDir%` è il percorso assoluto della directory del file `Bootstrap.php` +- `%wwwDir%` è il percorso assoluto della directory contenente il file di ingresso `index.php` +- `%tempDir%` è il percorso assoluto della directory per i file temporanei +- `%vendorDir%` è il percorso assoluto della directory in cui Composer installa le librerie +- `%debugMode%` indica se l'applicazione è in modalità debug +- `%consoleMode%` indica se la richiesta è arrivata attraverso la riga di comando + + Servizi importati .[#toc-imported-services] ------------------------------------------- diff --git a/application/it/presenters.texy b/application/it/presenters.texy index 45eeba69bd..9cae206b58 100644 --- a/application/it/presenters.texy +++ b/application/it/presenters.texy @@ -158,7 +158,7 @@ Il metodo `forward()` passa immediatamente al nuovo presentatore senza reindiriz $this->forward('Product:show'); ``` -Esempio di reindirizzamento temporaneo con codice HTTP 302 o 303: +Esempio di un cosiddetto reindirizzamento temporaneo con codice HTTP 302 (o 303, se il metodo di richiesta corrente è POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Per ottenere un reindirizzamento permanente con codice HTTP 301 utilizzare: $this->redirectPermanent('Product:show', $id); ``` -È possibile reindirizzare a un altro URL esterno all'applicazione con il metodo `redirectUrl()`: +È possibile reindirizzare a un altro URL al di fuori dell'applicazione utilizzando il metodo `redirectUrl()`. Il codice HTTP può essere specificato come secondo parametro; il valore predefinito è 302 (o 303, se il metodo di richiesta corrente è POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/it/templates.texy b/application/it/templates.texy index 9f9da1b537..bb704a88f2 100644 --- a/application/it/templates.texy +++ b/application/it/templates.texy @@ -42,7 +42,9 @@ Il percorso dei modelli viene dedotto secondo una semplice logica. Si cerca di v - `templates//.latte` - `templates/..latte` -Se non trova il modello, la risposta è un [errore 404 |presenters#Error 404 etc.]. +Se il modello non viene trovato, si cercherà nella cartella `templates` a un livello superiore, cioè allo stesso livello della cartella con la classe del presentatore. + +Se il modello non viene trovato nemmeno lì, la risposta è un [errore 404 |presenters#Error 404 etc.]. Si può anche cambiare la vista usando `$this->setView('otherView')`. Oppure, invece di cercare, specificare direttamente il nome del file del template usando `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/pl/ajax.texy b/application/pl/ajax.texy index 34eb88ff52..4b42eac748 100644 --- a/application/pl/ajax.texy +++ b/application/pl/ajax.texy @@ -10,9 +10,13 @@ Nowoczesne aplikacje internetowe działają dziś w połowie na serwerze, w poł -Żądanie AJAX może być wykryte przez metodę serwisową [enkapsulującą żądanie HTTP |http:request] `$httpRequest->isAjax()` (wykryte przez nagłówek HTTP `X-Requested-With`). Wewnątrz prezentera jest zapewniony "skrót" w postaci metody `$this->isAjax()`. -Żądanie AJAX nie różni się od tradycyjnego żądania - prezenter jest wywoływany z określonym widokiem i parametrami. To również zależy od prezentera, jak odpowiada: może użyć niestandardowej procedury, która zwraca fragment HTML, dokument XML, obiekt JSON lub kod JavaScript. +Żądanie AJAX .[#toc-ajax-request] +================================= + +Żądanie AJAX nie różni się od klasycznego żądania - prezenter jest wywoływany z określonym widokiem i parametrami. Również od prezentera zależy, jak na nie odpowie: może użyć własnej procedury, która zwraca fragment kodu HTML (HTML snippet), dokument XML, obiekt JSON lub kod JavaScript. + +Po stronie serwera żądanie AJAX może zostać wykryte za pomocą metody serwisowej [obudowującej żądanie HTTP |http:request] `$httpRequest->isAjax()` (wykrywa na podstawie nagłówka HTTP `X-Requested-With`). Wewnątrz prezentera dostępny jest skrót w postaci metody `$this->isAjax()`. Aby wysłać dane do przeglądarki w formacie JSON, możesz użyć gotowego obiektu `payload`: @@ -60,6 +64,21 @@ npm install naja ``` +Aby utworzyć żądanie AJAX ze zwykłego linku (sygnału) lub submitu formularza, wystarczy oznaczyć odpowiedni link, formularz lub przycisk klasą `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets ======== diff --git a/application/pl/bootstrap.texy b/application/pl/bootstrap.texy index 1a1ef76bbc..3fb6475d75 100644 --- a/application/pl/bootstrap.texy +++ b/application/pl/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Do parametru `projectId` można się odwołać w konfiguracji za pomocą zwykłej notacji `%projectId%`. Klasa Configurator automatycznie dodaje parametry `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` oraz `consoleMode`. +W plikach konfiguracyjnych możemy zapisać zwykłą notację `%projectId%` aby uzyskać dostęp do parametru o nazwie `projectId`. Parametry dynamiczne .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Parametry domyślne .[#toc-default-parameters] +--------------------------------------------- + +W plikach konfiguracyjnych można używać następujących parametrów statycznych: + +- `%appDir%` jest bezwzględną ścieżką do katalogu zawierającego plik `Bootstrap.php` +- `%wwwDir%` jest bezwzględną ścieżką do katalogu zawierającego plik wejściowy `index.php` +- `%tempDir%` jest bezwzględną ścieżką do katalogu plików tymczasowych +- `%vendorDir%` to bezwzględna ścieżka do katalogu, w którym Composer instaluje biblioteki +- `%debugMode%` wskazuje, czy aplikacja jest w trybie debugowania +- `%consoleMode%` wskazuje, czy żądanie przyszło z linii poleceń + + Usługi importowane .[#toc-imported-services] -------------------------------------------- diff --git a/application/pl/presenters.texy b/application/pl/presenters.texy index 8b267a5275..8abef24187 100644 --- a/application/pl/presenters.texy +++ b/application/pl/presenters.texy @@ -158,7 +158,7 @@ Metoda `forward()` przechodzi natychmiast do nowego prezentera bez przekierowani $this->forward('Product:show'); ``` -Przykład tymczasowego przekierowania z kodem HTTP 302 lub 303: +Przykład tzw. tymczasowego przekierowania z kodem HTTP 302 (lub 303, jeśli aktualną metodą żądania jest POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Aby uzyskać trwałe przekierowanie z kodem HTTP 301, wykonaj następujące czyn $this->redirectPermanent('Product:show', $id); ``` -Możesz przekierować do innego adresu URL poza aplikacją za pomocą metody `redirectUrl()`: +Możesz przekierować na inny adres URL poza aplikacją, używając metody `redirectUrl()`. Kod HTTP może być określony jako drugi parametr, przy czym domyślnie jest to 302 (lub 303, jeśli bieżącą metodą żądania jest POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/pl/templates.texy b/application/pl/templates.texy index 9a9d31a92e..a7dd044914 100644 --- a/application/pl/templates.texy +++ b/application/pl/templates.texy @@ -42,7 +42,9 @@ Wyszukiwanie szablonów .[#toc-search-for-templates] - `templates//.latte` - `templates/..latte` -Jeśli szablon nie zostanie znaleziony, odpowiedzią jest [błąd 404 |presenters#Error-404-etc]. +Jeśli szablon nie zostanie znaleziony, spróbuje poszukać w katalogu `templates` o jeden poziom wyżej, czyli na tym samym poziomie co katalog z klasą prezentera. + +Jeśli tam również nie zostanie znaleziony szablon, odpowiedzią będzie [błąd 404 |presenters#Error 404 etc.]. Widok można również zmienić za pomocą strony `$this->setView('jineView')`. Lub, zamiast szukać bezpośrednio, określ nazwę pliku szablonu za pomocą `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/pt/ajax.texy b/application/pt/ajax.texy index b4cb976fc9..2ef450e4d6 100644 --- a/application/pt/ajax.texy +++ b/application/pt/ajax.texy @@ -10,9 +10,13 @@ As aplicações web modernas atualmente rodam metade em um servidor e metade em -Uma solicitação AJAX pode ser detectada usando um método de um serviço [que encapsula uma solicitação HTTP |http:request] `$httpRequest->isAjax()` (detecta com base no cabeçalho HTTP `X-Requested-With` ). Há também um método abreviado no apresentador: `$this->isAjax()`. -Um pedido AJAX não é diferente de um pedido normal - um apresentador é chamado com uma certa visão e parâmetros. Também depende do apresentador como ele irá reagir: ele pode usar suas rotinas para retornar um fragmento de código HTML (um snippet), um documento XML, um objeto JSON ou um pedaço de código Javascript. +Solicitação AJAX .[#toc-ajax-request] +===================================== + +Uma solicitação AJAX não difere de uma solicitação clássica - o apresentador é chamado com uma visão e parâmetros específicos. Cabe também ao apresentador como responder a ela: ele pode usar sua própria rotina, que retorna um fragmento de código HTML (HTML snippet), um documento XML, um objeto JSON ou código JavaScript. + +No lado do servidor, uma solicitação AJAX pode ser detectada usando o método de serviço [que encapsula a solicitação HTTP |http:request] `$httpRequest->isAjax()` (detecta com base no cabeçalho HTTP `X-Requested-With`). Dentro do apresentador, um atalho está disponível na forma do método `$this->isAjax()`. Há um objeto pré-processado chamado `payload` dedicado ao envio de dados para o navegador no JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Para criar uma solicitação AJAX a partir de um link regular (sinal) ou envio de formulário, basta marcar o link, formulário ou botão relevante com a classe `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets .[#toc-snippets] ========================= diff --git a/application/pt/bootstrap.texy b/application/pt/bootstrap.texy index 2fe2d46f10..1ebef20eff 100644 --- a/application/pt/bootstrap.texy +++ b/application/pt/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Nos arquivos de configuração, podemos escrever a notação usual `%projectId%` para acessar o parâmetro `projectId`. Por padrão, o Configurador preenche os seguintes parâmetros: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` e `consoleMode`. +Nos arquivos de configuração, podemos escrever a notação usual `%projectId%` para acessar o parâmetro `projectId`. Parâmetros dinâmicos .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Parâmetros padrão .[#toc-default-parameters] +-------------------------------------------- + +Você pode usar os seguintes parâmetros estáticos nos arquivos de configuração: + +- `%appDir%` é o caminho absoluto para o diretório do arquivo `Bootstrap.php` +- `%wwwDir%` é o caminho absoluto para o diretório que contém o arquivo de entrada `index.php` +- `%tempDir%` é o caminho absoluto para o diretório de arquivos temporários +- `%vendorDir%` é o caminho absoluto para o diretório onde o Composer instala as bibliotecas +- `%debugMode%` indica se a aplicação está em modo de depuração +- `%consoleMode%` indica se o pedido veio através da linha de comando + + Serviços Importados .[#toc-imported-services] --------------------------------------------- diff --git a/application/pt/presenters.texy b/application/pt/presenters.texy index 2cdb940d94..d8fb8a9e30 100644 --- a/application/pt/presenters.texy +++ b/application/pt/presenters.texy @@ -158,7 +158,7 @@ O `forward()` muda imediatamente para o novo apresentador sem redirecionamento H $this->forward('Product:show'); ``` -Exemplo de redirecionamento temporário com o código HTTP 302 ou 303: +Exemplo de um chamado redirecionamento temporário com o código HTTP 302 (ou 303, se o método de solicitação atual for POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Para obter um redirecionamento permanente com o uso do código HTTP 301: $this->redirectPermanent('Product:show', $id); ``` -Você pode redirecionar para outra URL fora da aplicação com o método `redirectUrl()`: +Você pode redirecionar para outra URL fora da aplicação usando o método `redirectUrl()`. O código HTTP pode ser especificado como o segundo parâmetro, sendo o padrão 302 (ou 303, se o método de solicitação atual for POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/pt/templates.texy b/application/pt/templates.texy index bf8e08a5ef..059e35178e 100644 --- a/application/pt/templates.texy +++ b/application/pt/templates.texy @@ -42,7 +42,9 @@ O caminho para os modelos é deduzido de acordo com uma lógica simples. Ele ten - `templates//.latte` - `templates/..latte` -Se não encontrar o modelo, a resposta é [erro 404 |presenters#Error 404 etc.]. +Se o modelo não for encontrado, ele tentará procurar no diretório `templates` um nível acima, ou seja, no mesmo nível que o diretório com a classe apresentadora. + +Se o modelo também não for encontrado lá, a resposta é um [erro 404 |presenters#Error 404 etc.]. Você também pode mudar a visão usando `$this->setView('otherView')`. Ou, em vez de procurar, especifique diretamente o nome do arquivo modelo usando `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/ro/ajax.texy b/application/ro/ajax.texy index 78691c1798..145ab87fdd 100644 --- a/application/ro/ajax.texy +++ b/application/ro/ajax.texy @@ -10,9 +10,13 @@ AJAX & Snippets -O cerere AJAX poate fi detectată prin intermediul unei metode a unui serviciu care [încapsulează o cerere HTTP |http:request] `$httpRequest->isAjax()` (detectează pe baza antetului HTTP `X-Requested-With` ). Există, de asemenea, o metodă prescurtată în presenter: `$this->isAjax()`. -O solicitare AJAX nu diferă cu nimic de una normală - un prezentator este apelat cu o anumită vizualizare și parametri. Depinde, de asemenea, de prezentator cum va reacționa: acesta își poate folosi rutinele pentru a returna fie un fragment de cod HTML (un snippet), fie un document XML, un obiect JSON sau o bucată de cod Javascript. +Cerere AJAX .[#toc-ajax-request] +================================ + +O cerere AJAX nu diferă de o cerere clasică - prezentatorul este apelat cu o vizualizare și parametri specifici. De asemenea, este la latitudinea prezentatorului cum să răspundă la aceasta: poate utiliza propria rutină, care returnează un fragment de cod HTML (fragment HTML), un document XML, un obiect JSON sau cod JavaScript. + +Pe partea serverului, o cerere AJAX poate fi detectată cu ajutorul metodei de serviciu care [încapsulează cererea HTTP |http:request] `$httpRequest->isAjax()` (detectează pe baza antetului HTTP `X-Requested-With`). În interiorul prezentatorului, este disponibilă o scurtătură sub forma metodei `$this->isAjax()`. Există un obiect preprocesat numit `payload` dedicat trimiterii de date către browser în JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Pentru a crea o solicitare AJAX dintr-un link obișnuit (semnal) sau un formular de trimitere, trebuie doar să marcați link-ul, formularul sau butonul respectiv cu clasa `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Snippets .[#toc-snippets] ========================= diff --git a/application/ro/bootstrap.texy b/application/ro/bootstrap.texy index 585b6eed26..def23eed0e 100644 --- a/application/ro/bootstrap.texy +++ b/application/ro/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -În fișierele de configurare, putem scrie notația obișnuită `%projectId%` pentru a accesa parametrul numit `projectId`. În mod implicit, configuratorul completează următorii parametri: `appDir`, `wwwDir`, `tempDir`, , `vendorDir`, `debugMode` și `consoleMode`. +În fișierele de configurare, putem scrie notația obișnuită `%projectId%` pentru a accesa parametrul numit `projectId`. Parametrii dinamici .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Parametrii impliciți .[#toc-default-parameters] +----------------------------------------------- + +Puteți utiliza următorii parametri statici în fișierele de configurare: + +- `%appDir%` este calea absolută către directorul fișierului `Bootstrap.php` +- `%wwwDir%` este calea absolută către directorul care conține fișierul de intrare `index.php` +- `%tempDir%` este calea absolută către directorul pentru fișierele temporare +- `%vendorDir%` este calea absolută către directorul în care Composer instalează bibliotecile +- `%debugMode%` indică dacă aplicația se află în modul de depanare +- `%consoleMode%` indică dacă cererea a venit prin linia de comandă + + Servicii importate .[#toc-imported-services] -------------------------------------------- diff --git a/application/ro/presenters.texy b/application/ro/presenters.texy index fbd0d37113..98dfebc458 100644 --- a/application/ro/presenters.texy +++ b/application/ro/presenters.texy @@ -158,7 +158,7 @@ Metoda `forward()` trece imediat la noul prezentator, fără redirecționare HTT $this->forward('Product:show'); ``` -Exemplu de redirecționare temporară cu codul HTTP 302 sau 303: +Exemplu de așa-numită redirecționare temporară cu codul HTTP 302 (sau 303, dacă metoda de solicitare curentă este POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Pentru a obține o redirecționare permanentă cu codul HTTP 301, utilizați: $this->redirectPermanent('Product:show', $id); ``` -Puteți redirecționa către un alt URL din afara aplicației cu metoda `redirectUrl()`: +Puteți redirecționa către o altă adresă URL din afara aplicației utilizând metoda `redirectUrl()`. Codul HTTP poate fi specificat ca al doilea parametru, valoarea implicită fiind 302 (sau 303, dacă metoda de solicitare curentă este POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/ro/templates.texy b/application/ro/templates.texy index 4e058192af..abcead647e 100644 --- a/application/ro/templates.texy +++ b/application/ro/templates.texy @@ -42,7 +42,9 @@ Calea către șabloane este dedusă conform unei logici simple. Se încearcă s - `templates//.latte` - `templates/..latte` -În cazul în care nu găsește șablonul, răspunsul este [eroarea 404 |presenters#Error 404 etc.]. +Dacă șablonul nu este găsit, se va încerca căutarea în directorul `templates` cu un nivel mai sus, adică la același nivel cu directorul cu clasa de prezentator. + +Dacă șablonul nu este găsit nici acolo, răspunsul este o [eroare 404 |presenters#Error 404 etc.]. De asemenea, puteți schimba vizualizarea folosind `$this->setView('otherView')`. Sau, în loc să căutați, specificați direct numele fișierului șablon folosind `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/ru/ajax.texy b/application/ru/ajax.texy index 05cb303614..6009fc864c 100644 --- a/application/ru/ajax.texy +++ b/application/ru/ajax.texy @@ -10,9 +10,13 @@ AJAX и сниппеты -AJAX-запрос может быть обнаружен с помощью метода сервиса [инкапсуляция HTTP-запроса |http:request] `$httpRequest->isAjax()` (определяет на основе HTTP-заголовка `X-Requested-With`). Существует также сокращенный метод в презентере: `$this->isAjax()`. -AJAX-запрос ничем не отличается от обычного — вызывается презентер с определенным представлением и параметрами. От презентера также зависит, как он отреагирует: он может использовать свои процедуры для возврата фрагмента HTML-кода (сниппета), XML-документа, объекта JSON или фрагмента кода Javascript. +Запрос AJAX .[#toc-ajax-request] +================================ + +AJAX-запрос не отличается от классического запроса - к ведущему обращаются с определенным представлением и параметрами. Ведущий также решает, как ответить на него: он может использовать свою собственную процедуру, которая возвращает фрагмент HTML-кода (HTML snippet), XML-документ, JSON-объект или JavaScript-код. + +На стороне сервера AJAX-запрос может быть обнаружен с помощью сервисного метода, [инкапсулирующего HTTP-запрос |http:request] `$httpRequest->isAjax()` (определяет на основе HTTP-заголовка `X-Requested-With`). Внутри презентатора доступен ярлык в виде метода `$this->isAjax()`. Существует предварительно обработанный объект `payload`, предназначенный для отправки данных в браузер в формате JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Чтобы создать AJAX-запрос из обычной ссылки (сигнала) или отправки формы, просто пометьте соответствующую ссылку, форму или кнопку классом `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Сниппеты ======== diff --git a/application/ru/bootstrap.texy b/application/ru/bootstrap.texy index fb4b949974..071d2c9fc5 100644 --- a/application/ru/bootstrap.texy +++ b/application/ru/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -В конфигурационных файлах можно использовать обычную нотацию `%projectId%` для доступа к параметру с именем `projectId`. По умолчанию конфигуратор заполняет следующие параметры: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` и `consoleMode`. +В конфигурационных файлах мы можем написать обычную нотацию `%projectId%` для доступа к параметру с именем `projectId`. Динамические параметры .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Параметры по умолчанию .[#toc-default-parameters] +------------------------------------------------- + +Вы можете использовать следующие статические параметры в конфигурационных файлах: + +- `%appDir%` - абсолютный путь к директории, содержащей файл `Bootstrap.php`. +- `%wwwDir%` - абсолютный путь к директории, содержащей входной файл `index.php` +- `%tempDir%` - абсолютный путь к директории для временных файлов. +- `%vendorDir%` - абсолютный путь к директории, в которую Composer устанавливает библиотеки. +- `%debugMode%` указывает, находится ли приложение в режиме отладки +- `%consoleMode%` указывает, поступил ли запрос через командную строку + + Импортированные сервисы .[#toc-imported-services] ------------------------------------------------- diff --git a/application/ru/presenters.texy b/application/ru/presenters.texy index e37177bad4..3363ced5d1 100644 --- a/application/ru/presenters.texy +++ b/application/ru/presenters.texy @@ -158,7 +158,7 @@ $url = $this->link('Product:show', [$id, 'lang' => 'en']); $this->forward('Product:show'); ``` -Пример временного перенаправления с HTTP-кодом 302 или 303: +Пример так называемого временного перенаправления с HTTP-кодом 302 (или 303, если текущий метод запроса - POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ $this->redirect('Product:show', $id); $this->redirectPermanent('Product:show', $id); ``` -Вы можете перенаправить на другой URL вне приложения с помощью метода `redirectUrl()`: +Вы можете перенаправить на другой URL вне приложения, используя метод `redirectUrl()`. HTTP-код может быть указан в качестве второго параметра, по умолчанию это 302 (или 303, если текущий метод запроса - POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/ru/templates.texy b/application/ru/templates.texy index 25333ec9a1..75f2c784d0 100644 --- a/application/ru/templates.texy +++ b/application/ru/templates.texy @@ -42,7 +42,9 @@ Nette использует систему шаблонов [Latte |latte:]. Latt - `templates//.latte` - `templates/..latte` -Если шаблон не найден, ответом будет [ошибка 404 |presenters#error-404-etc]. +Если шаблон не найден, он попытается выполнить поиск в каталоге `templates` на один уровень выше, т.е. на том же уровне, что и каталог с классом ведущего. + +Если шаблон не найден и там, ответом будет [ошибка 404 |presenters#Error 404 etc.]. Вы также можете изменить вид с помощью `$this->setView('jineView')`. Или, вместо прямого поиска, укажите имя файла шаблона с помощью `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/sl/ajax.texy b/application/sl/ajax.texy index a30819a9a5..1d982a2057 100644 --- a/application/sl/ajax.texy +++ b/application/sl/ajax.texy @@ -10,9 +10,13 @@ Sodobne spletne aplikacije danes tečejo pol na strežniku in pol v brskalniku. -Zahtevo AJAX je mogoče zaznati z metodo storitve, ki [enkapsulira zahtevo HTTP |http:request] `$httpRequest->isAjax()` (zaznava na podlagi glave `X-Requested-With` HTTP). Obstaja tudi skrajšana metoda v programu presenter: `$this->isAjax()`. -Zahteva AJAX se v ničemer ne razlikuje od običajne zahteve - presenter se pokliče z določenim pogledom in parametri. Tudi od predstavnika je odvisno, kako se bo odzval: s svojimi rutinami lahko vrne fragment kode HTML (snippet), dokument XML, objekt JSON ali del kode Javascript. +Zahteva AJAX .[#toc-ajax-request] +================================= + +Zahteva AJAX se ne razlikuje od klasične zahteve - predvajalnik se pokliče z določenim pogledom in parametri. Prav tako je od predstavnika odvisno, kako se bo nanjo odzval: uporabi lahko svojo rutino, ki vrne fragment kode HTML (fragment HTML), dokument XML, objekt JSON ali kodo JavaScript. + +Na strani strežnika je mogoče zahtevo AJAX zaznati s storitveno metodo, ki [enkapsulira zahtevo HTTP |http:request] `$httpRequest->isAjax()` (zazna na podlagi glave HTTP `X-Requested-With`). Znotraj predstavnika je na voljo bližnjica v obliki metode `$this->isAjax()`. Na voljo je vnaprej obdelan objekt, imenovan `payload`, namenjen pošiljanju podatkov brskalniku v obliki JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Če želite ustvariti zahtevo AJAX iz običajne povezave (signala) ali oddaje obrazca, preprosto označite ustrezno povezavo, obrazec ali gumb z razredom `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + . .[#toc-snippets] ================== diff --git a/application/sl/bootstrap.texy b/application/sl/bootstrap.texy index ba8eb0b587..bc60e3cfe8 100644 --- a/application/sl/bootstrap.texy +++ b/application/sl/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -V konfiguracijskih datotekah lahko zapišemo običajni zapis `%projectId%` za dostop do parametra z imenom `projectId`. Privzeto konfigurator izpolni naslednje parametre: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` in `consoleMode`. +V konfiguracijskih datotekah lahko zapišemo običajni zapis `%projectId%` za dostop do parametra z imenom `projectId`. Dinamični parametri .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Privzete parametre .[#toc-default-parameters] +--------------------------------------------- + +V konfiguracijskih datotekah lahko uporabite naslednje statične parametre: + +- `%appDir%` je absolutna pot do imenika datoteke `Bootstrap.php`. +- `%wwwDir%` je absolutna pot do imenika, ki vsebuje vstopno datoteko `index.php` +- `%tempDir%` je absolutna pot do imenika za začasne datoteke +- `%vendorDir%` je absolutna pot do imenika, v katerega Composer namesti knjižnice +- `%debugMode%` označuje, ali je aplikacija v načinu odpravljanja napak +- `%consoleMode%` označuje, ali je bila zahteva poslana prek ukazne vrstice + + Uvožene storitve .[#toc-imported-services] ------------------------------------------ diff --git a/application/sl/presenters.texy b/application/sl/presenters.texy index 5109f2558d..1745ff06db 100644 --- a/application/sl/presenters.texy +++ b/application/sl/presenters.texy @@ -158,7 +158,7 @@ Metoda `forward()` takoj preklopi na novi predstavnik brez preusmeritve HTTP: $this->forward('Product:show'); ``` -Primer začasne preusmeritve s kodo HTTP 302 ali 303: +Primer tako imenovane začasne preusmeritve s kodo HTTP 302 (ali 303, če je trenutni način zahteve POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ Za trajno preusmeritev s kodo HTTP 301 uporabite: $this->redirectPermanent('Product:show', $id); ``` -Z metodo `redirectUrl()` lahko preusmerite na drug URL zunaj aplikacije: +Z metodo `redirectUrl()` lahko preusmerite na drug naslov URL zunaj aplikacije. Kodo HTTP lahko določite kot drugi parameter, pri čemer je privzeta vrednost 302 (ali 303, če je trenutna metoda zahteve POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/sl/templates.texy b/application/sl/templates.texy index 2c34a4a33b..66005783a9 100644 --- a/application/sl/templates.texy +++ b/application/sl/templates.texy @@ -42,7 +42,9 @@ Pot do predlog se določi po preprosti logiki. Poskusi preveriti, ali obstaja en - `templates//.latte` - `templates/..latte` -Če predloge ne najde, je odgovor [napaka 404 |presenters#Error 404 etc.]. +Če predloge ne najde, jo poskuša poiskati v imeniku `templates` eno raven višje, tj. na isti ravni kot imenik z razredom predstavnika. + +Če predloge ne najde niti tam, se kot odgovor prikaže [napaka 404 |presenters#Error 404 etc.]. Pogled lahko spremenite tudi z uporabo `$this->setView('otherView')`. Lahko pa namesto iskanja neposredno določite ime datoteke s predlogo z uporabo `$this->template->setFile('/path/to/template.latte')`. diff --git a/application/tr/ajax.texy b/application/tr/ajax.texy index e40b00fd9a..2502de3b69 100644 --- a/application/tr/ajax.texy +++ b/application/tr/ajax.texy @@ -10,9 +10,13 @@ Günümüzde modern web uygulamalarının yarısı sunucuda, yarısı da tarayı -Bir AJAX isteği, `$httpRequest->isAjax()` [HTTP isteğini kapsülleyen |http:request] bir hizmet yöntemi kullanılarak algılanabilir ( `X-Requested-With` HTTP başlığına göre algılar). Ayrıca presenter'da steno bir yöntem de vardır: `$this->isAjax()`. -Bir AJAX isteği normal bir istekten farklı değildir - bir sunucu belirli bir görünüm ve parametrelerle çağrılır. Nasıl tepki vereceği de sunucuya bağlıdır: rutinlerini bir HTML kodu parçası (snippet), bir XML belgesi, bir JSON nesnesi veya bir Javascript kodu parçası döndürmek için kullanabilir. +AJAX İsteği .[#toc-ajax-request] +================================ + +Bir AJAX isteği klasik bir istekten farklı değildir - sunum yapan kişi belirli bir görünüm ve parametrelerle çağrılır. Buna nasıl yanıt verileceği de sunucuya bağlıdır: bir HTML kod parçası (HTML snippet), bir XML belgesi, bir JSON nesnesi veya JavaScript kodu döndüren kendi rutinini kullanabilir. + +Sunucu tarafında, bir AJAX isteği `$httpRequest->isAjax()` [HTTP isteğini kapsülleyen |http:request] hizmet yöntemi kullanılarak algılanabilir ( `X-Requested-With` HTTP başlığına dayalı olarak algılar). Sunucunun içinde, `$this->isAjax()` yöntemi şeklinde bir kısayol mevcuttur. JSON'da tarayıcıya veri göndermeye adanmış `payload` adında önceden işlenmiş bir nesne vardır. @@ -60,6 +64,21 @@ npm install naja ``` +Normal bir bağlantıdan (sinyal) veya form gönderiminden bir AJAX isteği oluşturmak için ilgili bağlantıyı, formu veya düğmeyi `ajax` sınıfıyla işaretlemeniz yeterlidir: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Parçacıklar .[#toc-snippets] ============================ diff --git a/application/tr/bootstrap.texy b/application/tr/bootstrap.texy index c2829b9f89..403f4ee3f7 100644 --- a/application/tr/bootstrap.texy +++ b/application/tr/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -Yapılandırma dosyalarında, `projectId` adlı parametreye erişmek için `%projectId%` normal gösterimini yazabiliriz. Yapılandırıcı varsayılan olarak aşağıdaki parametreleri doldurur: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` ve `consoleMode`. +Yapılandırma dosyalarında, `projectId` adlı parametreye erişmek için `%projectId%` normal notasyonunu yazabiliriz. Dinamik Parametreler .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Varsayılan Parametreler .[#toc-default-parameters] +-------------------------------------------------- + +Yapılandırma dosyalarında aşağıdaki statik parametreleri kullanabilirsiniz: + +- `%appDir%`, `Bootstrap.php` dosyasının dizinine giden mutlak yoldur +- `%wwwDir%`, `index.php` giriş dosyasını içeren dizinin mutlak yoludur +- `%tempDir%` geçici dosyalar için dizinin mutlak yoludur +- `%vendorDir%` Composer'ın kütüphaneleri yüklediği dizinin mutlak yoludur +- `%debugMode%` uygulamanın hata ayıklama modunda olup olmadığını gösterir +- `%consoleMode%` isteğin komut satırı üzerinden gelip gelmediğini gösterir + + İthal Hizmetler .[#toc-imported-services] ----------------------------------------- diff --git a/application/tr/presenters.texy b/application/tr/presenters.texy index d55d54ed3d..74e9bd24c8 100644 --- a/application/tr/presenters.texy +++ b/application/tr/presenters.texy @@ -158,7 +158,7 @@ Yeniden Yönlendirme .[#toc-redirection] $this->forward('Product:show'); ``` -HTTP kodu 302 veya 303 ile geçici yeniden yönlendirme örneği: +HTTP kodu 302 (veya geçerli istek yöntemi POST ise 303) ile sözde geçici yeniden yönlendirme örneği: ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ HTTP kodu 301 ile kalıcı yeniden yönlendirme elde etmek için kullanın: $this->redirectPermanent('Product:show', $id); ``` -`redirectUrl()` yöntemi ile uygulama dışında başka bir URL'ye yönlendirme yapabilirsiniz: +`redirectUrl()` yöntemini kullanarak uygulama dışında başka bir URL'ye yönlendirme yapabilirsiniz. HTTP kodu ikinci parametre olarak belirtilebilir; varsayılan değer 302'dir (veya geçerli istek yöntemi POST ise 303'tür): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/tr/templates.texy b/application/tr/templates.texy index 42aadf4b20..d817bc2d45 100644 --- a/application/tr/templates.texy +++ b/application/tr/templates.texy @@ -42,7 +42,9 @@ Düzende `{include content}` yerine eklenen `content` bloğunu tanımlar ve ayr - `templates//.latte` - `templates/..latte` -Şablonu bulamazsa, yanıt [404 hatası |presenters#Error 404 etc.] olur. +Şablon bulunamazsa, `templates` dizininde bir seviye yukarıda, yani sunum yapan sınıfın bulunduğu dizinle aynı seviyede arama yapmaya çalışacaktır. + +Şablon orada da bulunamazsa, yanıt [404 hatası |presenters#Error 404 etc.] olur. Ayrıca `$this->setView('otherView')` adresini kullanarak görünümü değiştirebilirsiniz. Ya da arama yapmak yerine `$this->template->setFile('/path/to/template.latte')` adresini kullanarak şablon dosyasının adını doğrudan belirtin. diff --git a/application/uk/ajax.texy b/application/uk/ajax.texy index a0f7c17300..657629160c 100644 --- a/application/uk/ajax.texy +++ b/application/uk/ajax.texy @@ -10,9 +10,13 @@ AJAX і сніпети -AJAX-запит може бути виявлений за допомогою методу сервісу [інкапсуляція HTTP-запиту |http:request] `$httpRequest->isAjax()` (визначає на основі HTTP-заголовка `X-Requested-With`). Існує також скорочений метод у презентері: `$this->isAjax()`. -AJAX-запит нічим не відрізняється від звичайного - викликається презентер з певним поданням і параметрами. Від презентера також залежить, як він відреагує: він може використати свої процедури для повернення фрагмента HTML-коду (сніпету), XML-документа, об'єкта JSON або фрагмента коду Javascript. +AJAX запит .[#toc-ajax-request] +=============================== + +AJAX-запит нічим не відрізняється від класичного запиту - викликається доповідач з певним представленням і параметрами. Як на нього відповісти, також залежить від доповідача: він може використовувати власну процедуру, яка повертає фрагмент HTML-коду (HTML-сніппет), XML-документ, JSON-об'єкт або JavaScript-код. + +На стороні сервера AJAX-запит можна виявити за допомогою сервісного методу, що [інкапсулює HTTP-запит |http:request] `$httpRequest->isAjax()` (виявляє на основі HTTP-заголовка `X-Requested-With`). Усередині доповідача доступний ярлик у вигляді методу `$this->isAjax()`. Існує попередньо оброблений об'єкт `payload`, призначений для надсилання даних у браузер у форматі JSON. @@ -60,6 +64,21 @@ npm install naja ``` +Щоб створити AJAX-запит зі звичайного посилання (сигналу) або форми, просто позначте відповідне посилання, форму або кнопку класом `ajax`: + +```html +Go + +
+ +
+ +or +
+ +
+``` + Сніпети .[#toc-snippety] ======================== diff --git a/application/uk/bootstrap.texy b/application/uk/bootstrap.texy index f4872269e9..f71b35252b 100644 --- a/application/uk/bootstrap.texy +++ b/application/uk/bootstrap.texy @@ -174,7 +174,7 @@ $configurator->addStaticParameters([ ]); ``` -У конфігураційних файлах можна використовувати звичайну нотацію `%projectId%` для доступу до параметра з ім'ям `projectId`. За замовчуванням конфігуратор заповнює такі параметри: `appDir`, `wwwDir`, `tempDir`, `vendorDir`, `debugMode` і `consoleMode`. +У конфігураційних файлах ми можемо записати звичайну нотацію `%projectId%` для доступу до параметра з ім'ям `projectId`. Динамічні параметри .[#toc-dynamic-parameters] @@ -197,6 +197,19 @@ $configurator->addDynamicParameters([ ``` +Параметри за замовчуванням .[#toc-default-parameters] +----------------------------------------------------- + +Ви можете використовувати наступні статичні параметри у файлах конфігурації: + +- `%appDir%` - абсолютний шлях до каталогу з файлом `Bootstrap.php` +- `%wwwDir%` - абсолютний шлях до каталогу, в якому знаходиться файл запису `index.php` +- `%tempDir%` - абсолютний шлях до каталогу для тимчасових файлів +- `%vendorDir%` - абсолютний шлях до каталогу, куди Composer встановлює бібліотеки +- `%debugMode%` вказує на те, чи перебуває програма у режимі налагодження +- `%consoleMode%` вказує на те, що запит надійшов через командний рядок + + Імпортовані сервіси .[#toc-imported-services] --------------------------------------------- diff --git a/application/uk/presenters.texy b/application/uk/presenters.texy index 691cef7585..4ff391e760 100644 --- a/application/uk/presenters.texy +++ b/application/uk/presenters.texy @@ -158,7 +158,7 @@ $url = $this->link('Product:show', [$id, 'lang' => 'en']); $this->forward('Product:show'); ``` -Приклад тимчасового перенаправлення з HTTP-кодом 302 або 303: +Приклад так званого тимчасового перенаправлення з HTTP-кодом 302 (або 303, якщо поточний метод запиту - POST): ```php $this->redirect('Product:show', $id); @@ -170,7 +170,7 @@ $this->redirect('Product:show', $id); $this->redirectPermanent('Product:show', $id); ``` -Ви можете перенаправити на інший URL поза додатком за допомогою методу `redirectUrl()`: +Ви можете перенаправити на іншу URL-адресу за межами програми за допомогою методу `redirectUrl()`. Другим параметром можна вказати HTTP-код, за замовчуванням 302 (або 303, якщо поточний метод запиту - POST): ```php $this->redirectUrl('https://nette.org'); diff --git a/application/uk/templates.texy b/application/uk/templates.texy index 6190a04b3f..2dc5f8f053 100644 --- a/application/uk/templates.texy +++ b/application/uk/templates.texy @@ -42,7 +42,9 @@ Nette використовує систему шаблонів [Latte |latte:]. - `templates//.latte` - `templates/..latte` -Якщо шаблон не знайдено, відповіддю буде [помилка 404 |presenters#error-404-etc]. +Якщо шаблон не буде знайдено, він спробує виконати пошук у каталозі `templates` на один рівень вище, тобто на тому ж рівні, що і каталог з класом presenter. + +Якщо шаблон не буде знайдено і там, у відповідь буде видано [помилку 404 |presenters#Error 404 etc.]. Ви також можете змінити вигляд за допомогою `$this->setView('jineView')`. Або, замість прямого пошуку, вкажіть ім'я файлу шаблону за допомогою `$this->template->setFile('/path/to/template.latte')`.