www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 4645b692ccbb73f95e2347631a5ed611db36a9cf
parent 496a41e532988efc6b982df0260046cd5d2316bb
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Wed, 23 Jun 2010 14:41:03 +0200

Code d'une partie du contrôleur : liste_enfants et constructeur.
Permet presque d'afficher de manière schématique la page principale de la galerie

Diffstat:
Aconfig.php | 6++++++
Mcontroleur/page.php | 44+++++++++++++++++++++++++++++++-------------
Aindex.php | 11+++++++++++
Mtypes/galerie.php | 37+++++++++++++++++++++----------------
4 files changed, 69 insertions(+), 29 deletions(-)

diff --git a/config.php b/config.php @@ -0,0 +1,5 @@ +<?php + +$config_url_base = "http://127.0.0.1/2010-moteur-site-simple/"; + +?> +\ No newline at end of file diff --git a/controleur/page.php b/controleur/page.php @@ -1,8 +1,10 @@ <?php - // Protocole : http://site/actualités/?nouveau=Le%20titre +require_once("config.php"); - // TODO : Constructeur. +// Protocole : http://site/actualités/?nouveau=Le%20titre + +// TODO : Constructeur. class Page { // article/prop_article @@ -12,15 +14,25 @@ class Page { // /prop_lieu // /article_1 // Sous article // /article_2 // Sous article - + + public function __construct($chemin) { + // SECURITE : chemin doit être un sous-dossier de .../modele/ + $this->chemin = $chemin; + } + public function liste_enfants() { - // Ouvrir le dossier (fopen). - // Lister les dossiers. - // Construire un objet Page pour chacun (code commun avec Page::enfant(nom)). - // renvoyer la liste. + $lst = scandir($this->chemin); + $lst_enfants = Array(); + if ($lst !== false) { + foreach ($lst as $k => $v) { + // Construire un objet Page pour chacun (code commun avec Page::enfant(nom)). + $lst_enfants[] = new Page($this->chemin . '/' . $v); // TODO : . '/' . n'est pas portable ! + } + } + return $lst_enfants; } - public function enfant(nom) { + public function enfant($nom) { // Récupéere le sous-dossier "nom" // Construire un objet Page (code commun avec Page::liste_enfants()). } @@ -30,30 +42,36 @@ class Page { // Construire un objet Page (code commun avec Page::enfant(nom)). } - public function nouveau(nom) { + public function nouveau($nom) { // Si nom est null, utiliser "Article" + numéro // Créer un sous-dossier "nom" // L'initialiser avec le modèle donné dans prop_modele_enfants // Construire un objet Page (code commun avec Page::enfant(nom)). } - public function supprimer(récursif) { + public function supprimer($récursif) { // Si récursif || il n'y a pas de sous-dossiers // alors supprimer récursivement le dossier courant // sinon renvoyer FAUX } - public function get_prop(nom_propriété) { + public function get_prop($nom_propriété) { // lire le contenu du fichier prop_nom_propriété } - public function set_prop(nom_propriété, valeur) { + public function set_prop($nom_propriété, $valeur) { // écrire le contenu du fichier prop_nom_propriété } public function url() { // calculer l'url de cette page en fonction de son chemin et de l'url de base + global $config_url_base; + return $config_url_base . $this->chemin; + } + + public function vue() { + return "Aucune vue pour «" . $this->chemin . "» ."; } - } +} ?> \ No newline at end of file diff --git a/index.php b/index.php @@ -0,0 +1,10 @@ +<h1>Test</h1> +<?php + +require_once("types/galerie.php"); + +$p = new Galerie("."); + +print_r($p->vue()); + +?> +\ No newline at end of file diff --git a/types/galerie.php b/types/galerie.php @@ -1,24 +1,29 @@ <?php -class Gallerie extends Page { - public vue($nom_vue) { - $ret = ''; +require_once("controleur/page.php"); + +class Galerie extends Page { + public function vue($nom_vue = "normal") { + $ret = ''; - $ret += '<ul>'; - foreach ($this->liste_sous_articles() as $k) { - $ret += '<li><a href="' + url_avec_parametres($k) + '">' + afficher($k, 'miniature') + '</a></li>'; - } - $ret += '</ul>'; + $ret .= '<ul>'; + foreach ($this->liste_enfants() as $k) { + $ret .= '<li><a href="' . $k->url() . '">' . $k->vue('miniature') . '</a></li>'; + } + $ret .= '</ul>'; + + if ($edition) { + $ret .= '<a href="' . $this->url('nouveau') . '">Nouvelle période.</a>'; + } - if ($edition) { - $ret += '<a href="' + $this->url('nouveau') + '">Nouvelle période.</a>'; + return $ret; } - } -// TODO : -// Chaque page est un objet PHP, avec les méthodes suivantes : -// $page->vue(nom_vue, nom_vue_fallback_1, nom_vue_fallback_2, …); // nom_vue = normal, edition, miniature, … -// -// + Méthodes définies dans modele/page.php + // TODO : + // Chaque page est un objet PHP, avec les méthodes suivantes : + // $page->vue(nom_vue, nom_vue_fallback_1, nom_vue_fallback_2, …); // nom_vue = normal, edition, miniature, … + // + // + Méthodes définies dans modele/page.php +} ?>