commit 54b2b64f8fe8decb3261d3756b3a12f1c36c9138
parent 922c54a7774c0d8b897bed524df3f56344103a4b
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Sat, 24 Jul 2010 00:43:30 +0200
Écriture (conception) de quelques modules : galerie et forum.
Diffstat:
5 files changed, 188 insertions(+), 0 deletions(-)
diff --git a/__cms__/modules/forum/forum-index.php b/__cms__/modules/forum/forum-index.php
@@ -0,0 +1,40 @@
+<?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"]);
+ } 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"
+ }
+ $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
@@ -0,0 +1,34 @@
+<?php
+
+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.
+ } else {
+ 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 textarea du message
+ } else {
+ $ret .= "<p>" . get_prop($chemin, "message") . "</p>";
+ }
+ if (vérifier_permission($chemin, "supprimer", get_utilisateur())) {
+ // peut-être afficher le lien "Supprimer" ???
+ }
+ // Peut-être afficher le bouton "citer" ?
+ return $ret;
+ }
+}
+
+?>
diff --git a/__cms__/modules/forum/forum-sujet.php b/__cms__/modules/forum/forum-sujet.php
@@ -0,0 +1,50 @@
+<?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"]);
+ } 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"
+ }
+ $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");
+ }
+}
+
+?>
diff --git a/__cms__/modules/forum/module.php b/__cms__/modules/forum/module.php
@@ -0,0 +1,5 @@
+<?php
+ require_once(dirname(__FILE__) . "/forum-index.php");
+ require_once(dirname(__FILE__) . "/forum-sujet.php");
+ require_once(dirname(__FILE__) . "/forum-message.php");
+?>
diff --git a/__cms__/modules/galerie/galerie-evenement.php b/__cms__/modules/galerie/galerie-evenement.php
@@ -0,0 +1,59 @@
+<?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 ($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["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"]);
+ } 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
+ // afficher le textarea de la description
+ } else {
+ $ret .= "<h1>" . get_prop($chemin, "titre") . "</h1>";
+ $ret .= "<p>" . get_prop($chemin, "description") . "</p>";
+ }
+ if (vérifier_permission($chemin, "nouvelle_page", get_utilisateur())) {
+ // afficher le lien "Nouvelle image"
+ }
+ if (vérifier_permission($chemin, "supprimer", get_utilisateur())) {
+ // afficher le lien "Supprimer"
+ }
+ $ret .= '<ul class="galerie evenement">';
+ 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 "Vue normale de la page.";
+ } else if ($vue == "miniature") {
+ $enfants = stockage::liste_enfants($chemin);
+ if (is_set($enfants[0])) return modules::vue($enfants[0], 'miniature');
+ else return "Aucune<br/>photo";
+ }
+}
+
+?>