Ladda ner appen nu och testa gratis i 10 dagar
Valuta Välj språk Välj region

PHP-exekveringsordning: Header, huvudsidan och footer

Denna utvecklardokumentation visar dig med hjälp av en grundlayout med bx_Header.html, index.html och bx_Footer.html, när de olika PHP-skripten exekveras. Du lär dig hur innehållet i $LayoutHTML steg för steg utökas och var du kan göra sidberoende eller globala ändringar.

Förutsättningar och mål

För den här utvecklarhandledningen bör du veta hur bluetronix CMS konstruerar en sida av sin layout, headern, huvudsidan och footern. Vi visar dig, i vilken ordning PHP-skript för dessa områden körs och vilka delar av $LayoutHTML som redan är laddade.

I exemplet består grundlayouten av CMS-filerna bx_Header.html, index.html och bx_Footer.html. Huvudsidan index.html står som representant för den HTML-sidan som anropas.

Grundlayouten bestämmer i vilken ordning de tre områdena inkluderas. I det visade exemplet hittar du layoutdefinitionen i tabellen 00_layout.

Den relevanta delen av layouten ser ut så här:

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

Den första platshållaren binder in bx_Header.html. Inom main-elementet binds den aktuella sidan in via __DB_Layout_Main__, i vårt exempel index.html. Därefter följer bx_Footer.html.

Även om layoutdefinitionen innehåller alla tre områden, laddas den specifika HTML-innehållet för PHP-koden i de olika områdena gradvis i $LayoutHTML.

1. PHP-koden för headern exekveras först

Öppna i Filhanteraren filen bx_Header.html. Via PHP-kod kan du redigera PHP-koden för detta område.

Headern är det första laddade sidområdet. Medan dess PHP-kod körs, innehåller $LayoutHTML därför bara HTML från bx_Header.html.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Här kan du till exempel ersätta platshållare för headern eller förbereda navigeringen. Du kan vid denna punkt ännu inte få tillgång till det faktiska HTML-innehållet från index.html eller bx_Footer.html via $LayoutHTML.

2. PHP-koden för huvudsidan exekveras därefter

Efter headern laddar CMS den anropade huvudsidan, här index.html, och kör dess PHP-kod. Vid detta tillfälle innehåller $LayoutHTML både HTML-koden från headern och HTML-koden från huvudsidan.

PHP-Code: index.html

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

Därmed kan PHP-koden för huvudsidan inte bara ersätta egna platshållare, utan också ändra redan existerande platshållare inom headern.

Ett exempel: Om din header innehåller platshållaren __HeaderClass__, kan du ersätta den från huvudsidan:

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

Så kan en specifik huvudsida till exempel markera sin menypunkt inom den redan laddade headern som aktiv.

Footern har ännu inte laddats vid denna tidpunkt. Dess HTML-innehåll kan därför ännu inte pålitligt ändras via $LayoutHTML.

3. PHP-koden för footern körs sist

Som sista steg laddar CMS bx_Footer.html och kör dess PHP-kod. Nu innehåller $LayoutHTML HTML-innehållet från alla tre områden.

PHP-Code: bx_Footer.html

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

PHP-koden för footern kan därför ersätta platshållare inom headern, huvudsidan eller footern, förutsatt att de fortfarande finns vid denna tidpunkt.

Om det redan laddade HTML-innehållet till exempel innehåller platshållaren __MyTitle__, kan du ersätta den där:

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

Footern är därför också lämplig för gemensamma justeringar som ska utföras först efter att hela sidstrukturen har laddats.

Körningsordningen i ett översiktligt format

Den avgörande regeln är: PHP kan endast ändra HTML-områden över $LayoutHTML som redan har laddats vid detta tillfälle.

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

Om du till exempel vill styra en header-platshållare från en specifik sida, använder du PHP-koden för denna huvudsida. Om en platshållare ska ersättas i alla tre redan laddade områden passar PHP-koden för footern som kördes sist.

Viktigt vid egna PHP-funktioner

När du definierar egna PHP-funktioner i de olika områdena, var noga med att samma funktion inte definieras flera gånger under ett sidbesök. Välj tydliga funktionsnamn eller kontrollera innan definitionen om funktionen redan existerar.

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

Sammanfattning

I vår grundlayout körs först PHP-koden från bx_Header.html, därefter PHP-koden från index.html och sist PHP-koden från bx_Footer.html. Med varje steg ökar HTML-innehållet som du kan få tillgång till via $LayoutHTML.

Placera din PHP-kod där HTML-sektionerna redan har laddats: i huvudet för huvudspecifika anpassningar, på huvudsidan för eget innehåll och den redan laddade huvuden eller i foten för ändringar av det redan sammanställda layoutet.

FAQ

vad kunder ofta frågar oss

I vilken ordning exekveras PHP-skripten?

Först körs PHP-koden från bx_Header.html, sedan körs PHP-koden från huvudsidan, till exempel index.html, och sist körs PHP-koden från bx_Footer.html.

Vilka HTML-sektioner innehåller $LayoutHTML under Header-PHP-koden?

Under körningen av Header-PHP-koden innehåller $LayoutHTML endast det redan laddade HTML-innehållet från bx_Header.html.

Kan huvudsidan ändra HTML-koden i huvudet?

Ja. När PHP-koden för huvudsidan körs, är huvudet och huvudsidan redan inkluderade i $LayoutHTML. Därmed kan du till exempel ersätta en tidigare definierad plats i huvudet.

Varför kan Header-PHP-koden inte ändra foten än?

Foten laddas först efter huvudsidan. Dess HTML-innehåll finns därför inte ännu i $LayoutHTML under Header-PHP-koden.

Vilka områden kan Footer-PHP-koden ändra?

Vid tidpunkten för fotens exekvering innehåller $LayoutHTML redan huvudet, huvudsidan och foten. Återstående platshållare i dessa områden kan där ersättas.

Var ser jag strukturen för grundlayouten?

Layout-definitionen visas i exemplet i tabellen 00_layout. Den inkluderar bx_Header.html, den aktuella huvudsidan och bx_Footer.html.

Var kan jag redigera PHP-koden från bx_Header.html?

Välj bx_Header.html i Filhanteraren och öppna PHP-kod.

Vad måste jag tänka på med egna PHP-funktioner i huvudet och huvudsidan?

Egna funktioner får inte definieras flera gånger med samma namn under en sidvisning. Använd unika namn eller kontrollera innan du definierar med function_exists() om funktionen redan finns.

CMS