Vytváření stránek s NALA template

 

Veškerý obsah se musí nacházet se složce /resources/content. V této složce by se měl nacházet minimálně soubor index.php. Tyto soubory jsou volány na základě svého názvu. Například pokud by byl ve složce /resources/content soubor kontakt.php, bude volán po zadání URL https://www.mojestranky.cz/kontakt viz kapitola NALA template router.

Pro každou URL je volán soubor /index.php dále soubor /resources/common/header.php, soubor /resources/common/content.php (v něm je pak volána samotná stránka v našem případě kontakt.php) a /resources/common/footer.php.

 

Podrobný rozbor funkcí

 

NALA template router

 

Router NALA template bere pretty url a hledá ve složce /resources/content. Toto hledání probíhá, dokud není nalezen požadovaný soubor na základě URL. Zbytek je předán jako parametr $_GET['_NALA_GET'] Například pro URL https://www.mojestranky.cz/kontakt/test a obsah složky content

│   ├── content

│   │   ├── kontakt.php

│   │   ├── index.php

│   │   └── test.php

By byl zavolán soubor kontakt.php a byl do něj předán paramter $_GET['_NALA_GET'] ["test"].

Ale v případě následující struktury:

│   ├── content

│   │   ├── kontakt.php

│   │   ├── index.php

    │       └── kontakt

    │           ├── test.php

By byl volán soubor test.php a do něj předán $_GET['_NALA_GET'] [].

Pokud žádný soubor neexistuje je zavolán index.php a do něj předány parametry rovnající se URL. Například pro  https://www.mojestranky.cz/neexistujici/soubor

by byl zavolán index.php a do něj předán $_GET['_NALA_GET'] ["neexistujici", "soubor"].

Samozřejmě v některých případech je žádoucí zobrazit chybovou hlášku o nenalezené stránce. Toho je možné snadno docílit například vyvoláním: NalaUtils\Exceptions\HttpExceptions\HttpNotFoundException v index.php v případě, že jsou mu předány neznáme $_GET['_NALA_GET'] parametry. Řízení poté přebírá NALA template exception handler a zobrazuje příslušnou chybovou stránku.

V našem případě by do index.php byl přidán následující kód:

<?php

if (!empty($_GET['_NALA_GET'])) {

    throw new \NalaUtils\Exceptions\HttpExceptions\HttpNotFoundException();

}

?>