Eléphanteau du PHP |
19 Messages
22 oct. 2006, 13:30
La liste de mes pages étant devenue assez longue, j'ai opté pour la solution BDD. ;-)
Un aperçu de ma classe Page :
class Page {
var $nom;
var $nom2;
function Page($nom) {
global $db;
// Cas des pages d'erreur : 403, 404...
if ( is_numeric( $this->nom = $nom ) ) {
$this->forcerInclusion();
return true;
}
// On execute la requete et on verifie qu'elle a fourni un resultat (tableau)
if ( is_array( $this->nom2 = $db->requete("SELECT", " exec FROM pages WHERE call = '$nom'") ) )
$this->nom2 = $this->nom2['exec'];
// Si on a un entier c'est que le resultat de la requete est vide (cf. classe Db)
// donc on force l'affichage de la page 404
else if ( is_int( $this->nom2 ) )
$this->Page("404");
// ... sinon une erreur s'est produite dans la BDD
// donc on force l'affichage de la page d'accueil (ou autre...)
else {
$this->nom = "bdd";
$this->forcerInclusion();
return true;
}
}
function forcerInclusion() {
$this->nom2 = $this->nom . ".php";
}
}
À partir de là, il me suffit d'écrire dans mon index :
$p = new Page( $page ? $page : "accueil" );
include_once($p->nom2);
Où $page contient la valeur récupérée dans la barre d'adresse.