-
-
Notifications
You must be signed in to change notification settings - Fork 283
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
77 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,29 +37,71 @@ Ta definuje blok `content`, který se vloží na místo `{include content}` v la | |
Hledání šablon | ||
-------------- | ||
|
||
Cestu k šablonám odvodí presenter podle jednoduché logiky. Zkusí, zda existuje jeden z těchto souborů umístěných relativně od adresáře s třídou presenteru, kde `<Presenter>` je název aktuálního presenteru a `<view>` je název aktuální akce: | ||
Nemusíte v presenterech uvádět, jaká šablona se má vykreslit, cestu si odvodí sám. | ||
|
||
- `templates/<Presenter>/<view>.latte` | ||
- `templates/<Presenter>.<view>.latte` | ||
Pokud používáte adresářovou strukturu, kde každý presenter má vlastní adresář, jednodušše umístěte šablonu do tohoto adresáře pod jménem akce (resp. view), tj. pro akci `default` použijte šablonu `default.latte`: | ||
|
||
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. | ||
/--pre | ||
app/ | ||
└── UI/ | ||
└── Home/ | ||
├── HomePresenter.php | ||
└── <b>default.latte</b> | ||
\-- | ||
|
||
Pokud ani tam šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.]. | ||
Pokud používáte strukturu, kde jsou společně presentery v jednom adresáři a šablony ve složce `templates`, uložte ji buď do souboru `<Presenter>.<view>.latte` nebo `<Presenter>/<view>.latte`: | ||
|
||
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')`. | ||
/--pre | ||
app/ | ||
└── Presenters/ | ||
├── HomePresenter.php | ||
└── templates/ | ||
├── <b>Home.default.latte</b> ← 1. varianta | ||
└── <b>Home/</b> | ||
└── <b>default.latte</b> ← 2. varianta | ||
\-- | ||
|
||
Adresář `templates` může být umístěn také o úroveň výš, tj. na stejné úrovni, jako je adresář s třídami presenterů. | ||
|
||
Pokud šablonu nenajde, je odpovědí [chyba 404|presenters#Chyba 404 a spol.]. | ||
|
||
View změníte pomocí `$this->setView('jineView')`. Také lze přímo určit soubor se šablonou pomocí `$this->template->setFile('/path/to/template.latte')`. | ||
|
||
.[note] | ||
Soubory, kde se dohledávají šablony, lze změnit překrytím metody [formatTemplateFiles() |api:Nette\Application\UI\Presenter::formatTemplateFiles()], která vrací pole možných názvů souborů. | ||
|
||
Layout se očekává v těchto souborech: | ||
|
||
- `templates/<Presenter>/@<layout>.latte` | ||
- `templates/<Presenter>.@<layout>.latte` | ||
- `templates/@<layout>.latte` layout společný pro více presenterů | ||
Hledání šablony layoutu | ||
------- | ||
|
||
Nette také automaticky dohledává soubor s layoutem. Ten se obvykle dává do souboru `@layout.latte`. Název můžete změnit pomocí `$this->setLayout('layoutAdmin')` a pak se bude očekávat v souboru `@layoutAdmin.latte`. | ||
|
||
Pokud používáte adresářovou strukturu, kde každý presenter má vlastní adresář, umístěte layout buď do složky s presenterem, pokud je specifický jen pro něj, nebo o úroveň výš, pokud je společný pro více presenterů: | ||
|
||
/--pre | ||
app/ | ||
└── UI/ | ||
├── <b>@layout.latte</b> ← společný layout | ||
└── Home/ | ||
├── <b>@layout.latte</b> ← jen pro presenter Home | ||
├── HomePresenter.php | ||
└── default.latte | ||
\-- | ||
|
||
Pokud používáte strukturu, kde jsou společně presentery v jednom adresáři a šablony ve složce `templates`, můžete použít tyto umístění: | ||
|
||
Kde `<Presenter>` je název aktuálního presenteru a `<layout>` je název layoutu, což je standardně `'layout'`. Název lze změnit pomocí `$this->setLayout('jinyLayout')`, takže se budou zkoušet soubory `@jinyLayout.latte`. | ||
/--pre | ||
app/ | ||
└── Presenters/ | ||
├── HomePresenter.php | ||
└── templates/ | ||
├── <b>@layout.latte</b> ← společný layout | ||
├── <b>[email protected]</b> ← jen pro Home, 1. varianta | ||
└── <b>Home/</b> | ||
└── <b>@layout.latte</b> ← jen pro Home, 2. varianta | ||
\-- | ||
|
||
Můžete také přímo určit jméno souboru se šablonou layoutu pomocí `$this->setLayout('/path/to/template.latte')`. Pomocí `$this->setLayout(false)` se dohledávání layoutu vypne. | ||
Pomocí `$this->setLayout(false)` nebo značky `{layout none}` uvnitř šablony se dohledávání layoutu vypne. Také lze přímo určit soubor se šablonou layoutu pomocí `$this->setLayout('/path/to/template.latte')`. | ||
|
||
.[note] | ||
Soubory, kde se dohledávají šablony layoutu, lze změnit překrytím metody [formatLayoutTemplateFiles() |api:Nette\Application\UI\Presenter::formatLayoutTemplateFiles()], která vrací pole možných názvů souborů. | ||
|