commit 8e17d1fefe840e54293025eac9fd10965429a2bf
parent b2bc2f4232b595f6314a9c28262f86de4a4b18aa
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Sat, 31 Jul 2010 18:07:51 +0200
Remplissage des fonctions du module Forum.
Diffstat:
3 files changed, 94 insertions(+), 76 deletions(-)
diff --git a/__cms__/modules/forum/forum-index.php b/__cms__/modules/forum/forum-index.php
@@ -1,39 +1,38 @@
<?php
-function action($chemin, $action, $paramètres) {
- if ($action == "anuler") {
- return redirect($chemin);
- } else if ($action == "nouvelle_page") {
- // Créer la nouvelle page avec les valeurs par défaut.
- // return Redirect vers cette nouvelle page.
- } else {
- if (is_set($paramètres["description"])) {
- set_prop($chemin, "description", $paramètres["description"]);
- }
-/* if (is_set($paramètres[""])) {
- }*/
-
- if (is_set($paramètres["vue"])) {
- self::vue($chemin, $paramètres["vue"]);
+class ForumIndex {
+ public function action($chemin, $action, $paramètres) {
+ if ($action == "anuler") {
+ return redirect($chemin);
+ } else if ($action == "nouvelle_page") {
+ // TODO : faut-il demander à avoir directement le nom du nouveau sujet ?
+ // TODO : quel est le propriétaire du nouveau sujet ?
+ $np = Stockage::nouvelle_page($chemin, "Nouveau sujet");
+ Stockage::set_prop($np, "proprietaire", get_utilisateur());
+ return redirect($np);
} else {
- self::vue($chemin);
+ if (is_set($paramètres["vue"])) {
+ self::vue($chemin, $paramètres["vue"]);
+ } else {
+ self::vue($chemin);
+ }
}
}
-}
-
-function vue($chemin, $vue = "normal") {
- if ($vue == "normal") {
- $ret = '';
- $ret .= "<h1>Forum</h1>";
- if (vérifier_permission($chemin, "nouvelle_page", get_utilisateur())) {
- // afficher le lien "Nouveau sujet"
+
+ public function vue($chemin, $vue = "normal") {
+ if ($vue == "normal") {
+ $ret = '';
+ $ret .= "<h1>Forum</h1>";
+ if (vérifier_permission($chemin, "nouvelle_page", get_utilisateur())) {
+ // afficher le lien "Nouveau sujet"
+ }
+ $ret .= '<ul class="forum index">';
+ foreach (stockage::liste_enfants($chemin) as $k) {
+ $ret .= '<li><a href="' . chemin::vers_url($k) . '">' . modules::vue($k, 'miniature') . '</a></li>'; // TODO : escape l'url !
+ }
+ $ret .= '</ul>';
+ return $ret;
}
- $ret .= '<ul class="forum index">';
- foreach (stockage::liste_enfants($chemin) as $k) {
- $ret .= '<li><a href="' . chemin::vers_url($k) . '">' . modules::vue($k, 'miniature') . '</a></li>'; // TODO : escape l'url !
- }
- $ret .= '</ul>';
- return $ret;
}
}
diff --git a/__cms__/modules/forum/forum-message.php b/__cms__/modules/forum/forum-message.php
@@ -4,17 +4,18 @@ function action($chemin, $action, $paramètres) {
if ($action == "anuler") {
return redirect($chemin);
} else if ($action == "supprimer") {
- // Supprimer cette page.
- // return Redirect vers la page parente.
+ Stockage::supprimer($chemin);
+ return redirect($chemin->parent());
} else {
if (is_set($paramètres["message"])) {
- // set_prop($chemin, "message", $paramètres["message"]);
+ Stockage::set_prop($chemin, "message", $paramètres["message"]);
}
+ // TODO ...
if (is_set($paramètres["vue"])) {
- self::vue($chemin, $paramètres["vue"]);
+ Modules::vue($chemin->parent(), $paramètres["vue"]);
} else {
- self::vue($chemin);
+ Modules::vue($chemin->parent());
}
}
}
@@ -23,7 +24,7 @@ function vue($chemin, $vue = "normal") {
if ($vue == "normal") {
$ret = '';
if (vérifier_permission($chemin, "set_prop", get_utilisateur())) {
- $ret .= formulaire_édition_texte_enrichi(get_prop($chemin, "message"), $nom_champ);
+ $ret .= formulaire_édition_texte_enrichi(get_prop($chemin, "message"), "message");
} else {
$ret .= affichage_texte_enrichi(get_prop($chemin, "message"));
}
diff --git a/__cms__/modules/forum/forum-sujet.php b/__cms__/modules/forum/forum-sujet.php
@@ -1,49 +1,67 @@
<?php
-function action($chemin, $action, $paramètres) {
- if ($action == "anuler") {
- return redirect($chemin);
- } else if ($action == "nouvelle_page") {
- // Créer le nouveau message avec comme titre un numéro.
- // return Redirect vers la page actuelle, à l'ancre correspondant à ce message.
- } else if ($action == "supprimer") {
- // Supprimer cette page.
- // return Redirect vers la page parente.
- } else {
- if (is_set($paramètres["titre"])) {
- // renomer la page
- }
-
- if (is_set($paramètres["vue"])) {
- self::vue($chemin, $paramètres["vue"]);
+class ForumSujet {
+ public function action($chemin, $action, $paramètres) {
+ if ($action == "anuler") {
+ return redirect($chemin);
+ } else if ($action == "nouvelle_page") {
+ // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement
+ $numéro_message = 1 + Stockage::get_prop($chemin, "dernier_numero");
+ Stockage::set_prop($chemin, "dernier_numero", $numéro_message);
+ $np = Stockage::nouvelle_page($chemin, "" . $numéro_message);
+ Stockage::set_prop($np, "proprietaire", get_utilisateur());
+
+ return redirect($chemin, "#message" . $numéro_message);
+ } else if ($action == "supprimer") {
+ Stockage::supprimer($chemin);
+ return redirect($chemin->parent());
} else {
- self::vue($chemin);
+ if (is_set($paramètres["titre"])) {
+ Stockage::renomer($chemin, $paramètres["titre"]);
+ $chemin = $chemin->renomer($paramètres["titre"]);
+ // TODO : peut-être redirect($chemin) ?
+ }
+
+ if (is_set($paramètres["vue"])) {
+ self::vue($chemin, $paramètres["vue"]);
+ } else {
+ self::vue($chemin);
+ }
}
}
-}
-
-function vue($chemin, $vue = "normal") {
- if ($vue == "normal") {
- $ret = '';
- if (vérifier_permission($chemin, "set_prop", get_utilisateur())) {
- // afficher le <input type="text" /> du titre
- } else {
- $ret .= "<h1>" . get_prop($chemin, "titre") . "</h1>";
- }
- if (vérifier_permission($chemin, "nouvelle_page", get_utilisateur())) {
- // afficher le lien "Nouveau message"
- }
- if (vérifier_permission($chemin, "supprimer", get_utilisateur())) {
- // afficher le lien "Supprimer"
+
+ public function vue($chemin, $vue = "normal") {
+ if ($vue == "normal") {
+ $ret = '';
+ if (vérifier_permission($chemin, "set_prop", get_utilisateur())) {
+ $ret .= '<form action="' . $chemin->get_url() . '">';
+ $ret .= '<input type="text" name="titre" class="forum sujet titre edition" value="' . Stockage::get_prop($chemin, "titre") . '"/>';
+ $ret .= '<input type="submit" value="renomer" />';
+ $ret .= '</form>';
+ } else {
+ $ret .= '<h1 class="forum sujet titre affichage">' . get_prop($chemin, "titre") . '</h1>';
+ }
+ if (vérifier_permission($chemin, "supprimer", get_utilisateur())) {
+ $ret .= '<form action="' . $chemin->get_url() . '">';
+ $ret .= '<input type="hidden" name="action" value="supprimer"/>'
+ $ret .= '<input type="submit" value="Supprimer"/>'
+ $ret .= '</form>'
+ }
+ $ret .= '<ul class="forum sujet">';
+ foreach (stockage::liste_enfants($chemin) as $k) {
+ $ret .= '<li>' . Modules::vue($k) . '</li>';
+ }
+ $ret .= '</ul>';
+ if (vérifier_permission($chemin, "nouvelle_page", get_utilisateur())) {
+ $ret .= '<form action="' . $chemin->get_url() . '">';
+ $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'
+ $ret .= '<input type="submit" value="Nouvelle page"/>'
+ $ret .= '</form>'
+ }
+ return $ret;
+ } else if ($vue == "miniature") {
+ return get_prop($chemin, "titre");
}
- $ret .= '<ul class="forum sujet">';
- foreach (stockage::liste_enfants($chemin) as $k) {
- $ret .= '<li>' . modules::vue($k) . '</li>';
- }
- $ret .= '</ul>';
- return $ret;
- } else if ($vue == "miniature") {
- return get_prop($chemin, "titre");
}
}