[80] | 1 | <?php |
---|
| 2 | // importe la fonction creer_repertoire_documents, qui retourne le chemin vers un dossier donné dans le répertoire img, et le crée si nécessaire |
---|
| 3 | include_spip('inc/getdocument'); |
---|
| 4 | |
---|
| 5 | //gestion de l'upload d'un bandeau |
---|
| 6 | // les bandeaux sont sauvés sous la forme bandeau.ext, et bandeau-id_rubrique.ext pour les bandeaux associés à une rubrique particuliÚre |
---|
| 7 | function traiter_upload_bandeau($id_rubrique=0){ |
---|
| 8 | if (isset($_FILES["bandeau"])) { |
---|
| 9 | if ($_FILES["bandeau"]["error"] == 0) { |
---|
| 10 | $ext = strtolower(end(explode(".", $_FILES["bandeau"]["name"]))); |
---|
| 11 | $ext_ok = Array("jpg", "gif", "png"); |
---|
| 12 | if (!in_array($ext, $ext_ok)) { |
---|
| 13 | return "arty:erreur_extension"; |
---|
| 14 | } |
---|
| 15 | |
---|
| 16 | $chem = creer_repertoire_documents("bandeau"); |
---|
| 17 | $chem = _DIR_DOC."bandeau/"; |
---|
| 18 | |
---|
| 19 | if (!$id_rubrique) { |
---|
| 20 | $nom_bandeau = "bandeau"; |
---|
| 21 | } else { |
---|
| 22 | $nom_bandeau = "bandeau-$id_rubrique"; |
---|
| 23 | } |
---|
| 24 | |
---|
| 25 | $dest = $chem.$nom_bandeau.".".$ext; |
---|
| 26 | |
---|
| 27 | $ok = false; |
---|
| 28 | if ($chem) { |
---|
| 29 | $ok = @move_uploaded_file($_FILES['bandeau']['tmp_name'], $dest); |
---|
| 30 | } |
---|
| 31 | |
---|
| 32 | if ($ok){ |
---|
| 33 | //nettoyage du dossier bandeau (les bandeaux portant le même nom mais une extension différente du bandeau uploadé sont supprimés) |
---|
| 34 | $handle = @opendir($chem); |
---|
| 35 | while($fichier = @readdir($handle)) { |
---|
| 36 | if (ereg("^$nom_bandeau\.(jpg|png|gif)$", $fichier) && $fichier != $nom_bandeau.".".$ext){ |
---|
| 37 | @unlink($chem.$fichier); |
---|
| 38 | } |
---|
| 39 | } |
---|
| 40 | return "arty:upload_reussi"; |
---|
| 41 | } else { |
---|
| 42 | return "arty:upload_rate"; |
---|
| 43 | } |
---|
| 44 | } else if ($_FILES["bandeau"]["error"] == 1 || $_FILES["bandeau"]["error"] == 2) { |
---|
| 45 | return "arty:erreur_trop_gros"; |
---|
| 46 | } else if ($_FILES["bandeau"]["error"] == 3) { |
---|
| 47 | return "arty:erreur_transmission"; |
---|
| 48 | } |
---|
| 49 | } |
---|
| 50 | } |
---|
| 51 | |
---|
| 52 | // supprime le bandeau d'une rubrique donnée |
---|
| 53 | function traiter_suppression_bandeau($id_rubrique=0){ |
---|
| 54 | if (isset($_GET['action']) && isset($_GET['id_check'])){ |
---|
| 55 | if ($_GET['action'] == "supprimer_bandeau" && $_GET['id_check'] == $_SESSION["id_check"]) { |
---|
| 56 | $chem = _DIR_DOC."bandeau/"; |
---|
| 57 | $handle = @opendir($chem); |
---|
| 58 | while($fichier = @readdir($handle)) { |
---|
| 59 | if (!$id_rubrique) { |
---|
| 60 | if (ereg("^bandeau\.(jpg|png|gif)$", $fichier)){ |
---|
| 61 | @unlink($chem.$fichier); |
---|
| 62 | } |
---|
| 63 | } else { |
---|
| 64 | if (ereg("^bandeau-$id_rubrique\.(jpg|png|gif)$", $fichier)){ |
---|
| 65 | @unlink($chem.$fichier); |
---|
| 66 | } |
---|
| 67 | } |
---|
| 68 | } |
---|
| 69 | } |
---|
| 70 | } |
---|
| 71 | } |
---|
| 72 | |
---|
| 73 | // affiche le bandeau principal actuel ainsi qu'un lien pour le supprimer. |
---|
| 74 | function bandeau_actuel(){ |
---|
| 75 | $chem = creer_repertoire_documents("bandeau"); |
---|
| 76 | $chem = _DIR_DOC."bandeau/"; |
---|
| 77 | $handle = @opendir($chem); |
---|
| 78 | |
---|
| 79 | while($fichier = @readdir($handle)) { |
---|
| 80 | if (ereg("^bandeau\.(jpg|png|gif)$", $fichier)) { |
---|
| 81 | $bandeau = $fichier; |
---|
| 82 | } |
---|
| 83 | } |
---|
| 84 | if (!isset($bandeau)){ |
---|
| 85 | return "<p>"._T("arty:aucun_bandeau")."</p>"; |
---|
| 86 | } else { |
---|
| 87 | $result = _T("arty:bandeau_actuel").":<br /><img width=\"400\" src=\""._DIR_DOC."bandeau/$bandeau?".uniqid(rand())."\">"; // le nombre aléatoire permet d'éviter que le navigateur affiche la version en cache de l'image. |
---|
| 88 | $result .= "<p>[<a href=\"?exec=theme&action=supprimer_bandeau&id_check=".$_SESSION['id_check']."\">"._T('arty:supprimer_bandeau')."</a>]</p>"; |
---|
| 89 | return $result; |
---|
| 90 | } |
---|
| 91 | } |
---|
| 92 | ?> |
---|