commit ee69af2128f6700c818b6a4e75bf9532f6ac4cc3
parent 6baacdd20a79664609d12c2a3ee0c2e5a860d275
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Fri, 23 Jul 2010 16:09:45 +0200
Restructuration (après griffonage sur papier).
- Organisation des types de pages en modules,
- Chaque module contient un fichier "module.php", qui #include les autres,
- Conception (partielle) de la partie "admin".
- Stockage plus ou moins prévu pour pouvoir stocker dans une base de
données si nécessaire.
- Conception (partielle) du mécanisme d'authentification et de permissions.
Diffstat:
18 files changed, 207 insertions(+), 0 deletions(-)
diff --git a/__cms__/.htaccess b/__cms__/.htaccess
@@ -0,0 +1 @@
+deny from all
diff --git a/__cms__/chemin/chemin.php b/__cms__/chemin/chemin.php
@@ -0,0 +1,14 @@
+<?php
+
+function correspond(motif, chemin) {
+ // motif : liste de segments, pouvant être un chaîne ou un jocker
+ // correspondant à "n'importe quelle chaîne pour ce segment". Le
+ // dernier segment peut être le joker "n'importe quelle suite de
+ // segments (le motif doit donc correspondre à un préfixe du chemin
+ // dans ce cas-là).
+ // chemin : liste de segments.
+
+ // les segments de chemin et motif sont déjà nettoyés.
+}
+
+?>
diff --git a/__cms__/modules/admin/connexion.php b/__cms__/modules/admin/connexion.php
diff --git a/__cms__/modules/admin/couleurs.php b/__cms__/modules/admin/couleurs.php
diff --git a/__cms__/modules/admin/module.php b/__cms__/modules/admin/module.php
diff --git a/__cms__/modules/admin/permissions.php b/__cms__/modules/admin/permissions.php
diff --git a/__cms__/modules/admin/utilisateurs.php b/__cms__/modules/admin/utilisateurs.php
diff --git a/__cms__/modules/forum/module.php b/__cms__/modules/forum/module.php
diff --git a/__cms__/modules/galerie/galerie-evenement.php b/__cms__/modules/galerie/galerie-evenement.php
diff --git a/__cms__/modules/galerie/galerie-index.php b/__cms__/modules/galerie/galerie-index.php
diff --git a/__cms__/modules/galerie/galerie-periode.php b/__cms__/modules/galerie/galerie-periode.php
diff --git a/__cms__/modules/galerie/galerie-photo.php b/__cms__/modules/galerie/galerie-photo.php
@@ -0,0 +1,49 @@
+<?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["fichier_image"])) {
+ // stocker le fichier reçu dans prop_image
+ // redimensionner l'image avec gd, stocker la miniature dans
+ // prop_image_mini
+ }
+ 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") {
+ // Si l'utilisateur a l'autorisation de modifier les propriétés,
+ // on affiche la version modifiable plutôt que la "vue".
+ return "Vue normale de la page.";
+ } else if ($vue == "miniature") {
+ return "Vue miniature.";
+ } else if ($vue == "image") {
+ // stockage::sendfile_prop("image");
+ } else if ($vue == "image_mini") {
+ // stockage::sendfile_prop("image_mini");
+ }
+}
+
+?>
diff --git a/__cms__/modules/galerie/module.php b/__cms__/modules/galerie/module.php
@@ -0,0 +1,6 @@
+<?php
+ require_once(dirname(__FILE__) . "/galerie-index.php");
+ require_once(dirname(__FILE__) . "/galerie-periode.php");
+ require_once(dirname(__FILE__) . "/galerie-evenement.php");
+ require_once(dirname(__FILE__) . "/galerie-photo.php");
+?>
diff --git a/__cms__/securite/authentification.php b/__cms__/securite/authentification.php
@@ -0,0 +1,41 @@
+<?php
+
+function connexion($utilisateur, $mdp) {
+ // vérifie si $utilisateur a pour mot de passe $mdp.
+ // Si oui, on place une variable de session, et on renvoie true.
+ // (Note : session_start doit avoir été exécuté avant.)
+ // La variable de session contient $utilisateur (vérifier si c'est sécurisé...)
+ // Si non, on renvoie false.
+}
+
+function déconnexion() {
+ // Efface la variable de session positionnée par connexion().
+}
+
+function get_utilisateur() {
+ // Renvoie $utilisateur s'il est connecté, false sinon.
+}
+
+function nouvel_utilisateur($utilisateur) {
+ // Crée un nouvel utilisateur nommé $utilisateur.
+ // Lui affecte un mot de passe aléatoire.
+ // Positionne son groupe à "anonyme".
+}
+
+function set_groupe($utilisateur, $groupe) {
+ // Positionne le groupe de $utilisateur à $groupe.
+}
+
+function get_groupe($utilisateur, $groupe) {
+ // Positionne le groupe de $utilisateur à $groupe.
+}
+
+function supprimer_utilisateur($utilisateur) {
+ // Supprime l'utilisateur créé par nouvel_utilisateur
+}
+
+function get_mot_de_passe($utilisateur) {
+ // Renvoie le mot de passe de $utilisateur
+}
+
+?>
diff --git a/__cms__/securite/nettoyage.php b/__cms__/securite/nettoyage.php
@@ -0,0 +1,6 @@
+<?php
+
+// Fonctions permettant de "nettoyer" les données provenant de
+// l'utilisateur.
+
+?>
diff --git a/__cms__/securite/permissions.php b/__cms__/securite/permissions.php
@@ -0,0 +1,24 @@
+<?php
+
+function vérifier_permission($chemin, $action, $utilisateur) {
+ // Vérifie si $utilisateur a la permission d'effectuer $action sur $chemin.
+ // Parcourt la liste les règles de sécurité (get_regles()), et
+ // sélectionne la première pour laquelle $chemin correspond au motif
+ // de la règle, $action correspond au motif de la règle, et
+ // $utilisateur a comme groupe le groupe de la règle (get_groupe()).
+ // Si le champ "autorisation" de la règle est true, on renvoie true,
+ // sinon on renvoie false
+}
+
+function set_regles($regles) {
+ // $regles est un tableau de quadruplets
+ // (chemin, action, groupe, autorisation).
+
+ // Enregistre $regles pour qu'il puisse être lu par get_regles.
+}
+
+function get_regles() {
+ // Renvoie les regles.
+}
+
+?>
diff --git a/__cms__/stockage/stockage.php b/__cms__/stockage/stockage.php
@@ -0,0 +1,34 @@
+<?php
+
+// Chaque fonction appelle vérifier_permission($chemin, $action, $utilisateur).
+
+// Chaque fonction ajoute un chemin de base (pour le stockage) avant
+// $chemin, puis appelle une fonction de systeme-fichiers.php
+
+function créer_enfant($chemin, $nom) {
+}
+
+function set_prop($chemin, $prop, $valeur) {
+}
+
+function get_prop($chemin, $prop) {
+}
+
+function supprimer($chemin, $récursif) {
+}
+
+function liste_enfants($chemin) {
+}
+
+/*function parent($chemin) {
+}*/
+
+/*function stocker_fichier($chemin_fs_orig, $chemin, $prop) {
+}*/
+
+function renomer($chemin, $nouveau_nom) {
+ // Vérifie si l'ancien nom et le nouveau nom sont différents.
+ // Renome le dossier.
+}
+
+?>
diff --git a/__cms__/stockage/systeme-fichiers.php b/__cms__/stockage/systeme-fichiers.php
@@ -0,0 +1,32 @@
+<?php
+
+function créer_dossier($chemin) {
+ // mkdir($chemin)
+}
+
+/*function créer_fichier($chemin) {
+ // touch($chemin)
+}*/
+
+function supprimer($chemin, $récursif) {
+ // Si non récursif, supprime ssi c'est un fichier.
+ // Sinon, si c'est un fichier ou un lien, supprime,
+ // si c'est un dossier, appelle récursivement puis rmdir.
+}
+
+function lire($chemin) {
+ // file_get_contents()
+}
+
+function ecrire($chemin, $données) {
+ // file_put_contents();
+}
+
+function liste_enfants($chemin) {
+ // Renvoie la liste des sous-fichiers et sous-dossiers.
+}
+
+function déplacer($chemin_de, $cemin_vers) {
+}
+
+?>