Xavier Lamorlette

Sources PHP du site

J'ai codé ce site en PHP. Sa structure (ainsi que quelques pages exemples montrant ses fonctionnalités) est disponible sous GitHub : https://github.com/xlamorlette/site-perso-php. Voici quelques explications.



Structure des répertoires : fichier index.txt

Chaque répertoire du site doit contenir un fichier index.php et un fichier index.txt.

Le fichier index.php est le même dans tous les répertoires (cela permet de refléter la structure du site avec des URL claires et significatives). Il est décrit plus bas.

Si on met une ligne "*sommaire", un sommaire de la page est alors créé, en recherchant dans la page les lignes "+lien+titre" qui seront elles-mêmes remplacées par des balises au sein de la page. Jusqu'à trois niveaux hiérarchiques (avec un, deux, ou trois caractères '+' en début de ligne) sont gérés. La deuxième partie de la ligne "+titre" est optionnelle : elle permet d'avoir un titre différent de la balise.

Exemple de fichier index.txt :

PHP
sources PHP de ce site
<center><h3>Sources PHP du site</h3></center>
[...]

*sommaire

+structure_repertoires+Structure des répertoires : fichier <tt>index.txt</tt>
[...]

++Categorie niveau 2

Fichier utils.php

À la racine du site se trouve un fichier utils.php contenant quelques fonctions utilitaires.

On y trouve notamment la fonction litStructureSite() qui détermine l'arborescence du site en parcourant récursivement les répertoires contenant des fichiers index.php et index.txt, et en lisant ces fichiers index.txt.

Fichier commun.php

Fichiers index.php

L'inclusion du fichier commun.php pour chaque page, en prenant en compte le chemin relatif nécessaire, est faite par un fichier index.php qui est recopié dans chaque répertoire du site :

// --- contenu de index.php dans chaque répertoire ---
<?
  $repertoireCourant = dirname($_SERVER['SCRIPT_FILENAME']);
  $relatif = substr(strstr($repertoireCourant, "/www/"), strlen("/www/"));
  $categories = explode("/", $relatif);
  $nbNiveaux = count($categories);
  $racine = "";
  for ($i = 1; $i <= $nbNiveaux; $i++)
  {
    $racine .= "../";
  }
  require_once($racine . "commun.php");
?>

Pour la racine du site, ce fichier index.php est différent:

// --- contenu de index.php à la racine ---
<?
  $racine = "./";
  $categories = NULL;
  require_once($racine . "commun.php");
?>

Affichage des pages d'une catégorie

Enfin, voici le "corps" du fichier index.txt utilisé pour afficher les pages d'une catégorie :

// --- contenu de index.txt pour l'affichage d'une catégorie ---
<ul>Voici quelques notes se rapportant au développement web :
<?
$structure = litStructureSite("./");
foreach($structure as $page)
{
  affichePage($page, "");
}
?>
</ul>

Ce site utilise la feuille de style CSS suivante : styles.css.

La dernière mise à jour de cette page date de février 2015.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.