Téléchargez l'application maintenant et testez-la gratuitement pendant 10 jours
Devise Choisir la langue Sélectionner une région

Ordre d'exécution PHP : En-tête, page principale et pied de page

Ce tutoriel pour développeurs te montre, à l'aide d'une mise en page de base avec bx_Header.html, index.html et bx_Footer.html, quand les différents scripts PHP sont exécutés. Tu apprendras comment le contenu de $LayoutHTML s'étend étape par étape et où apporter des modifications spécifiques à la page ou globales.

Conditions préalables et objectif

Pour ce tutoriel de développement, tu devrais savoir comment le CMS bluetronix assemble une page à partir de son layout, de l'en-tête, de la page principale et du footer. Nous te montrons dans quel ordre les scripts PHP de ces sections sont exécutés et quelles parties de $LayoutHTML sont déjà chargées.

Dans l'exemple, le layout de base se compose des fichiers CMS bx_Header.html, index.html et bx_Footer.html. La page principale index.html représente la page HTML actuellement appelée.

Le layout de base détermine l'ordre dans lequel les trois sections sont intégrées. Dans l'exemple montré, tu trouveras la définition du layout dans le tableau 00_layout.

L'extrait pertinent du layout ressemble à ceci :

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

Le premier espace réservé intègre bx_Header.html. Au sein de l'élément main, __DB_Layout_Main__ intègre la page courante, dans notre exemple index.html. Ensuite, bx_Footer.html suit.

Bien que la définition du layout contienne les trois sections, le contenu HTML pour le code PHP de chaque section est chargé progressivement dans $LayoutHTML.

1. Le code PHP de l'en-tête est exécuté en premier

Ouvre le fichier bx_Header.html dans le Gestionnaire de fichiers. Avec Code PHP, tu peux modifier le code PHP de cette section.

L'en-tête est le premier élément de la page à être chargé. Pendant que son code PHP est exécuté, $LayoutHTML contient donc seulement le HTML de bx_Header.html.

PHP-Code: bx_Header.html

$LayoutHTML enthält:
   bx_Header.html

Tu peux ici, par exemple, remplacer des espaces réservés de l'en-tête ou préparer la navigation. Tu ne peux pas encore accéder au contenu HTML réel de index.html ou bx_Footer.html via $LayoutHTML à ce stade.

2. Le code PHP de la page principale est exécuté ensuite

Après l'en-tête, le CMS charge la page principale appelée, ici index.html, et exécute son code PHP. À ce moment-là, $LayoutHTML contient à la fois le code HTML de l'en-tête et le code HTML de la page principale.

PHP-Code: index.html

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

Ainsi, le code PHP de la page principale peut non seulement remplacer ses propres espaces réservés, mais aussi modifier des espaces réservés déjà présents dans l'en-tête.

Un exemple : si ton en-tête contient l'espace réservé __HeaderClass__, tu peux le remplacer depuis la page principale :

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

Ainsi, une page principale spécifique peut par exemple marquer son élément de menu comme actif dans l'en-tête déjà chargé.

Le footer n'a pas encore été chargé à ce moment-là. Son contenu HTML ne peut donc pas encore être modifié de manière fiable via $LayoutHTML.

Le code PHP du footer est exécuté en dernier

Enfin, le CMS charge bx_Footer.html et exécute son code PHP. Maintenant, $LayoutHTML contient les contenus HTML des trois sections.

PHP-Code: bx_Footer.html

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

Le code PHP du footer peut donc remplacer des espaces réservés dans l'en-tête, la page principale ou le footer, tant qu'ils sont encore présents à ce moment-là.

Si le HTML déjà chargé contient par exemple l'espace réservé __MyTitle__, tu peux le remplacer là-bas :

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

Le footer convient donc également pour des ajustements communs qui doivent être effectués après le chargement de la structure complète de la page.

L'ordre d'exécution en un coup d'œil

La règle essentielle est la suivante : PHP ne peut modifier via $LayoutHTML que les sections HTML qui ont déjà été chargées à ce moment-là.

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

Si tu souhaites par exemple contrôler un espace réservé de l'en-tête à partir d'une page spécifique, utilise le code PHP de cette page principale. Si un espace réservé doit être remplacé dans les trois sections déjà chargées, le code PHP du footer exécuté en dernier est recommandé.

Important pour les fonctions PHP personnalisées

Si tu définis des fonctions PHP personnalisées dans les différentes sections, veille à ce que la même fonction ne soit pas définie plusieurs fois pendant un chargement de page. Utilise des noms de fonction uniques ou vérifie avant la définition si la fonction existe déjà.

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

Résumé

Dans notre layout de base, le code PHP de bx_Header.html s'exécute d'abord, suivi par le code PHP de index.html et enfin le code PHP de bx_Footer.html. À chaque étape, le contenu HTML auquel tu peux accéder via $LayoutHTML s'élargit.

Place donc ton code PHP là où les sections HTML nécessaires sont déjà chargées : dans l'en-tête pour les ajustements spécifiques à l'en-tête, dans la page principale pour le contenu propre et l'en-tête chargé auparavant, ou dans le pied de page pour les modifications de la mise en page déjà assemblée.

FAQ

ce que nos clients nous demandent souvent

Dans quel ordre les scripts PHP sont-ils exécutés ?

Tout d'abord, le code PHP de bx_Header.html est exécuté, ensuite le code PHP de la page principale, par exemple index.html, et enfin le code PHP de bx_Footer.html.

Quelles sections HTML contient $LayoutHTML pendant l'exécution du code PHP de l'en-tête ?

Pendant l'exécution du code PHP de l'en-tête, $LayoutHTML contient seulement le contenu HTML déjà chargé de bx_Header.html.

La page principale peut-elle modifier le code HTML de l'en-tête ?

Oui. Lorsque le code PHP de la page principale est exécuté, l'en-tête et la page principale sont déjà présents dans $LayoutHTML. Ainsi, tu peux remplacer un espace réservé créé auparavant dans l'en-tête.

Pourquoi le code PHP de l'en-tête ne peut-il pas encore modifier le pied de page ?

Le pied de page n'est chargé qu'après la page principale. Son contenu HTML n'est donc pas encore présent dans $LayoutHTML pendant l'exécution du code PHP de l'en-tête.

Quelles sections le code PHP du pied de page peut-il modifier ?

Au moment de l'exécution du pied de page, $LayoutHTML contient déjà l'en-tête, la page principale et le pied de page. Les espaces réservés encore présents dans ces sections peuvent y être remplacés.

Où puis-je voir la structure de la mise en page de base ?

La définition de la mise en page est affichée dans l'exemple dans la table 00_layout. Elle inclut bx_Header.html, la page principale actuelle et bx_Footer.html.

Où puis-je modifier le code PHP de bx_Header.html ?

Sélectionne bx_Header.html dans le Gestionnaire de fichiers et ouvre Code PHP.

Que dois-je garder à l'esprit pour mes propres fonctions PHP dans l'en-tête et la page principale ?

Les fonctions personnelles ne doivent pas être définies plusieurs fois avec le même nom pendant un appel de page. Utilise des noms uniques ou vérifie avant la définition avec function_exists() si la fonction est déjà présente.

CMS