public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "supprimer") {
             Stockage::supprimer($chemin, true);
             // TODO ! gérer correctement le récursif
             return new Page($chemin->parent(), '', "redirect");
         } else {
             if (isset($paramètres["contenu"])) {
                 Stockage::set_prop($chemin, "contenu", $paramètres["contenu"]);
             }
             // titre après les autres paramètres car il peut générer un redirect.
             if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
                 Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
                 Stockage::renomer($chemin, $paramètres["titre"]);
                 $chemin = $chemin->renomer($paramètres["titre"]);
                 // TODO : transmettre le paramètre "vue"
                 return new Page($chemin, '', "redirect");
             }
             if (isset($paramètres["vue"])) {
                 return self::vue($chemin, $paramètres["vue"]);
             } else {
                 return self::vue($chemin);
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "nouvelle_page") {
             // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
             // CONCURENCE : Faire un lock quelque part...
             $numéro_contact = 1 + Stockage::get_prop($chemin, "dernier_numero");
             Stockage::set_prop($chemin, "dernier_numero", $numéro_contact);
             $np = Stockage::nouvelle_page($chemin, "Contact" . $numéro_contact, "contact-contact");
             Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
             Stockage::set_prop($np, "nom", "Dupondt");
             Stockage::set_prop($np, "prenom", "Jean");
             Stockage::set_prop($np, "description", "");
             enregistrer_nouveaute($np);
             return new Page($np, '', "redirect");
         } else {
             if (isset($paramètres["description"])) {
                 Stockage::set_prop($chemin, "description", $paramètres["description"]);
             }
             if (isset($paramètres["titre"])) {
                 Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
             }
             if (isset($paramètres["vue"])) {
                 return self::vue($chemin, $paramètres["vue"]);
             } else {
                 return self::vue($chemin);
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "nouvelle_page") {
             $np = Stockage::nouvelle_page($chemin, "Nouvelle équipe", "equipes-equipe");
             Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
             Stockage::set_prop($np, "titre", "Nouvelle équipe");
             Stockage::set_prop($np, "dernier_numero", 0);
             enregistrer_nouveaute($np);
             return new Page($np, '', "redirect");
         } else {
             if (isset($paramètres["description"])) {
                 Stockage::set_prop($chemin, "description", $paramètres["description"]);
             }
             if (isset($paramètres["titre"])) {
                 Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
             }
             if (isset($paramètres["vue"])) {
                 return self::vue($chemin, $paramètres["vue"]);
             } else {
                 return self::vue($chemin);
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "supprimer") {
             Stockage::supprimer($chemin, true);
             // TODO ! gérer correctement le récursif
             return new Page($chemin->parent(), '', "redirect");
         } else {
             if (isset($paramètres["fichier_image"])) {
                 $fichier_image = $paramètres["fichier_image"]["tmp_name"];
                 $fichier_image_mini = self::creer_miniature($fichier_image, 64, 64);
                 Stockage::set_prop_fichier($chemin, "image_mini", $fichier_image_mini);
                 Stockage::set_prop_fichier_reçu($chemin, "image", $fichier_image);
             }
             if (isset($paramètres["description"])) {
                 Stockage::set_prop($chemin, "description", $paramètres["description"]);
             }
             // titre après les autres paramètres car il peut générer un redirect.
             if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
                 Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
                 Stockage::renomer($chemin, $paramètres["titre"]);
                 $chemin = $chemin->renomer($paramètres["titre"]);
                 // TODO : transmettre le paramètre "vue"
                 return new Page($chemin, '', "redirect");
             }
             if (isset($paramètres["vue"])) {
                 return self::vue($chemin, $paramètres["vue"]);
             } else {
                 return self::vue($chemin);
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "nouvelle_page") {
             // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
             // CONCURENCE : Faire un lock quelque part...
             $numéro_lien = 1 + Stockage::get_prop($chemin, "dernier_numero");
             Stockage::set_prop($chemin, "dernier_numero", $numéro_lien);
             $np = Stockage::nouvelle_page($chemin, "Lien" . $numéro_lien, "liens-lien");
             Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
             Stockage::set_prop($np, "texte", "Un lien");
             Stockage::set_prop($np, "cible", "http://www.example.com/page/");
             Stockage::set_prop($np, "description", "Un lien d'exemple très utile.");
             enregistrer_nouveaute($np);
             return new Page($np, '', "redirect");
         } else {
             if (isset($paramètres["description"])) {
                 Stockage::set_prop($chemin, "description", $paramètres["description"]);
             }
             if (isset($paramètres["titre"])) {
                 Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
             }
             if (isset($paramètres["vue"])) {
                 return self::vue($chemin, $paramètres["vue"]);
             } else {
                 return self::vue($chemin);
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if (isset($paramètres["titre"])) {
             Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
         }
         if (isset($paramètres["vue"])) {
             return self::vue($chemin, $paramètres["vue"]);
         } else {
             return self::vue($chemin);
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     $singleton = new Chemin("/admin/permissions/");
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if (isset($paramètres["regles"])) {
             Stockage::set_prop($singleton, "regles", $paramètres["regles"]);
         }
         if (isset($paramètres["vue"])) {
             return self::vue($chemin, $paramètres["vue"]);
         } else {
             return self::vue($chemin);
         }
     }
 }
 public static function set_regles($regles)
 {
     // $regles est un tableau de quadruplets
     // (chemin, action, groupe, autorisation).
     $str_regles = '';
     foreach ($regles as $k => $r) {
         $str_regles .= self::escape_element_regle($r["chemin"]->get());
         $str_regles .= '|' . self::escape_element_regle($r["action"]);
         $str_regles .= '|' . self::escape_element_regle($r["groupe"]);
         $str_regles .= '|' . ($r["autorisation"] ? "oui" : "non");
         $str_regles .= '|' . self::escape_element_regle($r["commentaire"]);
         $str_regles .= "\n";
         // TODO vérifier que la séquence d'échappement est bien comprise.
     }
     return Stockage::set_prop(self::singleton(), "regles", $str_regles);
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "supprimer") {
             Stockage::supprimer($chemin, true);
             // TODO ! gérer correctement le récursif
             return new Page($chemin->parent(), '', "redirect");
         } else {
             if (isset($paramètres["message"])) {
                 Stockage::set_prop($chemin, "message", $paramètres["message"]);
             }
             return new Page($chemin->parent(), '', "redirect");
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if (isset($paramètres["nom_site"])) {
         Stockage::set_prop($chemin, "nom_site", $paramètres["nom_site"]);
     }
     if (isset($paramètres["prochain_evenement"])) {
         Stockage::set_prop($chemin, "prochain_evenement", $paramètres["prochain_evenement"]);
     }
     if (isset($paramètres["description"])) {
         Stockage::set_prop($chemin, "description", $paramètres["description"]);
     }
     if (isset($paramètres["vue"])) {
         return self::vue($chemin, $paramètres["vue"]);
     } else {
         return self::vue($chemin);
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "nouvelle_page") {
             $np = Stockage::nouvelle_page($chemin, "Nouvel évènement", "galerie-evenement");
             Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
             Stockage::set_prop($np, "titre", "Nouvel évènement");
             Stockage::set_prop($np, "description", "");
             enregistrer_nouveaute($np);
             return new Page($np, '', "redirect");
         } else {
             if ($action == "supprimer") {
                 Stockage::supprimer($chemin, true);
                 // TODO ! gérer correctement le récursif
                 return new Page($chemin->parent(), '', "redirect");
             } else {
                 if (isset($paramètres["description"])) {
                     Stockage::set_prop($chemin, "description", $paramètres["description"]);
                 }
                 // titre après les autres paramètres car il peut générer un redirect.
                 if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
                     Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
                     Stockage::renomer($chemin, $paramètres["titre"]);
                     $chemin = $chemin->renomer($paramètres["titre"]);
                     // TODO : transmettre le paramètre "vue"
                     // TODO : ne marche pas.
                     return new Page($chemin, '', "redirect");
                 }
                 if (isset($paramètres["vue"])) {
                     return self::vue($chemin, $paramètres["vue"]);
                 } else {
                     return self::vue($chemin);
                 }
             }
         }
     }
 }
 public static function action($chemin, $action, $paramètres)
 {
     if ($action == "anuler") {
         return new Page($chemin, '', "redirect");
     } else {
         if ($action == "nouvelle_page") {
             // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
             // CONCURENCE : Faire un lock quelque part...
             $numéro_joueur = 1 + Stockage::get_prop($chemin, "dernier_numero");
             Stockage::set_prop($chemin, "dernier_numero", $numéro_joueur);
             $np = Stockage::nouvelle_page($chemin, "Joueur" . $numéro_joueur, "equipes-joueur");
             Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur());
             Stockage::set_prop($np, "nom", "Dupondt");
             Stockage::set_prop($np, "prenom", "Jean");
             Stockage::set_prop($np, "description", "");
             enregistrer_nouveaute($np);
             return new Page($chemin, '', "redirect");
         } else {
             if ($action == "supprimer") {
                 Stockage::supprimer($chemin, true);
                 // TODO ! gérer correctement le récursif
                 return new Page($chemin->parent(), '', "redirect");
             } else {
                 if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) {
                     Stockage::set_prop($chemin, "titre", $paramètres["titre"]);
                     Stockage::renomer($chemin, $paramètres["titre"]);
                     $chemin = $chemin->renomer($paramètres["titre"]);
                     // TODO : transmettre le paramètre "vue"
                     return new Page($chemin, '', "redirect");
                 }
                 if (isset($paramètres["vue"])) {
                     return self::vue($chemin, $paramètres["vue"]);
                 } else {
                     return self::vue($chemin);
                 }
             }
         }
     }
 }