<?php
// constantes numériques
require ("constantes.php");
// fonctions d'affichage de portions de pages HTML
require ("acces_page.php");
// affichage du code source d'un fichier
require ("affsource.php");
// génération du menu en colonne de gauche
require ("genmenudoc.php");
// Début du programme principal
// si un nom de page a été passé en paramètre
if (isset ($_GET ['page']))
// le récupérer
$page = strtolower ($_GET ['page']);
// sinon
else
// page d'accueil par défaut
$page = "accueil";
// fabriquer nom et le le chemin d'accès à la page à afficher
$ficpage = DIR_PAGEDOC."/".$page.".html";
// si la page cherchée n'existe pas
if (! file_exists ($ficpage))
// choisir la page d'erreur en remplacement
$ficpage = DIR_PAGEDOC."/manque_page.html";
// ouvrir le ficher contenant la page à afficher
$descfic = fopen ($ficpage, "r");
// si l'ouverture s'est bien passée
if ($descfic)
{
if (basename ($ficpage) == $page.".html")
// recopier le début de l'entête html en remplaçant noindex par index
copmaj ($descfic, "noindex,", "index,");
// sinon
else
{
// recopier la page en mettant à jour le nom du fichier manquant
copmaj ($descfic, "XXXFICHIER", $page);
copmaj ($descfic, "XXXFICHIER", $page);
}
// lire la ligne qui suit
$ligne = fgets ($descfic, LG_MAX_HTML);
// tant qu'on n'arrive pas au menu (ni fin de fichier)
while ($ligne && strpos ($ligne, "XXXMENU") == 0)
{
// si la ligne contient une directive d'exécution
if ($ligne [0] == "!")
{
// séparer l'action à réaliser du fichier concerné
$posblanc = strpos ($ligne, " ");
$action = substr ($ligne, 1, $posblanc - 1);
$fichier = trim (substr ($ligne, $posblanc));
// si l'action demandée fait partie des actions prévues
if ($action == "vsource" || $action == "affiche")
{
// préparer l'affichage du fichier
echo ' <font style="font-size:90%">';
echo "\n <pre>\n";
// l'afficher de la manière appropriée
if ($action == "vsource")
affsource ($fichier);
else
readfile ($fichier);
// fin de l'affichage
echo " </pre>\n </font>\n";
}
// sinon
else
// message d'erreur
echo ' <font color="#ff0000">Action '.$action." inconnue</font><br>\n";
}
// sinon (cas général)
else
// afficher la ligne
echo $ligne;
// lire la ligne suivante
$ligne = fgets ($descfic, LG_MAX_HTML);
}
// générer le menu
genmenudoc ($page);
// copier la fin de la page html
copie_jusque_fin ($descfic);
// terminé avec le fichier html
fclose ($descfic);
}
// sinon message d'erreur
else
echo "Page ".$page." manquante";
?>