www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 799b4a3cafe8892d034aec8a031bb50e583db1bf
parent c1f0dad937b0da40ed20bcff1b9a4c5d6da14fb0
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Thu, 19 Aug 2010 05:46:01 +0200

Correctifs sur galerie-index (mais j'ai oublié quoi :( ).

Diffstat:
M__cms__/TODO | 5+++--
M__cms__/code/modules/galerie/galerie-index.php | 2++
M__cms__/code/modules/galerie/galerie-periode.php | 2+-
M__cms__/code/stockage/stockage.php | 3+--
M__cms__/code/stockage/systeme-fichiers.php | 13+++++++++----
5 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/__cms__/TODO b/__cms__/TODO @@ -4,4 +4,5 @@ Les actions ne devraient être que des POST... ça pose problème sur certains l Les titres devraient renomer _+_ set_prop (sachant que le renomage peut déteriorer le texte du titre (sécurité sur le chemin)). Gérer ces saletées de magic quotes dans les biscuits aux brisures de chocolat (cookies). Mettre le css dans une page (dossier) qui s'appelle "style.css", comme ça ça donne l'impression que c'est un fichier (même si en réalité - c'est le index.php de cette page qui le génère). -\ No newline at end of file + c'est le index.php de cette page qui le génère). +Si on ne peut lire la propriété __prop_type, afficher un "Access Denied" au lieu de dire qu'on n'a pas pu lire la propriété. +\ No newline at end of file diff --git a/__cms__/code/modules/galerie/galerie-index.php b/__cms__/code/modules/galerie/galerie-index.php @@ -7,6 +7,8 @@ class GalerieIndex { } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvelle période", "galerie-periode"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); + Stockage::set_prop($np, "titre", "Nouvelle période"); + Stockage::set_prop($np, "description", ""); return new Page($np, '', "redirect"); } else { if (isset($paramètres["titre"])) { diff --git a/__cms__/code/modules/galerie/galerie-periode.php b/__cms__/code/modules/galerie/galerie-periode.php @@ -9,7 +9,7 @@ class GaleriePériode { Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); return new Page($np, '', "redirect"); } else if ($action == "supprimer") { - Stockage::supprimer($chemin); + Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif return new Page($chemin->parent(), '', "redirect"); } else { if (isset($paramètres["titre"])) { diff --git a/__cms__/code/stockage/stockage.php b/__cms__/code/stockage/stockage.php @@ -13,7 +13,6 @@ class Stockage { self::set_prop($enfant, "type", $type); $e = self::activer_réécriture($enfant); if (Erreur::is_erreur($e)) return Erreur::fatale("Erreur lors de la mise en place de la redirection pour " . $enfant->get() . ".", $e); - exit; return $enfant; } else { return false; @@ -96,7 +95,7 @@ class Stockage { public static function supprimer($chemin, $récursif) { if (Permissions::vérifier_permission($chemin, "supprimer")) { // TODO : désactiver_réécriture($chemin) récursivement - return SystèmeFichier::supprimer($chemin->get_fs_stockage(), $récursif); + return Système_fichiers::supprimer($chemin->get_fs_stockage(), $récursif); } else { return false; } diff --git a/__cms__/code/stockage/systeme-fichiers.php b/__cms__/code/stockage/systeme-fichiers.php @@ -15,16 +15,21 @@ class Système_fichiers { }*/ public static function supprimer($chemin_fs, $récursif) { + var_dump($chemin_fs); if (is_link($chemin_fs) || is_file($chemin_fs)) { unlink($chemin_fs); - } else if ($récursif) { + } else if ($récursif && is_dir($chemin_fs)) { $d = dir($chemin_fs); - while (false !== ($entrée = $d->read())) { + while (false !== ($entrée = $d->read())) { + if ($entrée == '.') continue; // TODO : gérer correctement les boucles dans le système de fichiers (liens durs, ...) + if ($entrée == '..') continue; self::supprimer($chemin_fs . '/' . $entrée, $récursif); } $d->close(); rmdir($chemin_fs); - } + } else if (is_dir($chemin_fs)) { + rmdir($chemin_fs); + } } public static function lire($chemin_fs) { @@ -34,7 +39,7 @@ class Système_fichiers { public static function écrire($chemin_fs, $données) { $d = dirname($chemin_fs); - if (!is_dir($d) || self::créer_dossier($d)) { + if (!is_dir($d) && !self::créer_dossier($d)) { return Erreur::écriture("Impossible d'écrire dans $chemin_fs : le dossier $d n'existe pas"); } return file_put_contents($chemin_fs, $données);