Töltsd le az appot most és teszteld ingyen 10 napig
Pénznem Nyelv kiválasztása Válasszon régiót

PHP végrehajtási sorrend: Fejléc, főoldal és lábléc

Ez a fejlesztői útmutató egy alapelrendezés segítségével bemutatja, a bx_Header.html, index.html és bx_Footer.html fájlokkal, mikor kerülnek végrehajtásra az egyes PHP-skriptek. Megtudhatod, hogyan bővül lépésről lépésre a $LayoutHTML tartalma, és hol végezhetsz oldalfüggő vagy globális módosításokat.

Követelmények és cél

Ehhez a fejlesztői oktatóanyaghoz tudnod kell, hogy a bluetronix CMS hogyan állítja össze az oldalt a layoutjából, a fejlécből, a főoldalból és a láblécből. Megmutatjuk, milyen sorrendben hajtódnak végre ezen területek PHP-skriptjei, és hogy $LayoutHTML milyen részei töltődtek be eddig.

A példában az alaplayout a CMS fájlokból áll: bx_Header.html, index.html és bx_Footer.html. A főoldal, index.html, az aktuálisan hívott HTML-oldalt képviseli.

Az alaplayout határozza meg, hogy a három terület milyen sorrendben kerül beillesztésre. A bemutatott példában a layout-definíció az 00_layout táblázatban található.

A layout releváns részlete így néz ki:

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

Az első helyettesítő a bx_Header.html fájlt ágyazza be. A main elem belsejében a __DB_Layout_Main__-on keresztül a éppen elérhető oldal van beszúrva, például a index.html. Ezt követi a bx_Footer.html.

Bár a layout-definíció mindhárom területet tartalmazza, a különböző területek PHP-kódjához tartozó HTML tartalmak egyesével töltődnek be $LayoutHTML-be.

1. A fejléc PHP-kódja először kerül végrehajtásra.

Nyisd meg a Fájlkezelőben a bx_Header.html fájlt. A PHP kód segítségével szerkesztheted ennek a területnek a PHP-kódját.

A fejléc az első betöltött oldalrész. Amíg a PHP-kódja fut, $LayoutHTML ezért csak a bx_Header.html HTML-jét tartalmazza.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Itt például a fejléc helyőrzőit cserélheted ki, vagy előkészítheted a navigációt. Az aktuális HTML tartalom, ami a index.html-től vagy a bx_Footer.html-től származik, ezen a helyen még nem érhető el a $LayoutHTML-n keresztül.

2. A főoldal PHP-kódja ezután kerül végrehajtásra.

A fejléc után a CMS betölti az aktuálisan hívott főoldalt, itt index.html-t, és végrehajtja annak PHP-kódját. Ekkor $LayoutHTML tartalmazza a fejléc és a főoldal HTML-kódját is.

PHP-Code: index.html

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

Így a főoldal PHP-kódja nemcsak a saját helyőrzőit cserélheti ki, hanem a már meglévő helyőrzőket is módosíthatja a fejlécben.

Például: Ha a fejléc tartalmaz egy __HeaderClass__ helyőrzőt, azt a főoldalról ki tudod cserélni:

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

Ez lehetővé teszi, hogy egy adott főoldal a már betöltött fejlécre a menüpontját aktívvá tegye.

A lábléc ez idő alatt még nem volt betöltve. HTML tartalmát ezért még nem lehet megbízhatóan módosítani a $LayoutHTML segítségével.

A lábléc PHP-kódja a végén fut le.

Utolsó lépésként a CMS betölti a bx_Footer.html-t, és végrehajtja annak PHP-kódját. Ekkor $LayoutHTML tartalmazza mindhárom terület HTML-tartalmát.

PHP-Code: bx_Footer.html

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

A lábléc PHP-kódja így helyőrzőket cserélhet ki a fejlécben, a főoldalon vagy a láblécben, amennyiben azok ekkor már léteznek.

