Formation PUB010 : PHP, 2025 La table pages

32.2 Travailler avec la table pages


L'ajout d'une table pages dans la base de données permet d'y stocker une foule d'informations sur les pages Web du site, ce qui ouvre beaucoup de possibilités.

La structure de la table pages ressemblera à ceci :

Table pages

Cette table doit avoir un index UNIQUE sur le champ url. Ceci assurera qu'il y a un seul enregistrement pour index.php, un seul pour contact.php, etc.

La table et son index unique peuvent être créés à l'aide de ce script.

À titre d'exemple, le script se charge de remplir certains champs pour la page d'accueil.

Description des champs

Champ url

Ce champ contient l'URL de la page. Il ne s'agit pas d'un URL complet. Il faut y entrer seulement le nom de la page (ex : index.php, contact.php).

Champ titre

Il s'agit du titre d'en-tête (balise title).

Champ description

Contenu de la balise méta description. La description sera constituée d'une ou deux phrases qui décrivent le contenu de la page Web.

Champ h1

Titre de contenu de la page Web qui sera affiché dans la balise <h1> (ou <h2> selon votre maquette). Le contenu de cette balise joue également un rôle important dans le référencement.

Champ accroche

Ce champ sera utile seulement si votre maquette présente, pour chaque page, une petite phrase accrocheuse sous le titre <h1> (ou <h2>).

Champ public

Ce champ permet d'indiquer si une page peut être vue par tous les internautes ou seulement pour certains. Le programme PHP pourra donc donner accès à la page ou non selon les informations d'authentification entrées.

Champ texte

Texte statique qui sera affiché dans la page. Il peut s'agir de texte pur ou encore de texte agrémenté de balises HTML : <p>, <ul>, <img>, <strong>, etc.

Champ modification

Date et heure de la dernière modification apportée à la page.

Possibilités qu'offre la table pages

Avec une telle table, il devient possible, par exemple, de modifier le contenu des pages à partir d'un formulaire HTML.

Avec une structure de code appropriée et en combinaison avec la table menus, il devient possible d'ajouter autant de pages que désiré sans avoir à créer un fichier par page (c'est le cas dans Apical, par exemple).

Les informations d'en-tête peuvent aussi être générées dans entete.inc tout en étant personnalisées pour chacune des pages. Il en va de même pour le titre h1 et le texte statique des pages.

Exemple d'utilisation

Le principe pour travailler avec la table pages est le suivant :

  • Dans le fichier configuration.inc, on retrouve le nom de la page actuellement affichée.
  • Toujours dans le fichier configuration.inc, à l'aide d'une requête SQL, on recherche dans la table pages l'enregistrement dont l'URL correspond à la page actuelle. Le code se chargera de stocker les informations de la page dans les constantes PAGE_TITRE, PAGE_DESCRIPTION, etc. que vous pourrez utiliser le moment venu.
  • Dans le cas où il n'y a pas d'enregistrement qui correspond à la page actuelle, la page Web doit tout de même pouvoir être affichée. Une technique intéressante consiste à donner une valeur par défaut à ces constantes, par exemple :
    PHP

    // valeurs par défaut pour éviter que le programme plante si on oublie d'ajouter un enregistrement dans la table pages
    $page_titre = "Mon site Web";
    $page_description = "Information non disponible";
    $page_h1 = "Mon site Web";

    $page_accroche = "";
    $page_texte = "";
    $page_public = 0;
    ...

    // requête à la base de données
    ...
    $stmt->bind_result($page_titre, $page_description, $page_h1, $page_accroche, $page_texte, $page_public);
    ...

    Notez qu'il ne faut pas afficher de <div> ni de <p> pendant qu'on est en train de générer le <head>. Ajustez votre algorithme de requête à la base de données en conséquence.
  • Dans le fichier entete.inc, le code utilise les variables initialisées plus tôt pour ajuster :
    • la balise <title>
    • la balise <meta description>
    • la balise <h1> (ou <h2>, selon votre maquette)
    • l'accroche pour préciser le titre <h1>, si requis par votre maquette
    • le texte de la page

 

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre