Bonjour,
Pour REQUEST_URI :
$url = getenv('REQUEST_URI');
preg_match("|(?<=\/)[^\/]+php|", $url, $re);
$page = $re[0];
Et, en effet, chaque page contient, d'une façon ou d'une autre, l'ensemble du code, soit directement soit par le biais "d'include", ce qui me semble être la meilleure façon de procéder.
En effet quand tu voudras modifier un pied de page par exemple, il te suffira de modifier un seul fichier, celui du pied de toutes les pages appelé par l'include approprié, et non TOUTES les pages.
Du point de vue de la maintenance c'est nettement plus pratique !!!
Pour ce qui est de la "fabrication" des pages, tu te fais un formulaire dans lequel tu insères TOUT ce qui fera la spécificité d'une page : c'est à dire son contenu particulier (et PAS les liens vers les autres pages du site, liens qui sont générés par un fichier spécial appelé dans chaque page par un "include" qui tient compte du REQUEST_URI, et qui permet donc de mentionner uniquement les liens qui doivent être actifs, vers les autres pages, et d'inactiver le lien en ne laissant que son intitulé pour la page en cours de visualisation).
Le "contenu" de la page est composé de :
son url "page-sauterelle-verte.php" (par exemple) qu j'appelle ici "$creation-page" (voir plus loin)
son nom "La sauterelle verte", qui sera le nom du lien
éventuellement son dossier
son contenu textuel
ses images,
ses contenus de head (title, description...)
le dossier de destination.
Tout cela entré par des input text ou textarea.
Le générateur de menu est une requête en boucle qui va chercher dans la BDD le nom du lien, le dossier, la balise "title" pour le lien et l'url de la page.
Dans cette boucle tu as une condition :
if ( $url_page == $page ) {
$lien .= '<li><hn>' .$nom_du_lien. '</hn></li>;
}
else
{
$lien .= '<li><a href="$dossier. '/' .$url. '" title="' .$titre. '">' .$nom_du_lien. '</a></li>';
}
Il y a donc bien prise en compte du REQUEST_URI.
Revenons au formulaire de fabrication de page : dans un dossier tu as fait une page appelée par exemple "modèle.php".
A l'envoi de ton formulaire, qui va inscrire dans la BDD le contenu de ta page, cela inscrira également l'url, le title, le nom du lien dans la table spécifique aux liens.
A l'envoi de ton formulaire tu copieras de façon automatique la page "modèle.php" dans le dossier de destination avec un :
$lieu = $dossier. '/' .$creation-page;
$source = (ici le chemin qu'il faut)/modele.php;
if ( !file_exists($lieu) ) {
copy($source, $lieu);
}
Et ta page, qui ne contient donc que des "include", sera installée dans le dossier souhaité, sans qu'il n'y ait rien à copier manuellement.
Modifié par jcm (12 Dec 2005 - 13:17)