Scarica l'app ora e prova gratuitamente per 10 giorni
Valuta Seleziona la lingua Seleziona regione

Ordine di esecuzione di PHP: Intestazione, pagina principale e footer

Questo tutorial per sviluppatori ti mostra, attraverso un layout di base con bx_Header.html, index.html e bx_Footer.html, quando vengono eseguiti i singoli script PHP. Scoprirai come il contenuto di $LayoutHTML viene ampliato passo dopo passo e dove puoi apportare modifiche specifiche alla pagina o globali.

Requisiti e obiettivo

Per questo tutorial per sviluppatori dovresti sapere come il CMS bluetronix costruisce una pagina dal suo layout, dall'intestazione, dalla pagina principale e dal footer. Ti mostreremo in quale ordine vengono eseguiti gli script PHP di queste aree e quali parti di $LayoutHTML sono già caricate.

Nell'esempio, il layout di base è composto dai file CMS bx_Header.html, index.html e bx_Footer.html. La pagina principale index.html rappresenta la rispettiva pagina HTML chiamata.

Il layout di base determina in quale ordine vengono inclusi i tre settori. Nell'esempio mostrato, trovi la definizione del layout nella tabella 00_layout.

La sezione rilevante del layout appare così:

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

Il primo segnaposto integra bx_Header.html. All'interno dell'elemento main, viene integrata la pagina attualmente richiesta tramite __DB_Layout_Main__, nel nostro esempio index.html. Poi segue bx_Footer.html.

Anche se la definizione del layout contiene tutte e tre le aree, il contenuto HTML specifico per il codice PHP delle singole aree viene caricato gradualmente in $LayoutHTML.

1. Il codice PHP dell'intestazione viene eseguito per primo

Apri nel File Manager il file bx_Header.html. Tramite Codice PHP puoi modificare il codice PHP di quest'area.

L'intestazione è la prima area della pagina ad essere caricata. Durante l'esecuzione del suo codice PHP, $LayoutHTML contiene quindi solo l'HTML di bx_Header.html.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Puoi qui, ad esempio, sostituire segnaposto dell'intestazione o preparare la navigazione. Non puoi ancora accedere al contenuto HTML effettivo di index.html o bx_Footer.html tramite $LayoutHTML.

2. Il codice PHP della pagina principale viene eseguito successivamente

Dopo l'intestazione, il CMS carica la pagina principale chiamata, qui index.html, ed esegue il suo codice PHP. A questo punto, $LayoutHTML contiene sia il codice HTML dell'intestazione che il codice HTML della pagina principale.

PHP-Code: index.html

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

In questo modo, il codice PHP della pagina principale può sostituire non solo i segnaposto propri, ma anche modificare i segnaposto già esistenti all'interno dell'intestazione.

Un esempio: Se la tua intestazione contiene il segnaposto __HeaderClass__, puoi sostituirlo dalla pagina principale:

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

In questo modo, una pagina principale specifica può ad esempio contrassegnare la sua voce di menu all'interno dell'intestazione già caricata come attiva.

Il footer non è stato ancora caricato a questo punto. Pertanto, il suo contenuto HTML non può ancora essere modificato in modo affidabile tramite $LayoutHTML.

Il codice PHP del footer viene eseguito per ultimo

Infine, il CMS carica bx_Footer.html ed esegue il suo codice PHP. Ora $LayoutHTML contiene i contenuti HTML di tutte e tre le aree.

PHP-Code: bx_Footer.html

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

Il codice PHP del footer può quindi sostituire i segnaposto all'interno dell'intestazione, della pagina principale o del footer, a condizione che siano ancora presenti a quel punto.

Se l'HTML già caricato contiene ad esempio il segnaposto __MyTitle__, puoi sostituirlo lì:

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

Il footer è quindi adatto anche per modifiche comuni che devono essere eseguite solo dopo il caricamento dell'intera struttura della pagina.

L'ordine di esecuzione a colpo d'occhio

La regola fondamentale è: PHP può modificare solo le aree HTML già caricate tramite $LayoutHTML.

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

Se desideri controllare un segnaposto dell'intestazione da una pagina specifica, utilizzi il codice PHP di quella pagina principale. Se un segnaposto deve essere sostituito in tutte e tre le aree già caricate, si consiglia di utilizzare il codice PHP del footer, che viene eseguito per ultimo.

Importante per le funzioni PHP personalizzate

Se definisci funzioni PHP personalizzate in diverse aree, fai attenzione a non definire la stessa funzione più volte durante una chiamata di pagina. Scegli nomi di funzione univoci o verifica prima della definizione se la funzione esiste già.

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

Riepilogo

Nel nostro layout di base, il codice PHP di bx_Header.html viene eseguito per primo, poi il codice PHP di index.html e infine il codice PHP di bx_Footer.html. Con ogni passaggio, il contenuto HTML a cui puoi accedere tramite $LayoutHTML si amplia.

Posiziona il tuo codice PHP dove le aree HTML necessarie sono già state caricate: nell'intestazione per le modifiche specifiche dell'intestazione, nella pagina principale per i contenuti propri e l'intestazione già caricata, o nel piè di pagina per le modifiche al layout già composto.

FAQ

cosa ci chiedono spesso i clienti

In quale ordine vengono eseguiti gli script PHP?

Prima viene eseguito il codice PHP di bx_Header.html, poi il codice PHP della pagina principale, ad esempio index.html, e infine il codice PHP di bx_Footer.html.

Quali aree HTML contiene $LayoutHTML durante il codice PHP dell'intestazione?

Durante l'esecuzione del codice PHP dell'intestazione, $LayoutHTML contiene solo il contenuto HTML già caricato di bx_Header.html.

La pagina principale può modificare il codice HTML dell'intestazione?

Sì. Quando viene eseguito il codice PHP della pagina principale, l'intestazione e la pagina principale sono già incluse in $LayoutHTML. Puoi quindi, ad esempio, sostituire un segnaposto creato in precedenza nell'intestazione.

Perché il codice PHP dell'intestazione non può ancora modificare il piè di pagina?

Il piè di pagina viene caricato solo dopo la pagina principale. Il suo contenuto HTML non è quindi presente in $LayoutHTML durante il codice PHP dell'intestazione.

Quali aree può modificare il codice PHP del piè di pagina?

Al momento dell'esecuzione del piè di pagina, $LayoutHTML contiene già l'intestazione, la pagina principale e il piè di pagina. I segnaposto che sono ancora presenti in queste aree possono essere sostituiti.

Dove posso vedere la struttura del layout di base?

La definizione del layout viene mostrata nell'esempio nella tabella 00_layout. Essa include bx_Header.html, la pagina principale attuale e bx_Footer.html.

Dove posso modificare il codice PHP di bx_Header.html?

Seleziona bx_Header.html nel File Manager e apri PHP Code.

Cosa devo considerare per le mie funzioni PHP nell'intestazione e nella pagina principale?

Le funzioni proprie non possono essere definite più volte con lo stesso nome durante una richiesta della pagina. Usa nomi univoci o verifica prima della definizione con function_exists() se la funzione è già presente.

CMS