diff options
| author | polo <ordipolo@gmx.fr> | 2023-03-03 23:44:43 +0100 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2023-03-03 23:44:43 +0100 |
| commit | c0b176ae142624d6a6daa0f65ea6fead448b8b47 (patch) | |
| tree | e06445897db82e0f3cddd13bb2a67860fcf9fc3c | |
| parent | a1a9c5d80d800f6c38b900c66c77db05801a6f1d (diff) | |
| download | melaine-c0b176ae142624d6a6daa0f65ea6fead448b8b47.tar.gz melaine-c0b176ae142624d6a6daa0f65ea6fead448b8b47.tar.bz2 melaine-c0b176ae142624d6a6daa0f65ea6fead448b8b47.zip | |
inversion de positions
| -rw-r--r-- | controller/admin.php | 34 | ||||
| -rw-r--r-- | controller/ajax.php | 46 | ||||
| -rw-r--r-- | controller/installation.php | 24 | ||||
| -rw-r--r-- | controller/password.php | 2 | ||||
| -rw-r--r-- | controller/visitor.php | 2 | ||||
| -rw-r--r-- | index.php | 77 | ||||
| -rw-r--r-- | lib/ckeditor5/config online builder.png | bin | 0 -> 33029 bytes | |||
| -rw-r--r-- | model/Article.php | 102 | ||||
| -rw-r--r-- | public/css/discographie.css | 11 | ||||
| -rw-r--r-- | public/css/main.css (renamed from public/css/accueil.css) | 13 | ||||
| -rw-r--r-- | public/css/menu.css | 4 | ||||
| -rw-r--r-- | public/css/pages_articles_simples.css | 8 | ||||
| -rw-r--r-- | public/icone_descendre.png | bin | 0 -> 8648 bytes | |||
| -rw-r--r-- | public/icone_flèche.xcf | bin | 0 -> 6734 bytes | |||
| -rw-r--r-- | public/icone_monter.png | bin | 0 -> 8655 bytes | |||
| -rw-r--r-- | public/inversion.js | 16 | ||||
| -rw-r--r-- | view/articlesContent.php | 15 | ||||
| -rw-r--r-- | view/backup.php | 6 | ||||
| -rw-r--r-- | view/discographie.php | 7 | ||||
| -rw-r--r-- | view/pageArticlesSimples.php | 4 | ||||
| -rw-r--r-- | view/password.php | 2 | ||||
| -rw-r--r-- | view/template.php | 2 |
22 files changed, 312 insertions, 63 deletions
diff --git a/controller/admin.php b/controller/admin.php index 93d1900..845fab1 100644 --- a/controller/admin.php +++ b/controller/admin.php | |||
| @@ -33,16 +33,14 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai | |||
| 33 | $Articles->fileCode = $fileCode; | 33 | $Articles->fileCode = $fileCode; |
| 34 | $_SESSION['target'] = $Articles->fileCode; | 34 | $_SESSION['target'] = $Articles->fileCode; |
| 35 | 35 | ||
| 36 | // suppression | ||
| 37 | if($suppression) | 36 | if($suppression) |
| 38 | { | 37 | { |
| 39 | $Articles->delete(); | 38 | $Articles->delete(); |
| 40 | 39 | ||
| 41 | // redirection immédiate avant affichage | 40 | // c'est fait, on recharge |
| 42 | header('Location: index.php?page=' . $page); | 41 | header('Location: index.php?page=' . $page); |
| 43 | exit(); | 42 | exit(); |
| 44 | } | 43 | } |
| 45 | // modification | ||
| 46 | else | 44 | else |
| 47 | { | 45 | { |
| 48 | $title = "Modifier un article"; | 46 | $title = "Modifier un article"; |
| @@ -91,7 +89,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai | |||
| 91 | } | 89 | } |
| 92 | 90 | ||
| 93 | // un article (= actualité) | 91 | // un article (= actualité) |
| 94 | function menuEdit($fileCode, $suppression) | 92 | function menuEdit($fileCode, int $suppression) |
| 95 | { | 93 | { |
| 96 | $page = "menu"; | 94 | $page = "menu"; |
| 97 | $title = "Melaine Favennec - menu BD"; | 95 | $title = "Melaine Favennec - menu BD"; |
| @@ -100,56 +98,56 @@ function menuEdit($fileCode, $suppression) | |||
| 100 | } | 98 | } |
| 101 | 99 | ||
| 102 | // plusieurs articles | 100 | // plusieurs articles |
| 103 | function melaineEdit($fileCode, $suppression) | 101 | function melaineEdit($fileCode, int $suppression) |
| 104 | { | 102 | { |
| 105 | $page = "melaine"; | 103 | $page = "melaine"; |
| 106 | $title = "Mais qui est Melaine Favennec?"; | 104 | $title = "Mais qui est Melaine Favennec?"; |
| 107 | $headerPaintedTitle = 'Melaine Favennec'; | 105 | $headerPaintedTitle = 'Melaine Favennec'; |
| 108 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 106 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 109 | } | 107 | } |
| 110 | function musiqueEdit($fileCode, $suppression) | 108 | function musiqueEdit($fileCode, int $suppression) |
| 111 | { | 109 | { |
| 112 | $page = "musique"; | 110 | $page = "musique"; |
| 113 | $title = "Musique"; | 111 | $title = "Musique"; |
| 114 | $headerPaintedTitle = 'Musique'; | 112 | $headerPaintedTitle = 'Musique'; |
| 115 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 113 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 116 | } | 114 | } |
| 117 | function presseEdit($fileCode, $suppression) | 115 | function presseEdit($fileCode, int $suppression) |
| 118 | { | 116 | { |
| 119 | $page = "presse"; | 117 | $page = "presse"; |
| 120 | $title = "La presse"; | 118 | $title = "La presse"; |
| 121 | $headerPaintedTitle = 'La Presse'; | 119 | $headerPaintedTitle = 'La Presse'; |
| 122 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 120 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 123 | } | 121 | } |
| 124 | function livresEdit($fileCode, $suppression) | 122 | function livresEdit($fileCode, int $suppression) |
| 125 | { | 123 | { |
| 126 | $page = "livres"; | 124 | $page = "livres"; |
| 127 | $title = "Livres"; | 125 | $title = "Livres"; |
| 128 | $headerPaintedTitle = 'Dans les livres'; | 126 | $headerPaintedTitle = 'Dans les livres'; |
| 129 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 127 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 130 | } | 128 | } |
| 131 | function jaimeEdit($fileCode, $suppression) | 129 | function jaimeEdit($fileCode, int $suppression) |
| 132 | { | 130 | { |
| 133 | $page = "jaime"; | 131 | $page = "jaime"; |
| 134 | $title = "J'aime"; | 132 | $title = "J'aime"; |
| 135 | $headerPaintedTitle = 'J\'aime'; | 133 | $headerPaintedTitle = 'J\'aime'; |
| 136 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 134 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 137 | } | 135 | } |
| 138 | function peintureEdit($fileCode, $suppression) | 136 | function peintureEdit($fileCode, int $suppression) |
| 139 | { | 137 | { |
| 140 | $page = "peinture"; | 138 | $page = "peinture"; |
| 141 | $title = "peinture"; | 139 | $title = "peinture"; |
| 142 | $headerPaintedTitle = 'Celtic Boats'; | 140 | $headerPaintedTitle = 'Celtic Boats'; |
| 143 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 141 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 144 | } | 142 | } |
| 145 | function archivesEdit($fileCode, $suppression) | 143 | function archivesEdit($fileCode, int $suppression) |
| 146 | { | 144 | { |
| 147 | $page = "archives"; | 145 | $page = "archives"; |
| 148 | $title = "Archives"; | 146 | $title = "Archives"; |
| 149 | $headerPaintedTitle = 'Archives'; | 147 | $headerPaintedTitle = 'Archives'; |
| 150 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); | 148 | pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression); |
| 151 | } | 149 | } |
| 152 | function legalEdit($fileCode, $suppression) | 150 | function legalEdit($fileCode, int $suppression) |
| 153 | { | 151 | { |
| 154 | $page = "legal"; | 152 | $page = "legal"; |
| 155 | $title = "Mentions légales"; | 153 | $title = "Mentions légales"; |
| @@ -159,7 +157,7 @@ function legalEdit($fileCode, $suppression) | |||
| 159 | 157 | ||
| 160 | 158 | ||
| 161 | // page plus complexe que les autres | 159 | // page plus complexe que les autres |
| 162 | function discoEdit($fileCode, $suppression) | 160 | function discoEdit($fileCode, int $suppression) |
| 163 | { | 161 | { |
| 164 | $page = "discographie"; | 162 | $page = "discographie"; |
| 165 | $title = "Discographie"; | 163 | $title = "Discographie"; |
| @@ -270,3 +268,13 @@ function discoEdit($fileCode, $suppression) | |||
| 270 | // fin de l'assemblage | 268 | // fin de l'assemblage |
| 271 | require('view/template.php'); | 269 | require('view/template.php'); |
| 272 | } | 270 | } |
| 271 | |||
| 272 | |||
| 273 | // version sans JS (l'autre est dans ajax.php) | ||
| 274 | function inversionPositions(string $page, $fileCode, string $class, int $direction) | ||
| 275 | { | ||
| 276 | $Object = new $class($page); | ||
| 277 | $Object->fileCode = $fileCode; | ||
| 278 | // direction: 1 = monter, -1 = descendre | ||
| 279 | $Object->inversionPositions($direction); | ||
| 280 | } \ No newline at end of file | ||
diff --git a/controller/ajax.php b/controller/ajax.php index 24710d8..188b01f 100644 --- a/controller/ajax.php +++ b/controller/ajax.php | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | <?php | 1 | <?php |
| 2 | // controller/ajax.php | 2 | // controller/ajax.php |
| 3 | 3 | // | |
| 4 | // traitement des requêtes AJAX | 4 | // traitement des requêtes AJAX |
| 5 | |||
| 6 | |||
| 5 | // -> insertion d'une image dans l'éditeur | 7 | // -> insertion d'une image dans l'éditeur |
| 6 | if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_image') | 8 | if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_image') |
| 7 | { | 9 | { |
| @@ -30,6 +32,48 @@ if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_ | |||
| 30 | } | 32 | } |
| 31 | 33 | ||
| 32 | 34 | ||
| 35 | // inversion des positions de deux éléments d'une page | ||
| 36 | /*if(isset($_GET['action']) && isset($_GET['page']) && ($_GET['action'] == 'monter' || $_GET['action'] == 'descendre') && isset($_GET['file_code']) && !empty($_GET['file_code'])) | ||
| 37 | { | ||
| 38 | // sécurité !! | ||
| 39 | if(!isset($_SESSION['admin']) || $_SESSION['admin'] != 1) | ||
| 40 | { | ||
| 41 | header('Location: index.php?erreur=interdit'); | ||
| 42 | } | ||
| 43 | else | ||
| 44 | { | ||
| 45 | require('controller/admin.php'); | ||
| 46 | require('model/Article.php'); | ||
| 47 | |||
| 48 | $pagesArticlesSimples = ['menu', 'melaine', 'musique', 'presse', 'livres', 'jaime', 'peinture', 'archives', 'legal']; | ||
| 49 | $sens = 0; | ||
| 50 | |||
| 51 | if($_GET['action'] == 'monter') | ||
| 52 | { | ||
| 53 | $sens = 1; | ||
| 54 | } | ||
| 55 | if($_GET['action'] == 'descendre') | ||
| 56 | { | ||
| 57 | $sens = 0; | ||
| 58 | } | ||
| 59 | |||
| 60 | if(in_array($_GET['page'], $pagesArticlesSimples)) | ||
| 61 | { | ||
| 62 | // 1 pour monter | ||
| 63 | inversionPositions($_GET['page'], $_GET['file_code'], 'Article', $sens); | ||
| 64 | } | ||
| 65 | elseif($_GET['page'] == 'discographie') | ||
| 66 | { | ||
| 67 | require('model/Album.php'); | ||
| 68 | |||
| 69 | // 1 pour monter | ||
| 70 | inversionPositions($_GET['page'], $_GET['file_code'], 'Album', $sens); | ||
| 71 | } | ||
| 72 | } | ||
| 73 | exit(); // stop !! | ||
| 74 | }*/ | ||
| 75 | |||
| 76 | |||
| 33 | // page restauration quand le fichier zip est lourd | 77 | // page restauration quand le fichier zip est lourd |
| 34 | // -> input file onchange | 78 | // -> input file onchange |
| 35 | if(isset($_GET['action']) && $_GET['action'] == 'restauration' | 79 | if(isset($_GET['action']) && $_GET['action'] == 'restauration' |
diff --git a/controller/installation.php b/controller/installation.php index 5aa5ac9..2e4e1c3 100644 --- a/controller/installation.php +++ b/controller/installation.php | |||
| @@ -32,8 +32,8 @@ function installation() | |||
| 32 | // - créer le dossier data à la racine du site | 32 | // - créer le dossier data à la racine du site |
| 33 | // - lui donner les droits du dossier data pour 777 | 33 | // - lui donner les droits du dossier data pour 777 |
| 34 | 34 | ||
| 35 | // valeur en octal | 35 | // droits en octal |
| 36 | $droitsDossiers = 0777; // mettre 0755 en production | 36 | $droitsDossiers = 0777; |
| 37 | $droitsFichiers = 0666; | 37 | $droitsFichiers = 0666; |
| 38 | 38 | ||
| 39 | if(!file_exists('data') && !mkdir('data')) | 39 | if(!file_exists('data') && !mkdir('data')) |
| @@ -68,16 +68,22 @@ function installation() | |||
| 68 | { | 68 | { |
| 69 | createIndexPHP('data/' . $page . '/index.php', $droitsFichiers); | 69 | createIndexPHP('data/' . $page . '/index.php', $droitsFichiers); |
| 70 | } | 70 | } |
| 71 | foreach ($sousDossiers as $dossier) | 71 | if(!file_exists('data/' . $page . '/positions.json')) |
| 72 | { | 72 | { |
| 73 | if(!file_exists('data/' . $page . '/' . $dossier)) | 73 | // création de fichiers VIDES (gestion par le modèle) |
| 74 | touch('data/' . $page . '/positions.json'); | ||
| 75 | chmod('data/' . $page . '/positions.json', $droitsFichiers); | ||
| 76 | } | ||
| 77 | foreach ($sousDossiers as $sousDossier) | ||
| 78 | { | ||
| 79 | if(!file_exists('data/' . $page . '/' . $sousDossier)) | ||
| 74 | { | 80 | { |
| 75 | mkdir('data/' . $page . '/' . $dossier); | 81 | mkdir('data/' . $page . '/' . $sousDossier); |
| 76 | chmod('data/' . $page . '/' . $dossier, $droitsDossiers); | 82 | chmod('data/' . $page . '/' . $sousDossier, $droitsDossiers); |
| 77 | } | 83 | } |
| 78 | if(!file_exists('data/' . $page . '/' . $dossier . '/index.php')) | 84 | if(!file_exists('data/' . $page . '/' . $sousDossier . '/index.php')) |
| 79 | { | 85 | { |
| 80 | createIndexPHP('data/' . $page . '/' . $dossier . '/index.php', $droitsFichiers); | 86 | createIndexPHP('data/' . $page . '/' . $sousDossier . '/index.php', $droitsFichiers); |
| 81 | } | 87 | } |
| 82 | } | 88 | } |
| 83 | // if(!file_exists('data/' . $page . '/multimedia')) | 89 | // if(!file_exists('data/' . $page . '/multimedia')) |
| @@ -87,7 +93,7 @@ function installation() | |||
| 87 | // } | 93 | // } |
| 88 | } | 94 | } |
| 89 | 95 | ||
| 90 | // dossier supplémentaire dans discographie | 96 | // dossier "json" dans discographie |
| 91 | if(!file_exists('data/discographie/json')) | 97 | if(!file_exists('data/discographie/json')) |
| 92 | { | 98 | { |
| 93 | mkdir('data/discographie/json'); | 99 | mkdir('data/discographie/json'); |
diff --git a/controller/password.php b/controller/password.php index 9d9b45b..efc8975 100644 --- a/controller/password.php +++ b/controller/password.php | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | <?php | 1 | <?php |
| 2 | // controller/password.php | 2 | // controller/password.php |
| 3 | 3 | ||
| 4 | // fonction exécutée à l'ouverture de chaque page | 4 | // exécutée dans installation.php à l'ouverture de chaque page |
| 5 | function existPassword() | 5 | function existPassword() |
| 6 | { | 6 | { |
| 7 | // création du fichier | 7 | // création du fichier |
diff --git a/controller/visitor.php b/controller/visitor.php index e0cd7fc..d03197d 100644 --- a/controller/visitor.php +++ b/controller/visitor.php | |||
| @@ -32,8 +32,8 @@ function pageArticlesSimplesVisitor(string $page, string $title, string $headerP | |||
| 32 | { | 32 | { |
| 33 | // données dans $Articles->fileList['content'] | 33 | // données dans $Articles->fileList['content'] |
| 34 | $Articles->readAll(); | 34 | $Articles->readAll(); |
| 35 | // lourd? | ||
| 35 | $Articles->fileList = array_reverse($Articles->fileList); | 36 | $Articles->fileList = array_reverse($Articles->fileList); |
| 36 | //var_dump($Articles->fileList[0]); | ||
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | // Assemblage | 39 | // Assemblage |
| @@ -17,18 +17,17 @@ if(!empty($_SESSION['erreur'])) | |||
| 17 | // variables globales, dépendances et config par l'utilisateur | 17 | // variables globales, dépendances et config par l'utilisateur |
| 18 | require('controller/config.php'); | 18 | require('controller/config.php'); |
| 19 | 19 | ||
| 20 | // au premier démarrage du site (création du dossier "data") | ||
| 21 | require('controller/installation.php'); | ||
| 22 | |||
| 23 | // penser à faire qu'on ne l'ouvre pas tout le temps | ||
| 24 | // -> présence du data/password.txt? | 20 | // -> présence du data/password.txt? |
| 25 | require('controller/password.php'); | 21 | require('controller/password.php'); |
| 26 | 22 | ||
| 23 | // au premier démarrage du site (création du dossier "data") | ||
| 24 | require('controller/installation.php'); | ||
| 27 | installation(); | 25 | installation(); |
| 28 | 26 | ||
| 29 | // traitement des requêtes AJAX | 27 | // traitement des requêtes AJAX, execute exit() à la fin |
| 30 | require('controller/ajax.php'); | 28 | require('controller/ajax.php'); |
| 31 | 29 | ||
| 30 | |||
| 32 | // traitement des POST du ckeditor | 31 | // traitement des POST du ckeditor |
| 33 | // la fonction submitCKeditor est "autonome", elle n'affiche rien puis redirige sans GET | 32 | // la fonction submitCKeditor est "autonome", elle n'affiche rien puis redirige sans GET |
| 34 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 | 33 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 |
| @@ -67,13 +66,7 @@ if(isset($_GET['action']) && isset($_GET['page'])) | |||
| 67 | 66 | ||
| 68 | 67 | ||
| 69 | 68 | ||
| 70 | // construction des pages | ||
| 71 | |||
| 72 | // mode visiteur (sans l'éditeur) | ||
| 73 | require('controller/visitor.php'); | ||
| 74 | |||
| 75 | // modèle | 69 | // modèle |
| 76 | //if(isset($_GET['page']) && $_GET['page'] != 'menu') | ||
| 77 | if(isset($_GET['page'])) // utile? | 70 | if(isset($_GET['page'])) // utile? |
| 78 | { | 71 | { |
| 79 | require('model/Article.php'); | 72 | require('model/Article.php'); |
| @@ -84,6 +77,11 @@ if(isset($_GET['page'])) // utile? | |||
| 84 | } | 77 | } |
| 85 | 78 | ||
| 86 | 79 | ||
| 80 | |||
| 81 | // contrôleurs | ||
| 82 | // mode visiteur (sans l'éditeur) | ||
| 83 | require('controller/visitor.php'); | ||
| 84 | |||
| 87 | // contrôleur des pages en mode admin | 85 | // contrôleur des pages en mode admin |
| 88 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1) | 86 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1) |
| 89 | { | 87 | { |
| @@ -97,7 +95,8 @@ else | |||
| 97 | } | 95 | } |
| 98 | 96 | ||
| 99 | 97 | ||
| 100 | // page du site demandée | 98 | |
| 99 | // traitements des GET (page du site et action souhaitée) | ||
| 101 | if(isset($_GET['page'])) | 100 | if(isset($_GET['page'])) |
| 102 | { | 101 | { |
| 103 | $pagesArticlesSimples = ['menu', 'melaine', 'musique', 'presse', 'livres', 'jaime', 'peinture', 'archives', 'legal']; | 102 | $pagesArticlesSimples = ['menu', 'melaine', 'musique', 'presse', 'livres', 'jaime', 'peinture', 'archives', 'legal']; |
| @@ -138,6 +137,33 @@ if(isset($_GET['page'])) | |||
| 138 | $fonctionEdit('', 0); | 137 | $fonctionEdit('', 0); |
| 139 | } | 138 | } |
| 140 | } | 139 | } |
| 140 | // modification d'un positions.json (version sans JS) | ||
| 141 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'monter') | ||
| 142 | { | ||
| 143 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | ||
| 144 | { | ||
| 145 | // 1 pour monter | ||
| 146 | inversionPositions($_GET['page'], $_GET['file_code'], 'Article', 1); | ||
| 147 | $fonctionVisitor(); | ||
| 148 | } | ||
| 149 | else | ||
| 150 | { | ||
| 151 | $fonctionVisitor(); | ||
| 152 | } | ||
| 153 | } | ||
| 154 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'descendre') | ||
| 155 | { | ||
| 156 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | ||
| 157 | { | ||
| 158 | // -1 pour descendre | ||
| 159 | inversionPositions($_GET['page'], $_GET['file_code'], 'Article', -1); | ||
| 160 | $fonctionVisitor(); | ||
| 161 | } | ||
| 162 | else | ||
| 163 | { | ||
| 164 | $fonctionVisitor(); | ||
| 165 | } | ||
| 166 | } | ||
| 141 | // suppression | 167 | // suppression |
| 142 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') | 168 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') |
| 143 | { | 169 | { |
| @@ -171,6 +197,33 @@ if(isset($_GET['page'])) | |||
| 171 | discoEdit('', 0); | 197 | discoEdit('', 0); |
| 172 | } | 198 | } |
| 173 | } | 199 | } |
| 200 | // modification d'un positions.json (version sans JS) | ||
| 201 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'monter') | ||
| 202 | { | ||
| 203 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | ||
| 204 | { | ||
| 205 | // 1 pour monter | ||
| 206 | inversionPositions($_GET['page'], $_GET['file_code'], 'Album', 1); | ||
| 207 | discoVisitor(); | ||
| 208 | } | ||
| 209 | else | ||
| 210 | { | ||
| 211 | discoVisitor(); | ||
| 212 | } | ||
| 213 | } | ||
| 214 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'descendre') | ||
| 215 | { | ||
| 216 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | ||
| 217 | { | ||
| 218 | // 0 pour descendre | ||
| 219 | inversionPositions($_GET['page'], $_GET['file_code'], 'Album', -1); | ||
| 220 | discoVisitor(); | ||
| 221 | } | ||
| 222 | else | ||
| 223 | { | ||
| 224 | discoVisitor(); | ||
| 225 | } | ||
| 226 | } | ||
| 174 | // suppression | 227 | // suppression |
| 175 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') | 228 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') |
| 176 | { | 229 | { |
diff --git a/lib/ckeditor5/config online builder.png b/lib/ckeditor5/config online builder.png new file mode 100644 index 0000000..77cab31 --- /dev/null +++ b/lib/ckeditor5/config online builder.png | |||
| Binary files differ | |||
diff --git a/model/Article.php b/model/Article.php index d0fb019..f4fe65a 100644 --- a/model/Article.php +++ b/model/Article.php | |||
| @@ -10,8 +10,9 @@ class Article | |||
| 10 | { | 10 | { |
| 11 | // pour tous les articles | 11 | // pour tous les articles |
| 12 | public $page; // page et donc dossier concerné | 12 | public $page; // page et donc dossier concerné |
| 13 | public $format = 'html'; // vaut 'html' ou 'json' | 13 | public $format = 'html'; // 'html' ou 'json' |
| 14 | public $fileListCount; | 14 | public $fileListCount; // pour les boucles "for" |
| 15 | // pas de "foreach", on a besoin des compteurs $i | ||
| 15 | public $fileList; // = toutes les données | 16 | public $fileList; // = toutes les données |
| 16 | 17 | ||
| 17 | // pour un article (ou album) spécifique | 18 | // pour un article (ou album) spécifique |
| @@ -30,11 +31,17 @@ class Article | |||
| 30 | // noter que le chemin et l'extension ne varient pas | 31 | // noter que le chemin et l'extension ne varient pas |
| 31 | public function makeFileList() | 32 | public function makeFileList() |
| 32 | { | 33 | { |
| 34 | // noms des fichiers | ||
| 33 | // globbing = utiliser un pattern pour cibler des fichiers | 35 | // globbing = utiliser un pattern pour cibler des fichiers |
| 34 | $nameList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); | 36 | $nameList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); |
| 35 | 37 | ||
| 36 | $this->fileListCount = count($nameList); | 38 | $this->fileListCount = count($nameList); |
| 37 | 39 | ||
| 40 | // associations: fileCode => position | ||
| 41 | $positions = $this->readPositionsJSON(); | ||
| 42 | |||
| 43 | // $this->fileList[] | ||
| 44 | $positionMax = 0; | ||
| 38 | for($i = 0; $i < $this->fileListCount; $i++) | 45 | for($i = 0; $i < $this->fileListCount; $i++) |
| 39 | { | 46 | { |
| 40 | $pathInfo = pathinfo($nameList[$i]); | 47 | $pathInfo = pathinfo($nameList[$i]); |
| @@ -45,9 +52,100 @@ class Article | |||
| 45 | 'content' => '', | 52 | 'content' => '', |
| 46 | //'date' => getdate() // peut-être utile plus tard | 53 | //'date' => getdate() // peut-être utile plus tard |
| 47 | ]; | 54 | ]; |
| 55 | |||
| 56 | // récupération des positions disponibles | ||
| 57 | // celles inutilisées sont ignorées | ||
| 58 | // une case dans $positions: "1677796758" => 2 | ||
| 59 | if(isset($positions[$fileCode]) && $positions[$fileCode] > 0) | ||
| 60 | { | ||
| 61 | $this->fileList[$i]['position'] = $positions[$fileCode]; | ||
| 62 | $positionMax = max($positions[$fileCode], $positionMax); | ||
| 63 | } | ||
| 64 | else | ||
| 65 | { | ||
| 66 | $this->fileList[$i]['position'] = 0; | ||
| 67 | } | ||
| 68 | } | ||
| 69 | $this->updatePositionsJSON($positionMax); | ||
| 70 | |||
| 71 | // réordonner "fileList" par rapport aux positions | ||
| 72 | if(!empty($this->fileList)) | ||
| 73 | { | ||
| 74 | $this->sortFileListByPositions(); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | private function readPositionsJSON() // retourne array ou NULL | ||
| 79 | { | ||
| 80 | if(file_exists('data/' . $this->page . '/positions.json')) | ||
| 81 | { | ||
| 82 | // "true" pour retourner un tableau et non un objet | ||
| 83 | $positions = json_decode(file_get_contents('data/' . $this->page . '/positions.json'), true); | ||
| 84 | } | ||
| 85 | return $positions; | ||
| 86 | } | ||
| 87 | |||
| 88 | private function updatePositionsJSON(int $positionMax = -1) | ||
| 89 | { | ||
| 90 | // créer les positions manquantes | ||
| 91 | $positions = []; | ||
| 92 | for($i = 0; $i < $this->fileListCount; $i++) | ||
| 93 | { | ||
| 94 | // fonction appelée par makeFileList() | ||
| 95 | if($positionMax >= 0) | ||
| 96 | { | ||
| 97 | if($this->fileList[$i]['position'] == 0) | ||
| 98 | { | ||
| 99 | $positionMax++; | ||
| 100 | $this->fileList[$i]['position'] = $positionMax; | ||
| 101 | } | ||
| 102 | } | ||
| 103 | |||
| 104 | // remplissage comme ceci: "1677796758" => 2 | ||
| 105 | $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; | ||
| 106 | } | ||
| 107 | |||
| 108 | file_put_contents('data/' . $this->page . '/positions.json', json_encode($positions)); | ||
| 109 | } | ||
| 110 | |||
| 111 | private function sortFileListByPositions() | ||
| 112 | { | ||
| 113 | // contient les positions seules | ||
| 114 | $positions = array_column($this->fileList, 'position'); | ||
| 115 | |||
| 116 | // magique! | ||
| 117 | array_multisort($positions, SORT_ASC, $this->fileList); | ||
| 118 | } | ||
| 119 | |||
| 120 | // pour modifier l'ordre des éléments de la page | ||
| 121 | // faire plus tard une version statique pour traitement AJAX | ||
| 122 | public function inversionPositions(int $direction) | ||
| 123 | { | ||
| 124 | for($i = 0; $i < $this->fileListCount; $i++) | ||
| 125 | { | ||
| 126 | if($this->fileList[$i]['fileCode'] == $this->fileCode) | ||
| 127 | { | ||
| 128 | // si direction vaut 1, inversion avec l'élément au dessus (puisqu'on les affiche dans l'ordre décroissant) | ||
| 129 | if(($direction === 1 || $direction === -1) && | ||
| 130 | isset($this->fileList[$i + $direction]['position'])) | ||
| 131 | { | ||
| 132 | $c = $this->fileList[$i]['position']; | ||
| 133 | $this->fileList[$i]['position'] = $this->fileList[$i + $direction]['position']; | ||
| 134 | $this->fileList[$i + $direction]['position'] = $c; | ||
| 135 | |||
| 136 | // sortie de la boucle | ||
| 137 | $i = $this->fileListCount; | ||
| 138 | } | ||
| 139 | else // inversion du premier avec le précédent ou du dernier avec le suivant | ||
| 140 | {} | ||
| 141 | } | ||
| 48 | } | 142 | } |
| 143 | |||
| 144 | // écriture du positions.json | ||
| 145 | $this->updatePositionsJSON(); | ||
| 49 | } | 146 | } |
| 50 | 147 | ||
| 148 | // du code html pour utiliser les miniatures | ||
| 51 | private function makeHtmlMiniImages($content) | 149 | private function makeHtmlMiniImages($content) |
| 52 | { | 150 | { |
| 53 | // insérer -mini au nom du dossier et au fichier | 151 | // insérer -mini au nom du dossier et au fichier |
diff --git a/public/css/discographie.css b/public/css/discographie.css index 0362bb4..4d602fa 100644 --- a/public/css/discographie.css +++ b/public/css/discographie.css | |||
| @@ -45,6 +45,7 @@ aside div | |||
| 45 | z-index: 1; /* placer le menu déroulant au dessus */ | 45 | z-index: 1; /* placer le menu déroulant au dessus */ |
| 46 | /*background-color: #9fa8d0;*/ | 46 | /*background-color: #9fa8d0;*/ |
| 47 | background-color: #a4afd4; | 47 | background-color: #a4afd4; |
| 48 | /*background-color: white;*/ | ||
| 48 | border: 2px #3d4c9d solid; | 49 | border: 2px #3d4c9d solid; |
| 49 | } | 50 | } |
| 50 | 51 | ||
| @@ -60,6 +61,8 @@ aside div | |||
| 60 | #chronologie p a:hover | 61 | #chronologie p a:hover |
| 61 | { | 62 | { |
| 62 | color: black; | 63 | color: black; |
| 64 | /*background-color: #a4afd4;*/ | ||
| 65 | background-color: white; | ||
| 63 | } | 66 | } |
| 64 | 67 | ||
| 65 | .linkChrono | 68 | .linkChrono |
| @@ -115,7 +118,8 @@ input | |||
| 115 | padding-bottom: 20px; | 118 | padding-bottom: 20px; |
| 116 | border-bottom: 1px black solid; | 119 | border-bottom: 1px black solid; |
| 117 | } | 120 | } |
| 118 | .boutonAlbum a | 121 | /* mêmes règles que .boutonArticle dans main.css */ |
| 122 | .boutonAlbum span | ||
| 119 | { | 123 | { |
| 120 | padding: 2px; | 124 | padding: 2px; |
| 121 | border: 4px black groove; | 125 | border: 4px black groove; |
| @@ -132,7 +136,6 @@ input | |||
| 132 | article | 136 | article |
| 133 | { | 137 | { |
| 134 | margin: 5px 0px; | 138 | margin: 5px 0px; |
| 135 | width: 22%; | ||
| 136 | /*min-width: 300px;*/ | 139 | /*min-width: 300px;*/ |
| 137 | } | 140 | } |
| 138 | .articleAvecEditeur | 141 | .articleAvecEditeur |
| @@ -230,6 +233,10 @@ a:hover figure figcaption | |||
| 230 | /* annuler le positionnement du contenu */ | 233 | /* annuler le positionnement du contenu */ |
| 231 | margin-top: 55px; | 234 | margin-top: 55px; |
| 232 | } | 235 | } |
| 236 | article | ||
| 237 | { | ||
| 238 | width: 32%; | ||
| 239 | } | ||
| 233 | } | 240 | } |
| 234 | 241 | ||
| 235 | @media screen and (max-width: 699px) | 242 | @media screen and (max-width: 699px) |
diff --git a/public/css/accueil.css b/public/css/main.css index 2a42e29..77ab7ff 100644 --- a/public/css/accueil.css +++ b/public/css/main.css | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* public/accueil.css */ | 1 | /* public/main.css */ |
| 2 | 2 | ||
| 3 | /*@font-face | 3 | /*@font-face |
| 4 | { | 4 | { |
| @@ -87,6 +87,11 @@ img | |||
| 87 | vertical-align: bottom; | 87 | vertical-align: bottom; |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | .boutonArticle span | ||
| 91 | { | ||
| 92 | padding: 2px; | ||
| 93 | border: 4px black groove; | ||
| 94 | } | ||
| 90 | .boutonSubmitEditeur | 95 | .boutonSubmitEditeur |
| 91 | { | 96 | { |
| 92 | margin-top: 5px; | 97 | margin-top: 5px; |
| @@ -111,6 +116,12 @@ article | |||
| 111 | font-size: 90%; | 116 | font-size: 90%; |
| 112 | margin: 5px 0; | 117 | margin: 5px 0; |
| 113 | } | 118 | } |
| 119 | /* Eviter la superposition d’une entête fixe sur une ancre */ | ||
| 120 | article:target | ||
| 121 | { | ||
| 122 | padding-top: 71px; | ||
| 123 | margin-top: -71px; | ||
| 124 | } | ||
| 114 | .articleAvecEditeur | 125 | .articleAvecEditeur |
| 115 | { | 126 | { |
| 116 | background-color: #a8b3d9; | 127 | background-color: #a8b3d9; |
diff --git a/public/css/menu.css b/public/css/menu.css index 28cba08..4bf5262 100644 --- a/public/css/menu.css +++ b/public/css/menu.css | |||
| @@ -13,11 +13,11 @@ | |||
| 13 | { | 13 | { |
| 14 | font-size: 90%; | 14 | font-size: 90%; |
| 15 | } | 15 | } |
| 16 | .boutonArticle a | 16 | /*.boutonArticle span |
| 17 | { | 17 | { |
| 18 | padding: 2px; | 18 | padding: 2px; |
| 19 | border: 4px black groove; | 19 | border: 4px black groove; |
| 20 | } | 20 | }*/ |
| 21 | 21 | ||
| 22 | .sectionActu | 22 | .sectionActu |
| 23 | {} | 23 | {} |
diff --git a/public/css/pages_articles_simples.css b/public/css/pages_articles_simples.css index 9b6d2c3..2f3e901 100644 --- a/public/css/pages_articles_simples.css +++ b/public/css/pages_articles_simples.css | |||
| @@ -26,14 +26,14 @@ figure | |||
| 26 | } | 26 | } |
| 27 | .boutonNouvelArticle | 27 | .boutonNouvelArticle |
| 28 | { | 28 | { |
| 29 | /* comme "article" dans main.css */ | ||
| 29 | font-size: 90%; | 30 | font-size: 90%; |
| 30 | } | 31 | } |
| 31 | .boutonArticle a | 32 | .boutonArticle span |
| 32 | { | 33 | { |
| 33 | padding: 2px; | 34 | position: relative; |
| 34 | border: 4px black groove; | 35 | bottom: 6px; |
| 35 | } | 36 | } |
| 36 | |||
| 37 | @media screen and (min-width: 700px) | 37 | @media screen and (min-width: 700px) |
| 38 | { | 38 | { |
| 39 | #titre | 39 | #titre |
diff --git a/public/icone_descendre.png b/public/icone_descendre.png new file mode 100644 index 0000000..7980297 --- /dev/null +++ b/public/icone_descendre.png | |||
| Binary files differ | |||
diff --git a/public/icone_flèche.xcf b/public/icone_flèche.xcf new file mode 100644 index 0000000..7fcf5d6 --- /dev/null +++ b/public/icone_flèche.xcf | |||
| Binary files differ | |||
diff --git a/public/icone_monter.png b/public/icone_monter.png new file mode 100644 index 0000000..8e213ec --- /dev/null +++ b/public/icone_monter.png | |||
| Binary files differ | |||
diff --git a/public/inversion.js b/public/inversion.js new file mode 100644 index 0000000..20a6871 --- /dev/null +++ b/public/inversion.js | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // public/inversion.js | ||
| 2 | |||
| 3 | // inverser la position de deux "articles" ou albums d'une page | ||
| 4 | function inversion() | ||
| 5 | { | ||
| 6 | var page = ''; | ||
| 7 | var action = ''; // monter ou descendre | ||
| 8 | var fileCode = ''; // <?= $Articles->fileList[$i]['fileCode'] ?> | ||
| 9 | var position = ''; // <?= $Articles->fileList[$i]['position'] ?> | ||
| 10 | |||
| 11 | const xhr = new XMLHttpRequest(); | ||
| 12 | url = 'index.php?page='+page+'&action='+action+'&file_code='+fileCode+'&position='+position+'#'+fileCode; | ||
| 13 | url = 'index.php?action=restauration&file_name='+fileInfos.name+'&file_size='+fileInfos.size; | ||
| 14 | xhr.open("GET", url); | ||
| 15 | xhr.send(); | ||
| 16 | } \ No newline at end of file | ||
diff --git a/view/articlesContent.php b/view/articlesContent.php index 5f6b587..c07ba75 100644 --- a/view/articlesContent.php +++ b/view/articlesContent.php | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | <?php | 1 | <?php |
| 2 | // view/articlesContent.php | 2 | // view/articlesContent.php |
| 3 | 3 | ||
| 4 | // variable $articlesContent | 4 | // tampon pour $articlesContent |
| 5 | ob_start(); | 5 | ob_start(); |
| 6 | if($_SESSION['admin'] == 1) | 6 | if($_SESSION['admin'] == 1) |
| 7 | { | 7 | { |
| @@ -23,7 +23,7 @@ if($_SESSION['admin'] == 1) | |||
| 23 | <div> | 23 | <div> |
| 24 | <p class="boutonArticle boutonNouvelArticle" > | 24 | <p class="boutonArticle boutonNouvelArticle" > |
| 25 | <a href="index.php?page=<?= $page ?>&action=editor" > | 25 | <a href="index.php?page=<?= $page ?>&action=editor" > |
| 26 | Nouvel article | 26 | <span>Nouvel article</span> |
| 27 | </a> | 27 | </a> |
| 28 | </p> | 28 | </p> |
| 29 | <?php | 29 | <?php |
| @@ -85,12 +85,13 @@ for($i = 0; $i < $Articles->fileListCount; $i++) | |||
| 85 | </div> | 85 | </div> |
| 86 | <p class="boutonArticle" > | 86 | <p class="boutonArticle" > |
| 87 | <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > | 87 | <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > |
| 88 | Modifier cet article | 88 | <img src="public/icone_modifier.png" ></a> |
| 89 | </a> | 89 | <a href="index.php?page=<?= $page ?>&action=monter&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>&position=<?= $Articles->fileList[$i]['position'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > |
| 90 | <!-- un espace --> | 90 | <img src="public/icone_monter.png" ></a> |
| 91 | <a href="index.php?page=<?= $page ?>&action=descendre&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>&position=<?= $Articles->fileList[$i]['position'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > | ||
| 92 | <img src="public/icone_descendre.png" ></a> | ||
| 91 | <a href="index.php?page=<?= $page ?>&action=suppression&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" > | 93 | <a href="index.php?page=<?= $page ?>&action=suppression&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" > |
| 92 | Supprimer cet article | 94 | <img src="public/icone_supprimer.png" ></a> |
| 93 | </a> | ||
| 94 | </p> | 95 | </p> |
| 95 | <?php | 96 | <?php |
| 96 | } | 97 | } |
diff --git a/view/backup.php b/view/backup.php index bbea60d..ec2e947 100644 --- a/view/backup.php +++ b/view/backup.php | |||
| @@ -54,8 +54,8 @@ elseif(isset($_GET['action']) && $_GET['action'] == 'restauration') | |||
| 54 | ob_start(); | 54 | ob_start(); |
| 55 | ?> | 55 | ?> |
| 56 | <h2>Restauration des données à partir d'une sauvegarde.</h2> | 56 | <h2>Restauration des données à partir d'une sauvegarde.</h2> |
| 57 | <p>Vous devez avoir créé précédemment un fichier dont le nom commence par <i>melaineDATA</i><br/> | 57 | <p>Vous devez avoir précédemment créé et téléchargé un fichier dont le nom commence par <i>melaineDATA</i><br/> |
| 58 | à la page <i>Sauvegarder les données.</i></p><br/> | 58 | sur la page <i>Sauvegarder les données.</i></p><br/> |
| 59 | 59 | ||
| 60 | <form method="post" enctype="multipart/form-data" action="index.php?from=<?= $from ?>&action=restauration" > | 60 | <form method="post" enctype="multipart/form-data" action="index.php?from=<?= $from ?>&action=restauration" > |
| 61 | <input id="archiveUpload" type="file" name="archive" accept=".zip" class="boutonBackup" onchange="sendFileSize();" ><br/> | 61 | <input id="archiveUpload" type="file" name="archive" accept=".zip" class="boutonBackup" onchange="sendFileSize();" ><br/> |
| @@ -78,7 +78,7 @@ elseif(isset($_GET['action']) && $_GET['action'] == 'restauration') | |||
| 78 | <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> | 78 | <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> |
| 79 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > | 79 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > |
| 80 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css" /> | 80 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css" /> |
| 81 | <link rel="stylesheet" type="text/css" href="public/css/accueil.css" /> | 81 | <link rel="stylesheet" type="text/css" href="public/css/main.css" /> |
| 82 | <?php | 82 | <?php |
| 83 | if(isset($_GET['action']) && $_GET['action'] == 'restauration') | 83 | if(isset($_GET['action']) && $_GET['action'] == 'restauration') |
| 84 | { | 84 | { |
diff --git a/view/discographie.php b/view/discographie.php index 2220715..3007c86 100644 --- a/view/discographie.php +++ b/view/discographie.php | |||
| @@ -81,10 +81,11 @@ if($_SESSION['admin'] == 1) | |||
| 81 | { | 81 | { |
| 82 | $style = ''; | 82 | $style = ''; |
| 83 | ?> | 83 | ?> |
| 84 | <!-- le bouton Nouvel album est considéré comme un article --> | ||
| 84 | <article> | 85 | <article> |
| 85 | <p class="boutonAlbum" > | 86 | <p class="boutonAlbum" > |
| 86 | <a href="index.php?page=discographie&action=edition" > | 87 | <a href="index.php?page=discographie&action=edition" > |
| 87 | Nouvel album | 88 | <span>Nouvel album</span> |
| 88 | </a> | 89 | </a> |
| 89 | </p> | 90 | </p> |
| 90 | </article> | 91 | </article> |
| @@ -151,6 +152,10 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
| 151 | <a href="index.php?<?= $lienBoutonModif[$i] ?>" > | 152 | <a href="index.php?<?= $lienBoutonModif[$i] ?>" > |
| 152 | <img src="public/icone_modifier.png" > | 153 | <img src="public/icone_modifier.png" > |
| 153 | </a> | 154 | </a> |
| 155 | <a href="index.php?page=<?= $page ?>&action=monter&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>&position=<?= $Albums->fileList[$i]['position'] ?>#<?= $Albums->fileList[$i]['fileCode'] ?>" > | ||
| 156 | <img src="public/icone_monter.png" ></a> | ||
| 157 | <a href="index.php?page=<?= $page ?>&action=descendre&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>&position=<?= $Albums->fileList[$i]['position'] ?>#<?= $Albums->fileList[$i]['fileCode'] ?>" > | ||
| 158 | <img src="public/icone_descendre.png" ></a> | ||
| 154 | <a href="index.php?page=discographie&action=suppression&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" > | 159 | <a href="index.php?page=discographie&action=suppression&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" > |
| 155 | <img src="public/icone_supprimer.png" > | 160 | <img src="public/icone_supprimer.png" > |
| 156 | </a> | 161 | </a> |
diff --git a/view/pageArticlesSimples.php b/view/pageArticlesSimples.php index 34f5dca..95f8c46 100644 --- a/view/pageArticlesSimples.php +++ b/view/pageArticlesSimples.php | |||
| @@ -39,9 +39,9 @@ $js = ob_get_clean(); | |||
| 39 | // message lecteur multimedia | 39 | // message lecteur multimedia |
| 40 | if($page == 'archives') | 40 | if($page == 'archives') |
| 41 | { | 41 | { |
| 42 | $explications = '<p > | 42 | $explications = '<p style="padding: 3px 3px 0 3px; background-color: white;"> |
| 43 | <img style="float: right;" src="public/header_images/logo_real.png" /> | 43 | <img style="float: right;" src="public/header_images/logo_real.png" /> |
| 44 | Certains liens vidéos nécessitent le lecteur <a href="https://www.real.com" target="_blank" >Real Media</a> (windows, android et iOS) pour être lus.</p> | 44 | Certains liens vidéos nécessitent le lecteur <a href="https://www.real.com" target="_blank" >Real Player</a> (windows, android et iOS) pour être lus.</p> |
| 45 | <p> | 45 | <p> |
| 46 | <img style="float: left;" src="public/header_images/logo_vlc.png" /> | 46 | <img style="float: left;" src="public/header_images/logo_vlc.png" /> |
| 47 | Vous pouvez aussi utiliser le<br/><a href="https://www.videolan.org/vlc/" target="_blank" >lecteur VLC.</a></p>'; | 47 | Vous pouvez aussi utiliser le<br/><a href="https://www.videolan.org/vlc/" target="_blank" >lecteur VLC.</a></p>'; |
diff --git a/view/password.php b/view/password.php index a72766e..93cae95 100644 --- a/view/password.php +++ b/view/password.php | |||
| @@ -78,7 +78,7 @@ ob_start(); | |||
| 78 | <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> | 78 | <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> |
| 79 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > | 79 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > |
| 80 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css"> | 80 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css"> |
| 81 | <link rel="stylesheet" type="text/css" href="public/css/accueil.css" /> | 81 | <link rel="stylesheet" type="text/css" href="public/css/main.css" /> |
| 82 | <script type="text/javascript" src="public/main.js" ></script> | 82 | <script type="text/javascript" src="public/main.js" ></script> |
| 83 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | 83 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| 84 | </head> | 84 | </head> |
diff --git a/view/template.php b/view/template.php index 7fafbbb..b86a41c 100644 --- a/view/template.php +++ b/view/template.php | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | <!-- <link rel="shortcut icon" type="image/x-icon" href="public/favicon.ico" /> --> | 11 | <!-- <link rel="shortcut icon" type="image/x-icon" href="public/favicon.ico" /> --> |
| 12 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > | 12 | <link rel="icon" type="image/png" href="public/mouette-logo.png" > |
| 13 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css"> | 13 | <link rel="stylesheet" type="text/css" href="public/css/normalize.css"> |
| 14 | <link rel="stylesheet" type="text/css" href="public/css/accueil.css" /> | 14 | <link rel="stylesheet" type="text/css" href="public/css/main.css" /> |
| 15 | <?php | 15 | <?php |
| 16 | if(isset($css)) // fichiers CSS supplémentaires | 16 | if(isset($css)) // fichiers CSS supplémentaires |
| 17 | { | 17 | { |
