You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В горния пример трябва да се уверите, че само един елемент ще бъде добавен към масива `$list`, когато бъде направена заявката AJAX, така че цикълът `foreach` ще изведе само един динамичен фрагмент.
150
150
151
151
```php
152
-
class HomepagePresenter extends Nette\Application\UI\Presenter
152
+
class HomePresenter extends Nette\Application\UI\Presenter
Ако действието е `default`, можем да го пропуснем, но двоеточието трябва да остане:
101
101
102
102
```latte
103
-
<a n:href="Homepage:">главная страница</a>
103
+
<a n:href="Home:">главная страница</a>
104
104
```
105
105
106
106
Връзките могат да сочат и към други [модули |modules]. Тук връзките се разграничават на относителни към подмодули или абсолютни. Принципът е подобен на дисковите пътища, само че с двоеточия вместо с наклонени черти. Да предположим, че водещият е част от модул `Front`, тогава записваме:
Връзките, генерирани от `link()` или `n:href`, винаги са абсолютни пътища (т.е. започват с `/`), но не и абсолютни URL адреси с протокол и домейн, като `https://domain`.
130
130
131
-
За да създадете абсолютен URL адрес, добавете две наклонени черти в началото (например `n:href="//Homepage:"`). Или можете да превключите презентатора да генерира само абсолютни връзки, като зададете `$this->absoluteUrls = true`.
131
+
За да създадете абсолютен URL адрес, добавете две наклонени черти в началото (например `n:href="//Home:"`). Или можете да превключите презентатора да генерира само абсолютни връзки, като зададете `$this->absoluteUrls = true`.
132
132
133
133
134
134
Връзка към текущата страница .[#toc-link-to-current-page]
Copy file name to clipboardExpand all lines: application/bg/modules.texy
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -104,7 +104,7 @@ class DashboardPresenter extends Nette\Application\UI\Presenter
104
104
105
105
Определя правилата, по които името на класа се извежда от главното име. Записваме ги в [конфигурацията |configuration] под ключа `application › mapping`.
106
106
107
-
Нека започнем с пример, при който не се използват модули. Искаме само главните класове да имат пространството от имена `App\Presenters`. Това означава, че искаме главното име, например `Homepage`, да се съпостави с класа `App\Presenters\HomepagePresenter`. Това може да се постигне със следната конфигурация:
107
+
Нека започнем с пример, при който не се използват модули. Искаме само главните класове да имат пространството от имена `App\Presenters`. Това означава, че искаме главното име, например `Home`, да се съпостави с класа `App\Presenters\HomePresenter`. Това може да се постигне със следната конфигурация:
108
108
109
109
```neon
110
110
application:
@@ -124,7 +124,7 @@ application:
124
124
Api: App\Api\*Presenter
125
125
```
126
126
127
-
Сега водещият `Front:Homepage` е определен от класа `App\Modules\Front\HomepagePresenter`, а презентер `Admin:Dashboard` - `App\AdminModule\DashboardPresenter`.
127
+
Сега водещият `Front:Home` е определен от класа `App\Modules\Front\HomePresenter`, а презентер `Admin:Dashboard` - `App\AdminModule\DashboardPresenter`.
128
128
129
129
Би било по-удобно да се създаде общо правило (звездичка), което да замени първите две правила, и да се добави допълнителна звездичка само за модула:
Този маршрут приема например URL адреси под формата съответно на `/article/edit` и `/catalog/list` и ги превръща в презентатори и действия съответно `Article:edit` и `Catalog:list`.
100
100
101
-
Той също така дава на `presenter` и `action` стойности по подразбиране за `Homepage` и `default` и следователно те не са задължителни. Затова маршрутът също така взема URL адреса `/article` и го превежда като `Article:default`. Или обратното, връзка към `Product:default` генерира пътя `/product`, а връзка към стандартния `Homepage:default` генерира пътя `/`.
101
+
Той също така дава на `presenter` и `action` стойности по подразбиране за `Home` и `default` и следователно те не са задължителни. Затова маршрутът също така взема URL адреса `/article` и го превежда като `Article:default`. Или обратното, връзка към `Product:default` генерира пътя `/product`, а връзка към стандартния `Home:default` генерира пътя `/`.
102
102
103
103
Маската може да описва не само относителен път, базиран на корена на сайта, но и абсолютен път, ако започва с наклонена черта, или дори цял абсолютен URL адрес, ако започва с две наклонени черти:
За да промените начина, по който се генерира най-дясната наклонена черта, т.е. вместо `/homepage/` да получите `/homepage`, конфигурирайте маршрута по този начин:
192
+
За да промените начина, по който се генерира най-дясната наклонена черта, т.е. вместо `/home/` да получите `/home`, конфигурирайте маршрута по този начин:
Добра практика е изходният код да бъде написан на английски език, но какво да правите, ако URL адресът на уебсайта ви трябва да бъде преведен на друг език?
ще генерира английски URL адреси като `/product/123` или `/cart`. Ако искаме презентаторите и действията в URL адреса да бъдат преведени на немски език (напр. `/produkt/123` или `/einkaufswagen`), можем да използваме речник за превод. За да го добавим, вече се нуждаем от "по-ясна" версия на втория параметър:
Параметърът на конструктора `SimpleRouter` е презентаторът и действието по подразбиране, т.е. действието, което ще се изпълни, ако отворим например `http://example.com/` без никакви допълнителни параметри.
504
504
505
505
```php
506
-
// използвайте презентатора 'Homepage' и действието 'default'
507
-
$router = new Nette\Application\Routers\SimpleRouter('Homepage:default');
506
+
// използвайте презентатора 'Home' и действието 'default'
507
+
$router = new Nette\Application\Routers\SimpleRouter('Home:default');
508
508
```
509
509
510
510
Препоръчваме да дефинирате SimpleRouter директно в [конфигурацията |dependency-injection:services]:
Copy file name to clipboardExpand all lines: application/cs/ajax.texy
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -149,7 +149,7 @@ Dynamické snippety nelze invalidovat přímo (invalidace `item-1` neudělá vů
149
149
V příkladu výše zkrátka musíte zajistit, aby při ajaxovém požadavku byla v proměnné `$list` pouze jedna položka a tedy aby ten cyklus `foreach` naplnil pouze jeden dynamický snippet:
150
150
151
151
```php
152
-
class HomepagePresenter extends Nette\Application\UI\Presenter
152
+
class HomePresenter extends Nette\Application\UI\Presenter
0 commit comments