Ha a már betöltött HTML például tartalmazza a __MyTitle__ helyőrzőt, azt ott ki tudod cserélni:

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

A lábléc így átfogó módosításokra is alkalmas, amelyeket csak a teljes oldalstruktúra betöltése után kell elvégezni.

A végrehajtási sorrend áttekintése.

A döntő szabály a következő: A PHP csak azokat a HTML-területeket tudja módosítani a $LayoutHTML-on keresztül, amelyek már be vannak töltve.

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

Ha például egy fejléc helyőrzőt szeretnél vezérelni egy adott oldalról, használd ennek a főoldalnak a PHP-kódját. Ha egy helyőrzőt az összes három már betöltött területen kívánsz kicserélni, a lábléc utoljára végrehajtott PHP-kódja a megfelelő választás.

Fontos a saját PHP-funkciókhoz.

Ha különböző területeken saját PHP-funkciókat definiálsz, ügyelj arra, hogy ugyanazt a funkciót egy oldalhívás során ne definiáld többször. Ehhez válassz egyedi funkcióneveket, vagy ellenőrizd a definálás előtt, hogy a funkció már létezik-e.

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

Összefoglalás

Az alaplayoutban először a bx_Header.html PHP-kódja fut le, utána a index.html PHP-kódja, végül a bx_Footer.html PHP-kódja. Minden lépéssel bővül az a HTML-tartalom, amelyhez a $LayoutHTML segítségével hozzáférhetsz.

Helyezd el a PHP-kódodat tehát ott, ahol a szükséges HTML-területek már betöltődtek: a fejlécben a fejléc-specifikus módosításokhoz, a főoldalon saját tartalmakhoz és a korábban betöltött fejléchez, vagy a láblécben a már összeállított elrendezés módosításaihoz.

GYIK

Miket kérdeznek tőlünk gyakran az ügyfelek?

Milyen sorrendben futnak a PHP-scriptek?

Először a PHP-kód a bx_Header.html fájlból fut le, ezt követi a főoldal PHP-kódja, például a index.html, végül pedig a PHP-kód a bx_Footer.html fájlból.

Milyen HTML-területek vannak a $LayoutHTML-ban a Header-PHP-kód futása alatt?

A fejléc PHP-kódjának futása alatt a $LayoutHTML csak a már betöltött HTML-tartalmat tartalmazza a bx_Header.html-ból.

Megváltoztathatja a főoldal a fejléc HTML-kódját?

Igen. Amikor a főoldal PHP-kódja fut, a fejléc és a főoldal már benne van a $LayoutHTML-ban. Így például egy korábban a fejlécben létrehozott helyőrzőt is kicserélhetsz.

Miért nem tudja a Header-PHP-kód még a láblécet megváltoztatni?

A lábléc csak a főoldal betöltése után kerül betöltésre. HTML-tartalma a fejléc PHP-kódja alatt még nincs benne a $LayoutHTML-ban.

Milyen területeket tud megváltoztatni a Footer-PHP-kód?

A lábléc végrehajtásának időpontjában a $LayoutHTML már tartalmazza a fejlécet, a főoldalt és a láblécet. Az ezekben a területekben még meglévő helyőrzőket ott lehet kicserélni.

Hol láthatom az alapelrendezés felépítését?

A layout-definíciót a példa a 00_layout táblázatban mutatja. Beilleszti a bx_Header.html fájlt, a jelenlegi főoldalt és a bx_Footer.html fájlt.

Hol szerkeszthetem a bx_Header.html PHP-kódját?

Válaszd ki a bx_Header.html-t a Fájlkezelőben, és nyisd meg a PHP Kód opciót.

Mire kell figyelnem a saját PHP-funkcióimnál a fejlécben és a főoldalon?

A saját funkciókat nem szabad többször ugyanazzal a névvel definiálni egy oldalbetöltés során. Használj egyedi neveket, vagy ellenőrizd a function_exists() segítségével, hogy a funkció már létezik-e.

CMS