From f331b3ab14f2b404c2089607aba2e2d434cd510d Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 10 Mar 2022 03:12:58 +0100 Subject: fichiers index.php --- config.php | 36 --------------- controller/Security.php | 6 +-- controller/backup.php | 70 ++++++++++++++++------------- controller/ckeditor.php | 40 ++++++++++++----- controller/installation.php | 38 +++++++++------- dependances.php | 67 +++++++++++++++++++++++++++ index.php | 2 +- lib/ckeditor5/build/index.html | 0 lib/ckeditor5/build/index.php | 3 ++ lib/ckeditor5/build/translations/index.html | 0 lib/ckeditor5/build/translations/index.php | 3 ++ lib/ckeditor5/index.html | 0 lib/ckeditor5/index.php | 3 ++ lib/ckeditor5/src/index.html | 0 lib/ckeditor5/src/index.php | 3 ++ lib/index.html | 0 lib/index.php | 3 ++ model/Image.php | 3 -- public/accueil/index.html | 0 public/accueil/index.php | 3 ++ public/css/accueil.css | 14 ++++-- public/css/index.html | 0 public/css/index.php | 3 ++ public/fonts/index.html | 0 public/fonts/index.php | 3 ++ public/header_images/index.html | 0 public/header_images/index.php | 3 ++ public/index.html | 0 public/index.php | 3 ++ public/main.js | 21 +++++++-- public/menu/index.html | 0 public/menu/index.php | 3 ++ view/menu.php | 2 - view/template.php | 20 ++++++++- "\303\240 faire apr\303\250s livraison.txt" | 16 ++++--- 35 files changed, 252 insertions(+), 116 deletions(-) delete mode 100644 config.php create mode 100644 dependances.php delete mode 100644 lib/ckeditor5/build/index.html create mode 100644 lib/ckeditor5/build/index.php delete mode 100644 lib/ckeditor5/build/translations/index.html create mode 100644 lib/ckeditor5/build/translations/index.php delete mode 100644 lib/ckeditor5/index.html create mode 100644 lib/ckeditor5/index.php delete mode 100644 lib/ckeditor5/src/index.html create mode 100644 lib/ckeditor5/src/index.php delete mode 100644 lib/index.html create mode 100644 lib/index.php delete mode 100644 public/accueil/index.html create mode 100644 public/accueil/index.php delete mode 100644 public/css/index.html create mode 100644 public/css/index.php delete mode 100644 public/fonts/index.html create mode 100644 public/fonts/index.php delete mode 100644 public/header_images/index.html create mode 100644 public/header_images/index.php delete mode 100644 public/index.html create mode 100644 public/index.php delete mode 100644 public/menu/index.html create mode 100644 public/menu/index.php diff --git a/config.php b/config.php deleted file mode 100644 index 946763a..0000000 --- a/config.php +++ /dev/null @@ -1,36 +0,0 @@ -open($nomFichier, ZipArchive::RDONLY) === TRUE) - { - $j = 0; - for($i = 0; $i < $Zip->numFiles; $i++) + // extraction + try + { + $Zip = new ZipArchive(); + } + catch (Throwable $e) // l'extension zip n'est pas activée { - $nomEntree = $Zip->getNameIndex($i); - if($Zip->extractTo('.', $nomEntree) === TRUE) + echo($e); + die(); + } + if($Zip->open($nomFichier, ZipArchive::RDONLY) === TRUE) + { + $j = 0; + for($i = 0; $i < $Zip->numFiles; $i++) { - $j++; + $nomEntree = $Zip->getNameIndex($i); + if($Zip->extractTo('.', $nomEntree) === TRUE) + { + $j++; + } + else + { + $message = '

Erreur: extraction du zip impossible.

'; + } + chmod($nomEntree, 0666); } - else + + if($j == $Zip->numFiles) { - $message = '

Erreur: extraction du zip impossible.

'; + $message = '

Restauration réussie !!

'; } - chmod($nomEntree, 0666); + $Zip->close(); } - - if($j == $Zip->numFiles) + else { - $message = '

Restauration réussie !!

'; + // mauvais fichier + $message = '

Erreur: Impossible d\'ouvrir l\'archive Zip."

'; } - $Zip->close(); } else { - // mauvais fichier - $message = '

Erreur: Impossible d\'ouvrir l\'archive Zip."

'; + // pas de module zip + $message = '

Erreur: Veuillez activer l\'extension zip dans le php.ini pour pouvoir gérer les sauvegardes.

'; } } elseif(isset($_FILES['archive']) && $_FILES['archive']['error'] != 0) diff --git a/controller/ckeditor.php b/controller/ckeditor.php index 4b4297a..d6ea8ad 100644 --- a/controller/ckeditor.php +++ b/controller/ckeditor.php @@ -47,6 +47,9 @@ function submitCKeditor() if(isset($_POST['contenu'])) // optionnel pour discographie { $contenu = Security::secureString($_POST['contenu']); + + // liens sans http:// devant + $contenu = fixLinks($contenu); // récupérer les liens multimedia //require("media.php"); @@ -142,14 +145,29 @@ function submitCKeditor() // lien sans http:// -// un clic sur un lien dans l'éditeur affiche une infobulle montrant l'adresse cible du lien si celle-ci a déjà été précisée -// il est possible de cliquer sur ce lien, ce qui ouvre un onglet avec le site demandé -// toutefois si cette adresse est de type "domaine.fr" (sans http:// devant), le navigateur ne va pas rechercher un site mais un fichier comme si mon adresse était de type file:///fichier -// tomber ainsi sur une page d'erreur est déroutant: -// "ai-je perdu le texte que j'étais en train de taper?"" -// solution 1 (mauvaise): activer la redirection en cas d'erreur 404 dans le .htaccess -// solution 2 (façon pop-up): fermer ce nouvel onglet avec echo ''; -// pour faire passer par le .htaccess l'info comme quoi la page précédente comportait un éditeur ouvert... - -function cleanHTML($contenu) -{} +// si une adresse est de type "domaine.fr" sans le http:// devant, le comportement des navigateurs est de rechercher un fichier comme si mon adresse commençait par file:// +// tomber ainsi sur une page d'erreur est parfaitement déroutant +// une erreur 404 est détectée et le visiteur redirigé, mais ça ne règle pas le problème +// 2ème problème, en train d'écrire un article, l'utilisateur clique sur ce lien qu'il vient de créer et qui apparaît dans l'infobulle, un nouvelle onglet apparaît +// solution: fermer ce nouvel onglet avec echo ''; +// le .htaccess doit pour ça détecter que l'erreur 404 est particulière + +function fixLinks($data) +{ + // regex pour détecter les balises , analyser les liens à l'interieur et les modifier si nécessaire + $pattern = '#.*#'; + + if(preg_match($pattern, $data)) + {} + + //$remplacement = 'http://$0'; + //$data = preg_replace($pattern, $remplacement, $data); + + // contrairement à ce qui dit la doc + // https://www.php.net/manual/fr/filter.filters.validate.php + // une adresse du type "domaine.fr" ne passe pas le filtre + // il renvoie false, ce qui nous arrange ici! + //var_dump(filter_var($link, FILTER_VALIDATE_URL)); + + return($data); +} diff --git a/controller/installation.php b/controller/installation.php index e8b1af8..0bd56c2 100644 --- a/controller/installation.php +++ b/controller/installation.php @@ -68,10 +68,19 @@ function installation() require('view/backup.php'); exit(); } - if(!file_exists('data/index.html')) + + function createIndexPHP($path, $droitsFichiers) + { + $content = "alert(\'Erreur: Une de ces extensions de PHP est nécessaire: imagemagick ou GD. Veuillez activer une des deux dans le fichier php.ini ou installer le paquet php-imagick ou php-gd.\');'); +} + +// format des sauvegardes à la création +if(extension_loaded("zip")) +{ + $archiveFormat = 'zip'; +} +else +{ + echo(''); +} + + +// bout de code à déplacer dans controller/backup.php +// taille max des fichiers dans le php.ini (défaut = 2M) +$maxWeight = ini_get('upload_max_filesize'); + +// on utilisera cette valeur dans "main.js" pour envoyer +// les fichiers un par un quand un zip est trop grand + +// conversion des mégas en octets +/*function return_bytes ($size_str) +{ + switch (substr ($size_str, -1)) + { + case 'M': case 'm': return (int)$size_str * 1048576; + case 'K': case 'k': return (int)$size_str * 1024; + case 'G': case 'g': return (int)$size_str * 1073741824; + default: return $size_str; + } +}*/ +/*$maxWeight = return_bytes(ini_get('upload_max_filesize'));*/ diff --git a/index.php b/index.php index ea50afe..008e4a2 100644 --- a/index.php +++ b/index.php @@ -15,7 +15,7 @@ if(!empty($_SESSION['erreur'])) } // fichier destiné à l'utilisateur -require('config.php'); +require('dependances.php'); // au premier démarrage du site // l'explication des éventuels problèmes de droits en lecture/écriture est à chercher ici: diff --git a/lib/ckeditor5/build/index.html b/lib/ckeditor5/build/index.html deleted file mode 100644 index e69de29..0000000 diff --git a/lib/ckeditor5/build/index.php b/lib/ckeditor5/build/index.php new file mode 100644 index 0000000..f67f1d7 --- /dev/null +++ b/lib/ckeditor5/build/index.php @@ -0,0 +1,3 @@ +path . $_FILES['upload']['name'])); diff --git a/public/accueil/index.html b/public/accueil/index.html deleted file mode 100644 index e69de29..0000000 diff --git a/public/accueil/index.php b/public/accueil/index.php new file mode 100644 index 0000000..f67f1d7 --- /dev/null +++ b/public/accueil/index.php @@ -0,0 +1,3 @@ + -
-
@@ -87,6 +87,24 @@ if($_SESSION['admin'] == 1)
+ + diff --git "a/\303\240 faire apr\303\250s livraison.txt" "b/\303\240 faire apr\303\250s livraison.txt" index f42f6f1..b8de449 100644 --- "a/\303\240 faire apr\303\250s livraison.txt" +++ "b/\303\240 faire apr\303\250s livraison.txt" @@ -1,12 +1,20 @@ +rassembler les pages +presse (fille qui tombe) dans melaine +ateliers (cheval) dans archives (blonde) +remplacer concerts (sirene) par "écouter" +une page mentions légales (dans fille qui tombe ou cheval) + liens sans http dans l'éditeur -dans installation.php, utiliser la racine dans config.php pour adapter le .htaccess +dans installation.php, utiliser la racine dans config.php pour adapter le .htaccess (si c'est possible) réduire les droits des dossiers bouton pour remonter: remplacer le lien par du JS pour ne pas recharger la page -captcha dans password.php +captcha dans password.php? + +sauvegardes automatiques Zoom sur images (articles) @@ -39,7 +47,7 @@ pagination + AJAX système d'onglets avec AJAX: changement de page sans recharger -plugin autosave +plugin autosave de l'éditeur Editeur "inline" ou "balloon block" @@ -85,5 +93,3 @@ Version avec base de données Site bilingue (nécessite la base de données) Editeur tout AJAX (pas juste les images) - -Utilisation de l'éditeur sans recharger la page (en -- cgit v1.2.3