diff --git a/__cms__/code/cms/cms.php b/__cms__/code/cms/cms.php index 415d841..5c66724 100644 --- a/__cms__/code/cms/cms.php +++ b/__cms__/code/cms/cms.php @@ -26,7 +26,7 @@ class CMS { if (isset($_POST[$param])) $paramètres[$param] = self::param_post($param); } foreach ($module["file"] as $param) { - if (isset($_FILE[$param])) $paramètres[$param] = $_FILE[$param]; + if (isset($_FILES[$param])) $paramètres[$param] = $_FILES[$param]; } $action = $paramètres["action"]; diff --git a/__cms__/code/modules/galerie/galerie-evenement.php b/__cms__/code/modules/galerie/galerie-evenement.php index 56d2121..4cc0b71 100644 --- a/__cms__/code/modules/galerie/galerie-evenement.php +++ b/__cms__/code/modules/galerie/galerie-evenement.php @@ -7,7 +7,7 @@ class GalerieÉvènement { } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvelle photo", "galerie-photo"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); - Stockage::set_prop($np, "titre", "Nouvel évènement"); + Stockage::set_prop($np, "titre", "Nouvelle photo"); Stockage::set_prop($np, "description", ""); return new Page($np, '', "redirect"); } else if ($action == "supprimer") { @@ -24,7 +24,6 @@ class GalerieÉvènement { 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"); } @@ -70,7 +69,7 @@ class GalerieÉvènement { if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { $ret .= '
  • '; $ret .= '
    '; - $ret .= 'nouvel évènement'; + $ret .= 'nouvelle photo'; $ret .= '
    '; $ret .= '
    '; diff --git a/__cms__/code/modules/galerie/galerie-periode.php b/__cms__/code/modules/galerie/galerie-periode.php index add8d09..8c86cd8 100644 --- a/__cms__/code/modules/galerie/galerie-periode.php +++ b/__cms__/code/modules/galerie/galerie-periode.php @@ -5,7 +5,7 @@ class GaleriePériode { if ($action == "anuler") { return new Page($chemin, '', "redirect"); } else if ($action == "nouvelle_page") { - $np = Stockage::nouvelle_page($chemin, "Nouvel évènement", "galerie-periode"); + $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", ""); diff --git a/__cms__/code/modules/galerie/galerie-photo.php b/__cms__/code/modules/galerie/galerie-photo.php index 736c589..951274d 100644 --- a/__cms__/code/modules/galerie/galerie-photo.php +++ b/__cms__/code/modules/galerie/galerie-photo.php @@ -5,25 +5,29 @@ class GaleriePhoto { if ($action == "anuler") { return new Page($chemin, '', "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["fichier_image"])) { - // redimensionner l'image avec gd, stocker la miniature dans - // prop_image_mini (set_prop_fichier()). - // Pb : Où est-ce qu'on met temporairement la miniature - // avant de la déplacer ??? - // stocker le fichier reçu dans prop_image (set_prop_fichier_reçu()). + $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["titre"])) { - Stockage::renomer($chemin, $paramètres["titre"]); - $chemin = $chemin->renomer($paramètres["titre"]); - // TODO : peut-être new Page($chemin, '', "redirect") ? - }*/ + 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 { @@ -35,11 +39,17 @@ class GaleriePhoto { public static function vue($chemin, $vue = "normal") { if ($vue == "normal") { $ret = ''; + if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { - $ret .= ''; + $ret .= '
    '; + $ret .= '

    '; $ret .= '' . Stockage::get_prop($chemin, '; - $ret .= ''; - $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message"); + $ret .= '

    '; + $ret .= ''; + $ret .= '

    '; + $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); + $ret .= '

    '; + $ret .= '
    '; } else { $ret .= '

    ' . Stockage::get_prop($chemin, "titre") . '

    '; $ret .= '' . Stockage::get_prop($chemin, '; @@ -57,6 +67,44 @@ class GaleriePhoto { } return new Page('',''); // TODO : devrait renvoyer une page d'erreur ! } + + public static function creer_miniature($chemin_fs, $largeur_max, $hauteur_max) { + $chemin_fs_dest = tempnam(dirname($chemin_fs), "img"); + if ($chemin_fs_dest === false) return false; // TODO : return Erreur::...(...); + + /* TODO : utiliser imagealphablending si nécessaire... http://www.php.net/manual/fr/function.imagecreatefrompng.php#85754 */ + $image = imagecreatefromjpeg($chemin_fs); // ... formpng() + $largeur = imageSX($image); + $hauteur = imageSY($image); + if ($largeur < $largeur_max && $hauteur < $hauteur_max) { + $largeur_miniature = $largeur; + $hauteur_miniature = $hauteur; + } else if ($largeur / $hauteur < $largeur_max / $hauteur_max) { // limité par la hauteur. + $largeur_miniature = $largeur_max; + $hauteur_miniature = $hauteur * $largeur_miniature/$largeur; + } else { // limité par la largeur + $hauteur_miniature = $hauteur_max; + $largeur_miniature = $largeur * $hauteur_miniature/$hauteur; + } + $miniature = ImageCreateTrueColor($largeur_miniature, $hauteur_miniature); // miniatures de tailles différentes + var_dump($largeur_miniature, $hauteur_miniature, $largeur, $hauteur); + imagecopyresampled( + $miniature, // image destination + $image, // image source + 0, // x destination + 0, // y destination + 0, // x source + 0, // y source + $largeur_miniature, // largeur destination + $hauteur_miniature, // hauteur destination + $largeur, // largeur source + $hauteur // hauteur source + ); + imagedestroy($image); // On libère la mémoire le plus tôt possible. + imagejpeg($miniature, $chemin_fs_dest); + imagedestroy($miniature); + return $chemin_fs_dest; + } } Modules::enregister_module("GaleriePhoto", "galerie-photo", "vue", "description", "fichier_image");