Download appen nu og prøv gratis i 10 dage
Valuta Vælg sprog Vælg region

PHP-udførelsesrækkefølge: Header, hovedside og footer

Denne udviklervejledning viser dig med et grundlayout med bx_Header.html, index.html og bx_Footer.html, hvornår de enkelte PHP-scripts udføres. Du vil lære, hvordan indholdet af $LayoutHTML trin for trin udvides, og hvor du kan foretage sideafhængige eller globale ændringer.

Forudsætninger og mål

For denne udviklervejledning bør du vide, hvordan bluetronix CMS sammensætter en side af sit layout, headeren, hovedsiden og footeren. Vi viser dig, i hvilken rækkefølge PHP-scriptene i disse områder udføres og hvilke dele af $LayoutHTML der allerede er indlæst.

I eksemplet består grundlayoutet af CMS-filerne bx_Header.html, index.html og bx_Footer.html. Hovedsiden index.html repræsenterer den HTML-side, der er kaldt.

Grundlayoutet bestemmer i hvilken rækkefølge de tre områder inkluderes. I det viste eksempel finder du layoutdefinitionen i tabellen 00_layout.

Den relevante udklipning af layoutet ser således ud:

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

Den første pladsholder binder bx_Header.html. Inden for main-elementet bliver den aktuelt kaldte side bundet via __DB_Layout_Main__, i vores eksempel index.html. Herefter følger bx_Footer.html.

Selvom layoutdefinitionen indeholder alle tre områder, bliver HTML-indholdet for PHP-koden i de enkelte områder først indlæst gradvist i $LayoutHTML.

1. PHP-koden for headeren udføres først

Åbn filen bx_Header.html i Filhåndtering. Gennem PHP kode kan du redigere PHP-koden for dette område.

Headeren er det første indlæste sideområde. Mens dens PHP-kode køres, indeholder $LayoutHTML derfor kun HTML fra bx_Header.html.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Du kan her f.eks. erstatte pladsholdere i headeren eller forberede navigationen. Du kan ikke på dette tidspunkt få adgang til det egentlige HTML-indhold fra index.html eller bx_Footer.html via $LayoutHTML.

2. PHP-koden for hovedsiden udføres dernæst

Efter headeren indlæser CMS den kaldte hovedside, her index.html, og udfører dens PHP-kode. På dette tidspunkt indeholder $LayoutHTML både HTML-koden fra headeren og HTML-koden fra hovedsiden.

PHP-Code: index.html

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

Dermed kan PHP-koden for hovedsiden ikke kun erstatte egne pladsholdere, men også ændre allerede eksisterende pladsholdere inden for headeren.

Et eksempel: Hvis din header indeholder pladsholderen __HeaderClass__, kan du erstatte den fra hovedsiden:

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

Hermed kan en bestemt hovedside f.eks. markere sit menupunkt som aktivt inden for den allerede indlæste header.

Footeren er på dette tidspunkt endnu ikke indlæst. Dens HTML-indhold kan derfor ikke ændres pålideligt via $LayoutHTML.

3. PHP-koden for footeren bliver udført sidst

Som det sidste indlæser CMS bx_Footer.html og udfører dens PHP-kode. Nu indeholder $LayoutHTML HTML-indholdet fra alle tre områder.

PHP-Code: bx_Footer.html

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

PHP-koden for footeren kan derfor erstatte pladsholdere inden for headeren, hovedsiden eller footeren, såfremt de stadig er tilgængelige på dette tidspunkt.

Hvis det allerede indlæste HTML f.eks. indeholder pladsholderen __MyTitle__, kan du erstatte den der:

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

Footeren egner sig derfor også til fælles tilpasninger, der først skal udføres efter indlæsningen af den samlede sidestruktur.

Udførelsesrækkefølge ved første øjekast

Den afgørende regel er: PHP kan kun ændre HTML-områder gennem $LayoutHTML, som allerede er indlæst på dette tidspunkt.

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

Hvis du f.eks. ønsker at styre en header-pladsholder fra en bestemt side, bruger du PHP-koden fra denne hovedside. Hvis en pladsholder skal erstattes i alle tre allerede indlæste områder, er det en god idé at bruge den sidst udførte PHP-kode fra footeren.

Vigtigt ved egne PHP-funktioner

Når du definerer egne PHP-funktioner i de forskellige områder, skal du sikre dig, at den samme funktion ikke defineres flere gange under en sides åbning. Vælg entydige funktionsnavne eller tjek inden definitionen, om funktionen allerede findes.

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

Sammendrag

I vores grundlayout kører PHP-koden først fra bx_Header.html, derefter fra index.html og til sidst fra bx_Footer.html. Med hvert skridt udvides det HTML-indhold, som du kan få adgang til via $LayoutHTML.

Placer din PHP-kode der, hvor de nødvendige HTML-områder allerede er indlæst: i headeren til header-specifikke tilpasninger, på hovedsiden til egne indhold og den tidligere indlæste header, eller i footeren til ændringer i det allerede sammensatte layout.

FAQ

hvad kunder ofte spørger os

I hvilken rækkefølge køres PHP-scripts?

Først køres PHP-koden fra bx_Header.html, derefter PHP-koden fra hovedsiden, f.eks. index.html, og til sidst PHP-koden fra bx_Footer.html.

Hvilke HTML-områder indeholder $LayoutHTML under header-PHP-koden?

Under udførelsen af header-PHP-koden indeholder $LayoutHTML kun det allerede indlæste HTML-indhold fra bx_Header.html.

Kan hovedsiden ændre HTML-koden i headeren?

Ja. Når PHP-koden fra hovedsiden køres, er header og hovedside allerede inkluderet i $LayoutHTML. Dermed kan du for eksempel erstatte en plads, der tidligere er oprettet i headeren.

Hvorfor kan header-PHP-koden ikke ændre footeren endnu?

Footeren indlæses først efter hovedsiden. Dens HTML-indhold er derfor endnu ikke tilgængeligt i $LayoutHTML under header-PHP-koden.

Hvilke områder kan footer-PHP-koden ændre?

På tidspunktet for footerens udførelse indeholder $LayoutHTML allerede headeren, hovedsiden og footeren. Fortsat eksisterende pladser i disse områder kan her erstattes.

Hvor kan jeg se opbygningen af grundlayoutet?

Layout-definitionen vises i eksemplet i tabellen 00_layout. Den binder bx_Header.html, den aktuelle hovedside og bx_Footer.html.

Hvor kan jeg redigere PHP-koden fra bx_Header.html?

Vælg bx_Header.html i Filhåndterer og åbn PHP-kode.

Hvad skal jeg være opmærksom på ved egne PHP-funktioner i header og hovedside?

Egne funktioner må ikke defineres flere gange med det samme navn under et sideopkald. Brug entydige navne eller kontroller med function_exists(), om funktionen allerede findes.

CMS