diff options
| author | polo <ordipolo@gmx.fr> | 2023-06-02 01:21:06 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2023-06-02 01:21:06 +0200 |
| commit | ce10c0ff1dd0b47bd494ae88ab2eaf6ab354b2b3 (patch) | |
| tree | 53fd317773354c86e9eff1a19ea9abad81137901 | |
| parent | 082ae3df0b9dd759d56684b0221df62ea171f8ec (diff) | |
| download | melaine-ce10c0ff1dd0b47bd494ae88ab2eaf6ab354b2b3.tar.gz melaine-ce10c0ff1dd0b47bd494ae88ab2eaf6ab354b2b3.tar.bz2 melaine-ce10c0ff1dd0b47bd494ae88ab2eaf6ab354b2b3.zip | |
filtre nom des images + reorg code Image
| -rw-r--r-- | controller/Security.php | 44 | ||||
| -rw-r--r-- | controller/ajax.php | 10 | ||||
| -rw-r--r-- | controller/ckeditor.php | 28 | ||||
| -rw-r--r-- | index.php | 2 | ||||
| -rw-r--r-- | model/Album.php | 31 | ||||
| -rw-r--r-- | model/Article.php | 2 | ||||
| -rw-r--r-- | model/Image.php | 37 | ||||
| -rw-r--r-- | public/css/discographie.css | 2 | ||||
| -rw-r--r-- | public/file_upload.js | 13 | ||||
| -rw-r--r-- | view/album.php | 1 | ||||
| -rw-r--r-- | view/articlesContent.php | 9 | ||||
| -rw-r--r-- | view/discographie.php | 10 | ||||
| -rw-r--r-- | view/template-formulaires.php | 2 |
13 files changed, 122 insertions, 69 deletions
diff --git a/controller/Security.php b/controller/Security.php index 39205c1..3475a8d 100644 --- a/controller/Security.php +++ b/controller/Security.php | |||
| @@ -20,6 +20,50 @@ class Security | |||
| 20 | $chaine = trim($chaine); // supprimer espaces, tabulations et sauts de ligne en début et fin de chaine (pour l'entrée de l'éditeur) | 20 | $chaine = trim($chaine); // supprimer espaces, tabulations et sauts de ligne en début et fin de chaine (pour l'entrée de l'éditeur) |
| 21 | return $chaine; | 21 | return $chaine; |
| 22 | } | 22 | } |
| 23 | |||
| 24 | public static function secureFileName(string $chaine): string | ||
| 25 | { | ||
| 26 | // sécuriser un nom avec chemin avec basename? | ||
| 27 | //$chaine = basename($chaine); | ||
| 28 | |||
| 29 | /* | ||
| 30 | - caractères interdits sous windows / \ : * ? " < > | | ||
| 31 | - mac autorise les / | ||
| 32 | - mac interdit : | ||
| 33 | - linux autorise tout sauf les / | ||
| 34 | - imagemagick ne supporte pas les : | ||
| 35 | |||
| 36 | - 'espace' fonctionne | ||
| 37 | - / remplacé par firefox en : | ||
| 38 | - \ retire ce qui est devant le \ | ||
| 39 | - * fonctionne | ||
| 40 | - ? permet le téléchargement mais pas l'affichage | ||
| 41 | - " ne fonctionne pas, remplacé par %22, filtrer %22 | ||
| 42 | - < > fonctionnent | ||
| 43 | - | fonctionne | ||
| 44 | - = fonctionne, mais je filtre parce qu'on en trouve dans une URL | ||
| 45 | - ' ` fonctionnent | ||
| 46 | - % fonctionne | ||
| 47 | - (){}[] fonctionnent | ||
| 48 | - ^ fonctionne | ||
| 49 | - # ne fonctionne pas | ||
| 50 | - ~ fonctionne | ||
| 51 | - & fonctionne | ||
| 52 | */ | ||
| 53 | |||
| 54 | // => on remplace tout par des _ | ||
| 55 | // filtrer / et \ semble inutile | ||
| 56 | |||
| 57 | $cibles = [' ', '/', '\\', ':', '*', '?', '<', '>', '|', '=', "'", '`', '"', '%22', '#']; | ||
| 58 | return(str_replace($cibles, '_', $chaine)); | ||
| 59 | |||
| 60 | // les problèmes avec \ persistent !! | ||
| 61 | // => javascript | ||
| 62 | // malheureusement document.getElementById('upload').files[0].name = chaine; ne marche pas! interdit! | ||
| 63 | // solution? | ||
| 64 | // créer une copie du fichier et l'envoyer à la place | ||
| 65 | // envoyer le nom souhaité au serveur en AJAX puis renommer avec PHP | ||
| 66 | } | ||
| 23 | } | 67 | } |
| 24 | 68 | ||
| 25 | // erreurs à la création des mots de passe | 69 | // erreurs à la création des mots de passe |
diff --git a/controller/ajax.php b/controller/ajax.php index ed840cd..9272dea 100644 --- a/controller/ajax.php +++ b/controller/ajax.php | |||
| @@ -17,7 +17,8 @@ if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_ | |||
| 17 | else | 17 | else |
| 18 | { | 18 | { |
| 19 | require('model/Image.php'); | 19 | require('model/Image.php'); |
| 20 | // vaut "true" parce qu'on reçoit une requête AJAX | 20 | require('controller/Security.php'); |
| 21 | // paramètre "true" parce qu'on reçoit une requête AJAX | ||
| 21 | $Image = new Image($_GET['page'], $_GET['page'], true); | 22 | $Image = new Image($_GET['page'], $_GET['page'], true); |
| 22 | // les données des albums sont dans le dossier discographie | 23 | // les données des albums sont dans le dossier discographie |
| 23 | if($_GET['page'] === 'album') | 24 | if($_GET['page'] === 'album') |
| @@ -25,12 +26,15 @@ if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_ | |||
| 25 | $Image->setFolder('discographie'); | 26 | $Image->setFolder('discographie'); |
| 26 | } | 27 | } |
| 27 | 28 | ||
| 28 | $Image->upload(); | 29 | $nomFichier = Security::secureFileName($_FILES['upload']['name']); |
| 30 | $Image->setFileName($nomFichier); | ||
| 31 | $Image->setThumbnailWidth(630); | ||
| 29 | 32 | ||
| 33 | $Image->upload(); | ||
| 30 | echo($Image->reponseAjax); // attendu par l'éditeur | 34 | echo($Image->reponseAjax); // attendu par l'éditeur |
| 31 | // attention ici aux var_dump() ou echo() qui trainent | 35 | // attention ici aux var_dump() ou echo() qui trainent |
| 32 | 36 | ||
| 33 | $Image->makeThumbnail(630); // => taille de la <div> | 37 | $Image->makeThumbnail(); // => taille de la <div> |
| 34 | // on pourra l'agrandir en cliquant dessus | 38 | // on pourra l'agrandir en cliquant dessus |
| 35 | // code exécuté alors que l'utilisateur récupère la main | 39 | // code exécuté alors que l'utilisateur récupère la main |
| 36 | } | 40 | } |
diff --git a/controller/ckeditor.php b/controller/ckeditor.php index 4d4639d..3765261 100644 --- a/controller/ckeditor.php +++ b/controller/ckeditor.php | |||
| @@ -66,7 +66,7 @@ function submitCKeditor() | |||
| 66 | if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') | 66 | if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') |
| 67 | { | 67 | { |
| 68 | $Album = new Album($_GET['page'], 'discographie'); | 68 | $Album = new Album($_GET['page'], 'discographie'); |
| 69 | 69 | ||
| 70 | // on retrouve les données si nécessaire | 70 | // on retrouve les données si nécessaire |
| 71 | if(isset($_SESSION['file_code']) && $_SESSION['file_code'] != '') | 71 | if(isset($_SESSION['file_code']) && $_SESSION['file_code'] != '') |
| 72 | { | 72 | { |
| @@ -76,10 +76,28 @@ function submitCKeditor() | |||
| 76 | 76 | ||
| 77 | $nouveauTitre = Security::secureString($_POST['titre']); | 77 | $nouveauTitre = Security::secureString($_POST['titre']); |
| 78 | $nouvelleAnnee = Security::secureString($_POST['annee']); | 78 | $nouvelleAnnee = Security::secureString($_POST['annee']); |
| 79 | |||
| 80 | // enregistrement de l'image | ||
| 79 | if(!empty($_FILES['upload']['name'])) | 81 | if(!empty($_FILES['upload']['name'])) |
| 80 | { | 82 | { |
| 81 | $nouvellePochette = $_FILES['upload']['name']; | 83 | require('model/Image.php'); |
| 82 | $nouvellePochetteMini = pathinfo($_FILES['upload']['name'], PATHINFO_FILENAME) . '-mini.' . pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); | 84 | $Image = new Image($_GET['page'], 'discographie', false); |
| 85 | $nomFichier = Security::secureFileName($_FILES['upload']['name']); | ||
| 86 | $Image->setFileName($nomFichier); | ||
| 87 | $Image->setThumbnailWidth(201); | ||
| 88 | |||
| 89 | $nouvellePochette = $nomFichier; | ||
| 90 | /*$nouvellePochetteMini = pathinfo($_FILES['upload']['name'], PATHINFO_FILENAME) . '-mini.' . pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION);*/ | ||
| 91 | $nouvellePochetteMini = pathinfo($nomFichier, PATHINFO_FILENAME) . '-mini.' . pathinfo($nomFichier, PATHINFO_EXTENSION); | ||
| 92 | |||
| 93 | $Image->upload(); | ||
| 94 | $Image->makeThumbnail(); | ||
| 95 | |||
| 96 | $erreur = $Image->erreur; | ||
| 97 | if(!empty($erreur)) | ||
| 98 | { | ||
| 99 | // remettre pochette précédente si il y a | ||
| 100 | } | ||
| 83 | } | 101 | } |
| 84 | else | 102 | else |
| 85 | { | 103 | { |
| @@ -89,11 +107,11 @@ function submitCKeditor() | |||
| 89 | 107 | ||
| 90 | //var_dump($nouvellePochetteMini); die(); | 108 | //var_dump($nouvellePochetteMini); die(); |
| 91 | 109 | ||
| 92 | // enregistrement nouvel album | 110 | // enregistrement du texte JSON |
| 93 | if(!isset($_SESSION['file_code']) || $_SESSION['file_code'] == '') | 111 | if(!isset($_SESSION['file_code']) || $_SESSION['file_code'] == '') |
| 94 | { | 112 | { |
| 95 | // page disco | 113 | // page disco |
| 96 | $Album->createVignette($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini); | 114 | $Album->createVignetteJSON($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini); |
| 97 | 115 | ||
| 98 | // page de l'album | 116 | // page de l'album |
| 99 | if(!empty($_POST['contenu'])) | 117 | if(!empty($_POST['contenu'])) |
| @@ -37,7 +37,7 @@ if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 | |||
| 37 | || (isset($_POST['titre']) && isset($_POST['annee'])))) | 37 | || (isset($_POST['titre']) && isset($_POST['annee'])))) |
| 38 | { | 38 | { |
| 39 | require('controller/ckeditor.php'); // traitement du POST | 39 | require('controller/ckeditor.php'); // traitement du POST |
| 40 | require('controller/Security.php'); // sécurité des chaines | 40 | require('controller/Security.php'); // HTML + nom de fichier |
| 41 | require('model/Article.php'); | 41 | require('model/Article.php'); |
| 42 | 42 | ||
| 43 | if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') | 43 | if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') |
diff --git a/model/Album.php b/model/Album.php index d2537f7..801afef 100644 --- a/model/Album.php +++ b/model/Album.php | |||
| @@ -39,25 +39,10 @@ class Album extends Article | |||
| 39 | // fonctions CRUD | 39 | // fonctions CRUD |
| 40 | 40 | ||
| 41 | // create | 41 | // create |
| 42 | public function createVignette($titre, $annee, $pochette, $pochetteMini) | 42 | public function createVignetteJSON($titre, $annee, $pochette, $pochetteMini) |
| 43 | { | 43 | { |
| 44 | //$this->format = 'json'; | 44 | //$this->format = 'json'; |
| 45 | 45 | ||
| 46 | if($pochette != '') | ||
| 47 | { | ||
| 48 | //echo($pochette); die(); // = nom sans chemin | ||
| 49 | |||
| 50 | // télécharger la pochette | ||
| 51 | require('model/Image.php'); | ||
| 52 | $Image = new Image($this->page, $this->folder, false); | ||
| 53 | $Image->upload(); | ||
| 54 | $Image->makeThumbnail(201); | ||
| 55 | |||
| 56 | $erreur = $Image->erreur; | ||
| 57 | if(!empty($erreur)) | ||
| 58 | {} | ||
| 59 | } | ||
| 60 | |||
| 61 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); | 46 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); |
| 62 | //var_dump($albumJSON); die(); | 47 | //var_dump($albumJSON); die(); |
| 63 | 48 | ||
| @@ -171,20 +156,6 @@ class Album extends Article | |||
| 171 | $pochette = $albumJSON[2]; | 156 | $pochette = $albumJSON[2]; |
| 172 | $pochetteMini = $albumJSON[3]; | 157 | $pochetteMini = $albumJSON[3]; |
| 173 | } | 158 | } |
| 174 | else | ||
| 175 | { | ||
| 176 | // télécharger la pochette | ||
| 177 | require('model/Image.php'); | ||
| 178 | $Image = new Image($this->page, $this->folder, false); | ||
| 179 | $Image->upload(); | ||
| 180 | $Image->makeThumbnail(201); | ||
| 181 | $erreur = $Image->erreur; | ||
| 182 | if(!empty($erreur)) | ||
| 183 | { | ||
| 184 | // remettre pochette d'avant | ||
| 185 | //$pochette | ||
| 186 | } | ||
| 187 | } | ||
| 188 | 159 | ||
| 189 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); | 160 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); |
| 190 | 161 | ||
diff --git a/model/Article.php b/model/Article.php index 0e8db61..d94ba01 100644 --- a/model/Article.php +++ b/model/Article.php | |||
| @@ -198,8 +198,6 @@ class Article | |||
| 198 | fputs($file, $content); | 198 | fputs($file, $content); |
| 199 | fclose($file); | 199 | fclose($file); |
| 200 | chmod($fileName, 0666); | 200 | chmod($fileName, 0666); |
| 201 | |||
| 202 | |||
| 203 | } | 201 | } |
| 204 | 202 | ||
| 205 | // read | 203 | // read |
diff --git a/model/Image.php b/model/Image.php index d71b96a..dbdad62 100644 --- a/model/Image.php +++ b/model/Image.php | |||
| @@ -11,6 +11,8 @@ class Image | |||
| 11 | 11 | ||
| 12 | public $path; | 12 | public $path; |
| 13 | public $pathMini; | 13 | public $pathMini; |
| 14 | public $FileName; // après sécurisation | ||
| 15 | public $width; | ||
| 14 | public $pathInfos; | 16 | public $pathInfos; |
| 15 | public $erreur; | 17 | public $erreur; |
| 16 | 18 | ||
| @@ -33,20 +35,31 @@ class Image | |||
| 33 | $this->pathMini = 'data/' . $this->folder . '/images-mini/'; | 35 | $this->pathMini = 'data/' . $this->folder . '/images-mini/'; |
| 34 | } | 36 | } |
| 35 | 37 | ||
| 38 | public function setFileName($fileName) | ||
| 39 | { | ||
| 40 | $this->FileName = $fileName; | ||
| 41 | } | ||
| 42 | |||
| 43 | public function setThumbnailWidth($width) | ||
| 44 | { | ||
| 45 | $this->width = $width; | ||
| 46 | } | ||
| 36 | 47 | ||
| 37 | public function upload() | 48 | public function upload() |
| 38 | { | 49 | { |
| 39 | // traitement et enregistrement de l'image | 50 | // traitement et enregistrement de l'image |
| 40 | if (isset($_FILES['upload']) AND $_FILES['upload']['error'] == 0) // 0 signifie ok | 51 | if (isset($_FILES['upload']) AND $_FILES['upload']['error'] == 0) // 0 signifie ok |
| 41 | { | 52 | { |
| 42 | $this->pathInfos = pathinfo($_FILES['upload']['name']); | 53 | //$this->pathInfos = pathinfo($_FILES['upload']['name']); |
| 54 | $this->pathInfos = pathinfo($this->FileName); | ||
| 55 | |||
| 43 | $extension = $this->pathInfos['extension']; | 56 | $extension = $this->pathInfos['extension']; |
| 44 | $extautorisées = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff'); | 57 | $extautorisées = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff'); |
| 45 | // on prend la même liste que celle côté javascript, le SVG est bloqué pour raison de sécurité (javascript à l'intérieur) | 58 | // on prend la même liste que celle côté javascript, le SVG est bloqué pour raison de sécurité (javascript à l'intérieur) |
| 46 | if (in_array($extension, $extautorisées)) | 59 | if (in_array($extension, $extautorisées)) |
| 47 | { | 60 | { |
| 48 | move_uploaded_file($_FILES['upload']['tmp_name'], $this->path . $_FILES['upload']['name']); | 61 | move_uploaded_file($_FILES['upload']['tmp_name'], $this->path . $this->FileName); |
| 49 | chmod($this->path . $_FILES['upload']['name'], 0666); | 62 | chmod($this->path . $this->FileName, 0666); |
| 50 | } | 63 | } |
| 51 | else | 64 | else |
| 52 | { | 65 | { |
| @@ -63,24 +76,24 @@ class Image | |||
| 63 | if($this->ajax && empty($Image->erreur)) | 76 | if($this->ajax && empty($Image->erreur)) |
| 64 | { | 77 | { |
| 65 | // chemin en JSON attendu par l'éditeur | 78 | // chemin en JSON attendu par l'éditeur |
| 66 | $this->reponseAjax = '{"url": "data/' . $this->folder . '/images/' . $_FILES['upload']['name'] . '"}'; | 79 | $this->reponseAjax = '{"url": "data/' . $this->folder . '/images/' . $this->FileName . '"}'; |
| 67 | } | 80 | } |
| 68 | } | 81 | } |
| 69 | 82 | ||
| 70 | // miniatures des photos | 83 | // miniatures des photos |
| 71 | public function makeThumbnail($largeur) | 84 | public function makeThumbnail() |
| 72 | { | 85 | { |
| 73 | global $imageLibrary; | 86 | global $imageLibrary; |
| 74 | 87 | ||
| 75 | if($imageLibrary == 'imagick') | 88 | if($imageLibrary == 'imagick') |
| 76 | { | 89 | { |
| 77 | $Image = new Imagick($this->path . $_FILES['upload']['name']); | 90 | $Image = new Imagick($this->path . $this->FileName); |
| 78 | 91 | ||
| 79 | $source = $Image->getImageGeometry(); | 92 | $source = $Image->getImageGeometry(); |
| 80 | if($source['width'] > $largeur) | 93 | if($source['width'] > $this->width) |
| 81 | { | 94 | { |
| 82 | // 0 signifie qu'on conserve les proportions | 95 | // 0 signifie qu'on conserve les proportions |
| 83 | $Image->thumbnailImage($largeur, 0); | 96 | $Image->thumbnailImage($this->width, 0); |
| 84 | } | 97 | } |
| 85 | 98 | ||
| 86 | // écriture dans un fichier | 99 | // écriture dans un fichier |
| @@ -89,18 +102,18 @@ class Image | |||
| 89 | elseif($imageLibrary == 'gd') | 102 | elseif($imageLibrary == 'gd') |
| 90 | { | 103 | { |
| 91 | // cette fonction fonctionne pour tous les formats | 104 | // cette fonction fonctionne pour tous les formats |
| 92 | $source = imagecreatefromstring(file_get_contents($this->path . $_FILES['upload']['name'])); | 105 | $source = imagecreatefromstring(file_get_contents($this->path . $this->FileName)); |
| 93 | $nomMiniImage = $this->pathMini . $this->pathInfos['filename'] . '-mini.jpg'; | 106 | $nomMiniImage = $this->pathMini . $this->pathInfos['filename'] . '-mini.jpg'; |
| 94 | $forme = imagesy($source) / imagesx($source); | 107 | $forme = imagesy($source) / imagesx($source); |
| 95 | 108 | ||
| 96 | if(imagesx($source) > $largeur) | 109 | if(imagesx($source) > $this->width) |
| 97 | { | 110 | { |
| 98 | // créer un rectangle noir | 111 | // créer un rectangle noir |
| 99 | $destination = imagecreatetruecolor($largeur, $largeur * $forme); | 112 | $destination = imagecreatetruecolor($this->width, $this->width * $forme); |
| 100 | 113 | ||
| 101 | // sélectionne un rectangle dans l'image source | 114 | // sélectionne un rectangle dans l'image source |
| 102 | // et le place dans un rectangle dans la nouvelle | 115 | // et le place dans un rectangle dans la nouvelle |
| 103 | imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur, $largeur * $forme, imagesx($source), imagesy($source)); | 116 | imagecopyresampled($destination, $source, 0, 0, 0, 0, $this->width, $this->width * $forme, imagesx($source), imagesy($source)); |
| 104 | 117 | ||
| 105 | // envoie l'image dans un fichier | 118 | // envoie l'image dans un fichier |
| 106 | imagejpeg($destination, $nomMiniImage); | 119 | imagejpeg($destination, $nomMiniImage); |
diff --git a/public/css/discographie.css b/public/css/discographie.css index 31df03e..38ca683 100644 --- a/public/css/discographie.css +++ b/public/css/discographie.css | |||
| @@ -25,7 +25,7 @@ aside div | |||
| 25 | 25 | ||
| 26 | #bouton_chronologie | 26 | #bouton_chronologie |
| 27 | { | 27 | { |
| 28 | width: 300px; | 28 | width: 250px; |
| 29 | text-align: center; | 29 | text-align: center; |
| 30 | font-size: large; | 30 | font-size: large; |
| 31 | font-weight: bold; | 31 | font-weight: bold; |
diff --git a/public/file_upload.js b/public/file_upload.js index 88a61a8..4102828 100644 --- a/public/file_upload.js +++ b/public/file_upload.js | |||
| @@ -4,6 +4,19 @@ | |||
| 4 | // ce fichier est "caché", le serveur ne l'envoit qu'à | 4 | // ce fichier est "caché", le serveur ne l'envoit qu'à |
| 5 | // un utilisateur connecté et sur la page "restauration" | 5 | // un utilisateur connecté et sur la page "restauration" |
| 6 | 6 | ||
| 7 | // retirer antislash dans le nom à l'upload d'une image | ||
| 8 | /*function filtrerAntislash() | ||
| 9 | { | ||
| 10 | var fileInfos = getFileInfo('upload'); // = ID | ||
| 11 | var chaine = fileInfos.name.replace('\\', '_'); | ||
| 12 | alert(document.getElementById('upload').files[0].name); | ||
| 13 | |||
| 14 | // ne marche pas, "name" est en lecture seule | ||
| 15 | document.getElementById('upload').files[0].name = chaine; | ||
| 16 | alert(document.getElementById('upload').files[0].name); | ||
| 17 | //return chaine; | ||
| 18 | }*/ | ||
| 19 | |||
| 7 | // -> input file onchange | 20 | // -> input file onchange |
| 8 | function sendFileSize() | 21 | function sendFileSize() |
| 9 | { | 22 | { |
diff --git a/view/album.php b/view/album.php index f8879aa..fe5d8c2 100644 --- a/view/album.php +++ b/view/album.php | |||
| @@ -14,6 +14,7 @@ $css = ob_get_clean(); | |||
| 14 | ob_start(); | 14 | ob_start(); |
| 15 | ?> | 15 | ?> |
| 16 | <script type="text/javascript" src="public/main.js" ></script> | 16 | <script type="text/javascript" src="public/main.js" ></script> |
| 17 | <!-- <script type="text/javascript" src="public/file_upload.js" ></script> --> | ||
| 17 | <?php | 18 | <?php |
| 18 | if(isset($_GET['action']) && $_GET['action'] === 'edition') | 19 | if(isset($_GET['action']) && $_GET['action'] === 'edition') |
| 19 | { | 20 | { |
diff --git a/view/articlesContent.php b/view/articlesContent.php index a03b39d..33e50a4 100644 --- a/view/articlesContent.php +++ b/view/articlesContent.php | |||
| @@ -15,7 +15,6 @@ if($_SESSION['admin'] == 1) | |||
| 15 | <?php | 15 | <?php |
| 16 | echo($editeurHTML); // injection de template-formulaires.php | 16 | echo($editeurHTML); // injection de template-formulaires.php |
| 17 | } | 17 | } |
| 18 | |||
| 19 | // bouton | 18 | // bouton |
| 20 | else | 19 | else |
| 21 | { | 20 | { |
| @@ -71,17 +70,11 @@ for($i = 0; $i < $Articles->fileListCount; $i++) | |||
| 71 | { | 70 | { |
| 72 | // on pourrait utiliser ici le timedate, ou encore le nom de l'article | 71 | // on pourrait utiliser ici le timedate, ou encore le nom de l'article |
| 73 | ?> | 72 | ?> |
| 74 | <h3>Modification d'un article</h3> | 73 | <h3>Modification d'un article</h3> |
| 75 | <?php | 74 | <?php |
| 76 | echo($editeurHTML); // injection de template-editor.php | 75 | echo($editeurHTML); // injection de template-editor.php |
| 77 | ?> | 76 | ?> |
| 78 | </div> | 77 | </div> |
| 79 | <p class="boutonArticle" > | ||
| 80 | <a class="infobulle" href="<?= $lien_partage ?>" > | ||
| 81 | <img src="public/icone_partager.png" onclick="copierDansPressePapier('<?= $host ?>/<?= $lien_partage ?>')" > | ||
| 82 | <button>Partager</button> | ||
| 83 | </a> | ||
| 84 | </p> | ||
| 85 | <?php | 78 | <?php |
| 86 | } | 79 | } |
| 87 | 80 | ||
diff --git a/view/discographie.php b/view/discographie.php index 8cefa18..8d82679 100644 --- a/view/discographie.php +++ b/view/discographie.php | |||
| @@ -14,6 +14,7 @@ $css = ob_get_clean(); | |||
| 14 | ob_start(); | 14 | ob_start(); |
| 15 | ?> | 15 | ?> |
| 16 | <script type="text/javascript" src="public/main.js" ></script> | 16 | <script type="text/javascript" src="public/main.js" ></script> |
| 17 | <!-- <script type="text/javascript" src="public/file_upload.js" ></script> --> | ||
| 17 | <?php | 18 | <?php |
| 18 | if(isset($_GET['action']) && $_GET['action'] === 'edition') | 19 | if(isset($_GET['action']) && $_GET['action'] === 'edition') |
| 19 | { | 20 | { |
| @@ -149,13 +150,8 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
| 149 | // boutons | 150 | // boutons |
| 150 | if($_SESSION['admin'] == 1) | 151 | if($_SESSION['admin'] == 1) |
| 151 | { | 152 | { |
| 152 | /*$lien_partage = 'index.php?page=' . $page . '#' . $Albums->fileList[$i]['fileCode']; | 153 | ?> |
| 153 | global $host;*/ | ||
| 154 | ?> | ||
| 155 | <p> | 154 | <p> |
| 156 | <!-- <a class="infobulle" href="<?= $lien_partage ?>" > | ||
| 157 | <img src="public/icone_partager.png" onclick="copierDansPressePapier('<?= $host ?>/<?= $lien_partage ?>')" > | ||
| 158 | </a> --> | ||
| 159 | <a class="infobulle" href="index.php?<?= $lienBoutonModif[$i] ?>" > | 155 | <a class="infobulle" href="index.php?<?= $lienBoutonModif[$i] ?>" > |
| 160 | <img src="public/icone_modifier.png" > | 156 | <img src="public/icone_modifier.png" > |
| 161 | <button>Modifier</button> | 157 | <button>Modifier</button> |
| @@ -173,7 +169,7 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
| 173 | <button>Supprimer</button> | 169 | <button>Supprimer</button> |
| 174 | </a> | 170 | </a> |
| 175 | </p> | 171 | </p> |
| 176 | <?php | 172 | <?php |
| 177 | } | 173 | } |
| 178 | } | 174 | } |
| 179 | ?> | 175 | ?> |
diff --git a/view/template-formulaires.php b/view/template-formulaires.php index 0ffbba3..fc73a27 100644 --- a/view/template-formulaires.php +++ b/view/template-formulaires.php | |||
| @@ -33,6 +33,7 @@ ob_start(); | |||
| 33 | <label for="annee" >Année</label> | 33 | <label for="annee" >Année</label> |
| 34 | <input type="text" name="annee" value="<?= $vignette[1] ?>" ><br /> | 34 | <input type="text" name="annee" value="<?= $vignette[1] ?>" ><br /> |
| 35 | <label for="pochette" >Pochette du disque (jpg ou png) : <?= $vignette[2] ?></label><br/> | 35 | <label for="pochette" >Pochette du disque (jpg ou png) : <?= $vignette[2] ?></label><br/> |
| 36 | <!-- <input type="file" id="upload" name="upload" > --> | ||
| 36 | <input type="file" name="upload" ><br /><br /><br /> | 37 | <input type="file" name="upload" ><br /><br /><br /> |
| 37 | <?php | 38 | <?php |
| 38 | $inputsAlbum = ob_get_clean(); | 39 | $inputsAlbum = ob_get_clean(); |
| @@ -52,6 +53,7 @@ if($page === 'discographie' || $page === 'album') | |||
| 52 | ?> | 53 | ?> |
| 53 | 54 | ||
| 54 | <textarea id="editor" name="contenu" ></textarea> | 55 | <textarea id="editor" name="contenu" ></textarea> |
| 56 | <!-- <input class="boutonSubmitEditeur" type="submit" value="Valider" onclick="filtrerAntislash();"/> --> | ||
| 55 | <input class="boutonSubmitEditeur" type="submit" value="Valider" /> | 57 | <input class="boutonSubmitEditeur" type="submit" value="Valider" /> |
| 56 | <a class="boutonAnnuler" href="index.php?page=<?= $lienBoutonAnnuler ?>" > | 58 | <a class="boutonAnnuler" href="index.php?page=<?= $lienBoutonAnnuler ?>" > |
| 57 | <input type="button" value="Annuler" /></a> | 59 | <input type="button" value="Annuler" /></a> |
