CMS homemade, partie 2

Dans cet article, nous allons analyser la requête "Get" pour savoir quel contenu afficher, en quelques lignes seulement.

La requête en GET

PHP peut analyser des informations envoyées dans une url, après le signe " ?". Derrière ce signe, php espère trouver deux choses : une clé et sa valeur. Par exemple :

 ?page=entree

Ce qui signifie que la clé "page" a pour valeur "entree".
Php peut permettre de récupérer cette information et de la tester. Il a reçu cette information qui est stockée dans un array qui porte de le nom de $_GET. Pour récupérer la valeur associée à la clé "page", demandera donc "$_GET[’page’]. $_GET est en fait ce qu’on appelle une superglobale, voir l’information sur le site de php.

Voici le code complet :

if(isset($_GET['page'])){
   $page=trim($_GET['page']);
} else {
   $page=$arbo[0];
}
$contenu_page=lit_dossier($page, 'complet');

Ce code demande si un paramètre a été envoyé dans l’url. Si oui, le dossier à charger pour afficher la page sera celui qui est spécifié, sinon, c’est le premier dossier de la variable "$arbo" qui sera choisi.

Le code charge ensuite le contenu choisi avec la fonction "lit_dossier()" que nous avons déjà employé, sauf que cette fois, il demande le contenu complet. Les pièces jointes éventuelles (images et documents) seront donc chargés.

Afficher le titre et le texte

Il reste maintenant à afficher le titre et le texte du contenu sélectionné. Il se trouve dans la variable "$contenu_page" que nous venons de charger à l’instant.

Le titre est dans $contenu_page[’titre’], le texte dans $contenu_page[’texte’]. Pour afficher ça.

Le seul cas particulier est l’illustration, qui ne sera pas systématiquement présent. Pour ne pas avoir de message d’erreur en cas où on demande à PHP d’afficher quelque chose qui n’existe pas, on précède le code d’affichage d’une condition, qui dit "si $contenu_page[’icone’] existe, alors écris-le".

On peut donc remplacer la balise "article" de la page index.php par ceci :

       <article class='clearfix'>       
           <div class="colonne demi bloc-illu">
               <?php
if(isset($contenu_page['icone'])){
   echo "<img src='".$contenu_page['icone']."' alt=''>";
}
               ?>
           </div>               
           <div class="colonne demi">
               <h2><?php echo $contenu_page['titre']; ?></h2>
               <div class="texte">
                   <?php echo $contenu_page['texte']; ?>
               </div>

           </div>

       </article>

Aller plus loin
Ce CMS est rudimentaire, mais on peut lui ajouter tout de même l’affichage des galeries et des pièces jointes. Consultez le script complet en téléchargeant la version "finale" ici.