Stiahnite si aplikáciu teraz a 10 dní ju testujte zadarmo
Mena Vyberte jazyk Vyberte región

Poradie vykonávania PHP: Hlava, hlavná stránka a pätička

Tento tutoriál pre vývojárov ti ukáže na základe základného rozloženia s bx_Header.html, index.html a bx_Footer.html, kedy sa jednotlivé PHP skripty vykonávajú. Zistíš, ako sa obsah $LayoutHTML krok za krokom rozširuje a kde môžeš vykonať zmeny závislé od stránky alebo globálne.

Predpoklady a cieľ

Pre toto vývojárske tutorial by si mal vedieť, ako cms bluetronix skladá stránku zo svojho rozloženia, hlavičky, hlavnej stránky a pätičky. Ukážeme ti, v akom poradí sú PHP skripty týchto oblastí vykonávané a ktoré časti $LayoutHTML sú už načítané.

V príklade základné rozloženie pozostáva z CMS súborov bx_Header.html, index.html a bx_Footer.html. Hlavná stránka index.html predstavuje príslušnú požadovanú HTML stránku.

Základné rozloženie určuje, v akom poradí sú tri oblasti zahrnuté. V uvedenom príklade nájdeš definíciu rozloženia v tabuľke 00_layout.

Relevantná časť rozloženia vyzerá takto:

__DB_Layout_/bx_Header.html__
<main>
   __DB_Layout_Main__
</main>
__DB_Layout_/bx_Footer.html__

Prvý zástupný znak zapracováva bx_Header.html. Vo vnútri main-elementu je aktuálne stránka zapracovaná cez __DB_Layout_Main__, v našom príklade index.html. Potom nasleduje bx_Footer.html.

Aj keď definícia rozloženia obsahuje všetky tri oblasti, HTML obsah jednotlivých oblastí sa do $LayoutHTML načítava postupne.

1. PHP kód hlavičky sa vykonáva najprv

Otvorte v správcovi súborov súbor bx_Header.html. Pomocou PHP kód môžeš upravovať PHP kód tejto oblasti.

Hlavička je prvá načítaná časť stránky. Počas vykonávania jej PHP kódu obsahuje $LayoutHTML preto len HTML z bx_Header.html.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Tu môžeš napríklad nahradiť zástupné symboly hlavičky alebo pripraviť navigáciu. Na skutočný HTML obsah index.html alebo bx_Footer.html sa na tomto mieste ešte nemôžeš cez $LayoutHTML dostať.

2. PHP kód hlavnej stránky sa vykonáva potom.

Po hlavičke načíta CMS požadovanú hlavnú stránku, tu index.html, a vykoná jej PHP kód. V tomto momente $LayoutHTML obsahuje HTML kód hlavičky aj kód hlavnej stránky.

PHP-Code: index.html

$LayoutHTML enthält:
   bx_Header.html
   index.html

Tým pádom môže PHP kód hlavnej stránky nielen nahradiť vlastné zástupné symboly, ale aj zmeniť už existujúce zástupné symboly v hlavičke.

Príklad: Ak tvoja hlavička obsahuje zástupný symbol __HeaderClass__, môžeš ho nahradiť z hlavnej stránky:

$LayoutHTML = str_replace("__HeaderClass__","active",$LayoutHTML);

Tak môže určitá hlavná stránka zaznamenať svoj menu bod ako aktívny v už načítanej hlavičke.

Pätička nebola v tom momente ešte načítaná. Jej HTML obsah sa preto ešte nedá dôveryhodne meniť cez $LayoutHTML.

3. PHP kód pätičky sa vykonáva ako posledný

Nakoniec CMS načíta bx_Footer.html a vykoná jeho PHP kód. Teraz $LayoutHTML obsahuje HTML obsahy všetkých troch oblastí.

PHP-Code: bx_Footer.html

$LayoutHTML enthält:
   bx_Header.html
   index.html
   bx_Footer.html

PHP kód pätičky môže preto nahradiť zástupné symboly v hlavičke, hlavnej stránke alebo pätičke, pokiaľ sú v tom momente ešte prítomné.

Ak už načítané HTML napríklad obsahuje zástupný symbol __MyTitle__, môžeš ho tam nahradiť:

$LayoutHTML = str_replace("__MyTitle__","My Custom Title",$LayoutHTML);

Pätička je preto vhodná aj na spoločné úpravy, ktoré by sa mali uskutočniť až po načítaní celej štruktúry stránky.

Poradie vykonávania na jednom mieste

Kľúčové pravidlo znie: PHP môže prostredníctvom $LayoutHTML meniť iba HTML oblasti, ktoré boli v tom momente už načítané.

1. bx_Header.html
   PHP sieht: Header
        ↓
2. index.html
   PHP sieht: Header + Hauptseite
        ↓
3. bx_Footer.html
   PHP sieht: Header + Hauptseite + Footer

Ak chceš napríklad ovládať zástupný symbol hlavičky z určitej stránky, použiješ PHP kód tejto hlavnej stránky. Ak sa má zástupný symbol nahradiť vo všetkých troch už načítaných oblastiach, odporúča sa posledný vykonaný PHP kód pätičky.

Dôležité pri vlastných PHP funkciách

Ak v rôznych oblastiach definuješ vlastné PHP funkcie, dbaj na to, aby sa tá istá funkcia počas jedného požiadania stránky nedefinovala viackrát. Vyber si jednoznačné názvy funkcií alebo pred definíciou over, či funkcia už existuje.

if(!function_exists("MyTemplateFunction")) {
   function MyTemplateFunction() {
      return true;
   }
}

Zhrnutie

V našom základnom rozložení sa najprv vykonáva PHP kód z bx_Header.html, potom PHP kód z index.html a nakoniec PHP kód z bx_Footer.html. S každým krokom sa rozširuje HTML obsah, ktorý môžeš získať cez $LayoutHTML.

Umísti svoj PHP kód tam, kde sú už načítané potrebné HTML oblasti: v hlavičke pre úpravy špecifické pre hlavičku, na hlavnej stránke pre vlastný obsah a predtým načítanú hlavičku, alebo v päte pre zmeny na už zostavenom rozložení.

Často kladené otázky

čo sa nás zákazníci často pýtajú

V akom poradí sa vykonávajú PHP skripty?

Najprv sa vykoná PHP kód z bx_Header.html, potom PHP kód z hlavnej stránky, ako napríklad index.html, a nakoniec PHP kód z bx_Footer.html.

Aké HTML oblasti obsahuje $LayoutHTML počas vykonávania PHP kódu hlavičky?

Počas vykonávania PHP kódu hlavičky obsahuje $LayoutHTML iba už načítaný HTML obsah z bx_Header.html.

Môže hlavná stránka zmeniť HTML kód hlavičky?

Áno. Keď sa vykonáva PHP kód hlavnej stránky, hlavička a hlavná stránka sú už zahrnuté v $LayoutHTML. Takto môžeš napríklad nahradiť predtým vytvorené miesto v hlavičke.

Prečo nemôže kód PHP hlavičky ešte zmeniť pätu?

Päta sa načíta až po hlavnej stránke. Jej HTML obsah preto ešte nie je v $LayoutHTML počas vykonávania PHP kódu hlavičky.

Aké oblasti môže zmeniť kód PHP päty?

V čase vykonávania päty obsahuje $LayoutHTML už hlavičku, hlavnú stránku a pätu. Ešte existujúce miesta v týchto oblastiach môžu byť tam nahradené.

Kde vidím štruktúru základného rozloženia?

Definícia rozloženia sa v príklade zobrazuje v tabuľke 00_layout. Zahrňuje bx_Header.html, aktuálnu hlavnú stránku a bx_Footer.html.

Kde môžem upraviť PHP kód z bx_Header.html?

Vyber bx_Header.html v Správcovi súborov a otvorte PHP kód.

Čo musím zohľadniť pri vlastných PHP funkciách v hlavičke a hlavnej stránke?

Vlastné funkcie nesmú byť počas načítania stránky viackrát definované rovnakým názvom. Použi jedinečné názvy alebo skontroluj pred definíciou pomocou function_exists(), či funkcia už existuje.

CMS