public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="contact infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
             $ret .= '<p class="contact index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
         }
         $ret .= '<div class="contact liste-contacts index">';
         $ret .= '<ul>';
         if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
             $ret .= '<li>';
             $ret .= '<div class="titre">';
             $ret .= '<form class="contact nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<p>';
             $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
             $ret .= '<input type="submit" value="Nouveau contact"/>';
             $ret .= '</p>';
             $ret .= '</form>';
             $ret .= '</div>';
             $ret .= '</li>';
         }
         foreach (stockage::liste_enfants($chemin) as $k) {
             $ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
         }
         $ret .= '</ul>';
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public function envoyer()
 {
     // Yeeeeeeeeeeeeeeeeeeeeeeha ! Et on envoie !
     if ($this->type == "page") {
         echo Squelette::enrober($this);
     } else {
         if ($this->type == "sendfile") {
             Système_fichiers::envoyer_fichier_directement($this->sendfile_fichier);
         } else {
             if ($this->type == "sendprop") {
                 Stockage::get_prop_sendfile($this->sendprop_chemin, $this->sendprop_prop);
             } else {
                 if ($this->type == "raw") {
                     header("Content-Type: " . $this->raw_mime);
                     echo $this->raw_données;
                 } else {
                     if ($this->type == "redirect") {
                         header("Location: " . $this->redirect_destination);
                         /*echo "TODO : Redirection vers <a href=\""
                         		. $this->redirect_destination . "\">"
                         		. $this->redirect_destination . "</a>";*/
                     }
                 }
             }
         }
     }
     // TODO : else erreur
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="contacts contact edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<input type="text" name="prenom" value="' . Stockage::get_prop($chemin, "prenom") . '" />';
             $ret .= '<input type="text" name="nom" value="' . Stockage::get_prop($chemin, "nom") . '" />';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= Stockage::get_prop($chemin, "prenom");
             $ret .= " ";
             $ret .= Stockage::get_prop($chemin, "nom");
             $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "description"));
         }
         if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
             $ret .= '<form action="' . $chemin->get_url() . '">';
             $ret .= '<input type="hidden" name="action" value="supprimer"/>';
             $ret .= '<input type="submit" value="Supprimer le contact ' . htmlspecialchars(Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom")) . '"/>';
             $ret .= '</form>';
         }
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         // Si l'utilisateur a l'autorisation de modifier les propriétés,
         // on affiche la version modifiable plutôt que la "vue".
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<ul>';
             $ret .= '<li><label for="Couleur_A">Couleur A : </label><input type="text" id="Couleur_A" name="Couleur_A" value="#000" /></li>';
             $ret .= '<li><label for="Couleur_B">Couleur B : </label><input type="text" id="Couleur_B" name="Couleur_B" value="#eee" /></li>';
             $ret .= '<li><label for="Couleur_C">Couleur C : </label><input type="text" id="Couleur_C" name="Couleur_C" value="#ff6" /></li>';
             $ret .= '<li><label for="Couleur_D">Couleur D : </label><input type="text" id="Couleur_D" name="Couleur_D" value="#fff" /></li>';
             $ret .= '</ul>';
             $ret .= '<p>';
             $ret .= '<input type="submit" value="Appliquer" />';
             $ret .= '</p>';
         } else {
             $ret .= '<ul>';
             $ret .= '<li>Couleur A : ' . Stockage::get_prop($chemin, "Coucleur_A") . '</li>';
             $ret .= '<li>Couleur B : #eee</li>';
             $ret .= '<li>Couleur C : #ff6</li>';
             $ret .= '<li>Couleur D : #fff</li>';
             $ret .= '</ul>';
         }
         return new Page($ret, "Apparence");
     } else {
         if ($vue == "css") {
             // TODO : où mettre ce gen_css... ?
             return Site::gen_css(array("Couleur_A" => Stockage::get_prop($chemin, "Coucleur_A"), "Couleur_B" => Stockage::get_prop($chemin, "Coucleur_B"), "Couleur_C" => Stockage::get_prop($chemin, "Coucleur_C"), "Couleur_D" => Stockage::get_prop($chemin, "Coucleur_D")));
         }
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="galerie infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
             $ret .= '<p class="galerie index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
         }
         $ret .= '<div class="galerie photos index">';
         $ret .= '<ul>';
         foreach (Stockage::liste_enfants($chemin) as $k) {
             $mini = Modules::vue($k, 'miniature');
             $ret .= '<li>';
             $ret .= '<a href="' . $k->get_url() . '">';
             // TODO : escape l'url !
             $ret .= '<span class="miniature">';
             $ret .= $mini->contenu;
             // TODO : escape l'url !
             $ret .= '</span>';
             $ret .= '<span class="titre">';
             $ret .= $mini->titre;
             $ret .= '</span>';
             $ret .= '</a>';
             $ret .= '</li>';
         }
         if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
             $ret .= '<li>';
             $ret .= '<div class="miniature">';
             $ret .= '<img alt="nouvelle période" src="' . $chemin->get_url("?vue=image_nouvelle_periode") . '" />';
             $ret .= '</div>';
             $ret .= '<div class="titre">';
             $ret .= '<form class="galerie nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<p>';
             $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
             $ret .= '<input type="submit" value="Nouvelle période"/>';
             $ret .= '</p>';
             $ret .= '</form>';
             $ret .= '</div>';
             $ret .= '</li>';
         }
         $ret .= '</ul>';
         $ret .= '<div class="clearboth"></div>';
         $ret .= '</div>';
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     } else {
         if ($vue == "image_nouvelle_periode") {
             // Houlàlà ça sent le hack pas beau !
             return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_image.jpg"), null, "sendfile");
         }
     }
 }
 public static function get_module($chemin)
 {
     $type = Stockage::get_prop($chemin, "type");
     if (Erreur::is_erreur($type)) {
         // TODO : permettre l'empilement des erreurs. Quelle syntaxe utiliser ?
         Erreur::fatale("Erreur lors de la lecture du type de la page " . $chemin->get() . ".", $type);
     } else {
         if (!isset(self::$liste_modules[$type])) {
             Erreur::fatale("Type inconnu (" . var_export($type, true) . ") pour la page " . $chemin->get() . ".");
         }
     }
     return self::$liste_modules[$type];
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
             $ret .= '<p class="articles index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>';
         }
         $ret .= '<div class="articles liste-articles index">';
         $ret .= '<ul>';
         if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
             $ret .= '<li>';
             $ret .= '<div class="titre">';
             $ret .= '<form class="articles nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<p>';
             $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
             $ret .= '<input type="submit" value="Nouvel article"/>';
             $ret .= '</p>';
             $ret .= '</form>';
             $ret .= '</div>';
             $ret .= '</li>';
         }
         foreach (Stockage::liste_enfants($chemin) as $k) {
             // TODO : trier par numéro !
             $mini = Modules::vue($k, 'miniature');
             $ret .= '<li>';
             // TODO : mettre une ancre "#message<numéro>"
             $ret .= '<a href="' . $k->get_url() . '">';
             // TODO : escape l'url !
             $ret .= '<span class="titre">';
             $ret .= $mini->titre;
             $ret .= '</span>';
             $ret .= '<p class="contenu">';
             $ret .= $mini->contenu;
             $ret .= '</p>';
             $ret .= '</a>';
             $ret .= '</li>';
         }
         $ret .= '</ul>';
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     $singleton = new Chemin("/admin/permissions/");
     if ($vue == "normal") {
         $ret = "";
         $ret .= "<h2>Règles de sécurité</h2>";
         $ret .= "<p>La première règle correspondant à une action de l'utilisateur est appliquée. TODO Bla-bla blabla sur le fonctionnement.</p>";
         if (Permissions::vérifier_permission($singleton, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<textarea class="admin permissions regles" cols="200" rows="20">' . Stockage::get_prop($singleton, "regles") . "</textarea>";
             // TODO : html escape chars etc.
         } else {
             $ret .= "<pre><code>" . Stockage::get_prop($singleton, "regles") . "</code></pre>";
             // TODO : html escape chars etc.
         }
         return new Page($ret, "Permissions");
     }
 }
 public static function en_tete($page)
 {
     // TODO : chemin css relatif.
     $racine = new Chemin('/');
     $chemin_css = $racine->get_url('?vue=css');
     $nl = "\n";
     $ret = '';
     $ret .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . $nl;
     $ret .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">' . $nl;
     $ret .= '	<head>' . $nl;
     $ret .= '		<title>' . $page->titre . '</title>' . $nl;
     $ret .= '		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . $nl;
     $ret .= '		<meta http-equiv="Content-Language" content="fr" />' . $nl;
     $ret .= '		<meta name="keywords" lang="fr" content="motcle1,mocle2" />' . $nl;
     $ret .= '		<meta name="description" content="Description de ma page web." />' . $nl;
     /*$ret .= '		<link href="' . $chemin_css . '" rel="stylesheet" type="text/css" />' . $nl;*/
     $ret .= '		<link href="' . $racine->get_url("test.less") . '" rel="stylesheet/less" type="text/css" />' . $nl;
     $ret .= '		<script src="' . $racine->get_url("less/less.js") . '" type="text/javascript"></script>' . $nl;
     $ret .= '	</head>' . $nl;
     $ret .= '	<body>' . $nl;
     $ret .= '		<h1><a href="' . $racine->get_url() . '">' . Stockage::get_prop($racine, "nom_site") . '</a></h1>' . $nl;
     $ret .= '		<div class="site connexion">' . $nl;
     if (Authentification::est_connecté()) {
         $ret .= '<a href="' . $racine->enfant("admin")->enfant("connexion")->get_url("?action=deconnexion") . '">déconnexion</a>' . $nl;
     } else {
         $ret .= '<a href="' . $racine->enfant("admin")->enfant("connexion")->get_url() . '">connexion</a>' . $nl;
     }
     $ret .= '		</div>' . $nl;
     $ret .= '		<div class="site navigation">' . $nl;
     $ret .= '			<ul>' . $nl;
     $ret .= '				<li><a href="' . $racine->get_url() . '">Accueil</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("galerie")->get_url() . '">Galerie</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("nouveautes")->get_url() . '">Nouveautés</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("equipes")->get_url() . '">Équipes</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("forum")->get_url() . '">Forum</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("liens")->get_url() . '">Liens utiles</a></li>' . $nl;
     $ret .= '				<li><a href="' . $racine->enfant("contact")->get_url() . '">Contact</a></li>' . $nl;
     if (Permissions::vérifier_permission($racine->enfant("admin"), "set_prop", Authentification::get_utilisateur())) {
         $ret .= '<li><a href="' . $racine->enfant("admin")->get_url() . '">Administration</a></li>' . $nl;
     }
     $ret .= '			</ul>' . $nl;
     $ret .= '		</div>' . $nl;
     $ret .= '		<div class="site contenu">' . $nl;
     return $ret;
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="forum message edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "message"), "message");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
         }
         if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
             // peut-être afficher le bouton "Supprimer" ??? ou est-ce trop d'options ?
         }
         // Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ?
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         $ret .= '<div class="prochain-evenement">';
         $ret .= '<h2>Prochain évènement</h2>';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form method="post" action="' . $chemin->get_url() . '">';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "prochain_evenement"), "prochain_evenement");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= Stockage::get_prop($chemin, "prochain_evenement");
         }
         $ret .= '</div>';
         $ret .= '<div class="description-site">';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="nom_site infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="nom_site" value="' . Stockage::get_prop($chemin, "nom_site") . '" /></h2>';
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= "<h2>" . Stockage::get_prop($chemin, "nom_site") . "</h2>";
         }
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form method="post" action="' . $chemin->get_url() . '">';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= Stockage::get_prop($chemin, "description");
         }
         $ret .= '</div>';
         return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
     } else {
         if ($vue == "css") {
             return new Page(get_css(), "text/css", "raw");
         }
     }
     return new Page('', '');
     // TODO : devrait renvoyer une page d'erreur !
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
         }
         $ret .= '<div class="nouveautes list index">';
         $ret .= '<ul>';
         /*foreach (Stockage::liste_enfants(new Chemin("/forum")) as $k) {
         		$date = Stockage::get_prop($k, "date_modif");
         		if (Erreur::is_erreur($date)) $date = "0";
         		$date = (int)$date;
         		
         		var_dump($date);
         		}*/
         // TODO : faire dans l'ordre décroissant les 5 dernières nouveautés.
         foreach (Stockage::liste_enfants($chemin) as $n) {
             $k = new Chemin(Stockage::get_prop($n, "chemin"));
             $mini = Modules::vue($k, 'miniature');
             $ret .= '<li>';
             // TODO : mettre une ancre "#message<numéro>"
             $ret .= '<a href="' . $k->get_url() . '">';
             // TODO : escape l'url !
             $ret .= '<span class="titre">';
             $ret .= $mini->titre;
             $ret .= '</span>';
             $ret .= '</a>';
             $ret .= '<p class="contenu">';
             $ret .= $mini->contenu;
             $ret .= '</p>';
             $ret .= '</li>';
         }
         $ret .= '</ul>';
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="forum sujet infos" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2 class="forum sujet titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>';
         }
         if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
             $ret .= '<form action="' . $chemin->get_url() . '">';
             $ret .= '<input type="hidden" name="action" value="supprimer"/>';
             $ret .= '<input type="submit" value="Supprimer le sujet"/>';
             $ret .= '</form>';
         }
         $ret .= '<ul class="forum sujet">';
         foreach (stockage::liste_enfants($chemin) as $k) {
             $ret .= '<li>' . Modules::vue($k)->contenu . '</li>';
         }
         if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
             $ret .= '<li>';
             $ret .= '<form class="forum sujet nouvelle_page" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<p>';
             $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
             $ret .= '<input type="submit" value="Nouveau message"/>';
             $ret .= '</p>';
             $ret .= '</form>';
             $ret .= '</li>';
         }
         $ret .= '</ul>';
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     } else {
         if ($vue == "miniature") {
             return new Page("Sujet.", Stockage::get_prop($chemin, "titre"));
         }
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         $ret .= '<h2>Administration</h2>';
         $ret .= '<ul>';
         foreach (Stockage::liste_enfants($chemin) as $k) {
             if (Stockage::get_prop($k, "inclure_administration") == "oui") {
                 $ret .= '<li>';
                 $ret .= '<a href="' . $k->get_url() . '">';
                 // TODO : escape l'url !
                 $ret .= Stockage::get_prop($k, "titre");
                 $ret .= '</a>';
                 $ret .= '</li>';
             }
         }
         $ret .= '</ul>';
         return new Page($ret, Stockage::get_prop($chemin, "nom_site"));
     }
     return new Page('', '');
     // TODO : devrait renvoyer une page d'erreur !
 }
 public static function get_regles()
 {
     // Renvoie un tableau de quintuplets
     // (chemin, action, groupe, autorisation, commentaire).
     // ou false si erreur.
     $str_regles = Stockage::get_prop(self::singleton(), "regles", true);
     // true => forcer permissions.
     if (!$str_regles) {
         Erreur::fatale("Impossible de lire les règles de sécurité.");
     }
     $str_regles = preg_replace('/\\r\\n|\\r/', "\n", $str_regles);
     $regles = array();
     // TODO : ignorer les lignes vides !
     foreach (explode("\n", $str_regles) as $k => $v) {
         $r = explode('|', $v);
         if (count($r) != 5) {
             return false;
         }
         $regles[] = array("chemin" => new Chemin(self::unescape_element_regle($r[0]), true), "action" => self::unescape_element_regle($r[1]), "groupe" => self::unescape_element_regle($r[2]), "autorisation" => $r[3] == "oui", "commentaire" => self::unescape_element_regle($r[4]));
     }
     return $regles;
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="articles article edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "contenu"), "contenu");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
             $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "contenu"));
         }
         if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) {
             // TODO : afficher le bouton "Supprimer".
         }
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     } elseif ($vue == "miniature") {
         $ret = miniature_texte_enrichi(Stockage::get_prop($chemin, "contenu"));
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     }
 }
 public static function vue($chemin, $vue = "normal")
 {
     if ($vue == "normal") {
         $ret = '';
         if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) {
             $ret .= '<form class="galerie infos" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">';
             $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>';
             $ret .= '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image") . '"/>';
             $ret .= '<p>';
             $ret .= '<input type="file" name="fichier_image" id="fichier_image">';
             $ret .= '</p>';
             $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description");
             $ret .= '<p><input type="submit" value="appliquer" /></p>';
             $ret .= '</form>';
         } else {
             $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>';
             $ret .= '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image") . '"/>';
             $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "message"));
         }
         return new Page($ret, Stockage::get_prop($chemin, "titre"));
     } else {
         if ($vue == "miniature" || $vue == "mini") {
             $ret = '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image_mini") . '"/>';
             return new Page($ret, Stockage::get_prop($chemin, "titre"));
         } else {
             if ($vue == "image") {
                 return new Page($chemin, "image", "sendprop");
             } else {
                 if ($vue == "image_mini") {
                     return new Page($chemin, "image_mini", "sendprop");
                 }
             }
         }
     }
     return new Page('', '');
     // TODO : devrait renvoyer une page d'erreur !
 }
 public static function get_peut_se_connecter($nom_utilisateur, $forcer_permissions = false)
 {
     $peut_se_connecter = Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $forcer_permissions);
     return $peut_se_connecter == "oui" ? true : false;
 }
 public static function findByValeur($valeur)
 {
     $data = BaseSingleton::select('SELECT stockage.id as id, ' . 'stockage.valeur as valeur, ' . 'stockage.visible as visible ' . ' FROM stockage' . ' WHERE LOWER(stockage.valeur) = LOWER(?)', array('i', &$valeur));
     $stockages = new Stockage();
     if (sizeof($data) > 0) {
         $stockages->hydrate($data[0]);
     } else {
         $stockages = null;
     }
     return $stockages;
 }