summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-01-13 00:44:49 +0100
committerpolo <ordipolo@gmx.fr>2025-01-13 00:44:49 +0100
commite9a5da044f63851aa37d401ef37c8102b08ae274 (patch)
tree12ebf8a0aefd7a63d6d7dcbe4ad7d74e6ee3bb92
parent0023ec83932beddb0f1c604f3c210189113c9b7a (diff)
downloadckeditor5-e9a5da044f63851aa37d401ef37c8102b08ae274.zip
chemins changés, dossier integration
-rw-r--r--index.php36
-rw-r--r--lib/ckeditor5/create.php16
-rw-r--r--src/integration/ckeditor5/article_hors_editeur.css (renamed from lib/ckeditor5/article_hors_editeur.css)0
-rw-r--r--src/integration/ckeditor5/clean_html.php (renamed from lib/ckeditor5/clean_html.php)34
-rw-r--r--src/integration/ckeditor5/config.php (renamed from config.php)5
-rw-r--r--src/integration/ckeditor5/create.php18
-rw-r--r--src/integration/ckeditor5/image_upload.php (renamed from lib/ckeditor5/image_upload.php)8
-rw-r--r--src/integration/ckeditor5/init.php13
-rw-r--r--src/integration/ckeditor5/view.php (renamed from lib/ckeditor5/view.php)2
-rw-r--r--src/view/templates/page.php (renamed from src/templates/page.php)2
10 files changed, 72 insertions, 62 deletions
diff --git a/index.php b/index.php
index bee8f37..9beed23 100644
--- a/index.php
+++ b/index.php
@@ -1,25 +1,23 @@
1<?php 1<?php
2// index.php 2// index.php
3//
4// routeur
5 3
6require 'config.php'; 4require 'src/integration/ckeditor5/config.php';
5require 'src/integration/ckeditor5/init.php';
6makeTranslationSymLink();
7 7
8// lien symbolique des "translations"
9$target = '../translations';
10$link = 'node_modules/ckeditor5/dist/browser/translations';
11if (!file_exists($link))
12{
13 symlink($target, $link);
14}
15 8
9// routage
10
11// upload images AJAX
16if(isset($_GET['action']) && $_GET['action'] === 'upload_image') // image insérée dans l'éditeur => requête AJAX 12if(isset($_GET['action']) && $_GET['action'] === 'upload_image') // image insérée dans l'éditeur => requête AJAX
17{ 13{
18 require 'lib/ckeditor5/image_upload.php'; 14 require $ckeditor_integration_path . 'image_upload.php';
19} 15}
16
17// submit normal
20elseif(isset($_GET['action']) && $_GET['action'] === 'submit') // HTML envoyé par l'éditeur 18elseif(isset($_GET['action']) && $_GET['action'] === 'submit') // HTML envoyé par l'éditeur
21{ 19{
22 require 'lib/ckeditor5/clean_html.php'; 20 require $ckeditor_integration_path . 'clean_html.php';
23 $html_from_editor = getAndCleanEditorOutput(); // manipule $_POST['contenu']; 21 $html_from_editor = getAndCleanEditorOutput(); // manipule $_POST['contenu'];
24 22
25 // enregistrement des données 23 // enregistrement des données
@@ -29,9 +27,11 @@ elseif(isset($_GET['action']) && $_GET['action'] === 'submit') // HTML envoyé p
29 header('Location: ' . $previous_page); 27 header('Location: ' . $previous_page);
30 die; 28 die;
31} 29}
32elseif(isset($_GET['page']) && $_GET['page'] === 'editor') // ouvrir l'éditeur 30
31// ouvrir l'éditeur
32elseif(isset($_GET['page']) && $_GET['page'] === 'editor')
33{ 33{
34 require 'lib/ckeditor5/create.php'; 34 require $ckeditor_integration_path . 'create.php';
35} 35}
36else // $previous_page, affichage sans l'article 36else // $previous_page, affichage sans l'article
37{ 37{
@@ -43,8 +43,8 @@ else // $previous_page, affichage sans l'article
43 elseif($storage === 'files') 43 elseif($storage === 'files')
44 { 44 {
45 $texte = file_get_contents('data/' . $page . '/html/' . $nom_article . '.html'); 45 $texte = file_get_contents('data/' . $page . '/html/' . $nom_article . '.html');
46 $texte = trim(addcslashes($texte, "'")); // échappe seulement les simples quotes 46 //$texte = trim(addcslashes($texte, "'")); // échappe seulement les simples quotes
47 //$texte = trim($texte); 47 $texte = trim($texte);
48 } 48 }
49 49
50 // vue 50 // vue
@@ -54,6 +54,4 @@ else // $previous_page, affichage sans l'article
54} 54}
55 55
56// vue 56// vue
57require 'src/templates/page.php'; 57require 'src/view/templates/page.php';
58
59// fin du script
diff --git a/lib/ckeditor5/create.php b/lib/ckeditor5/create.php
deleted file mode 100644
index d62f893..0000000
--- a/lib/ckeditor5/create.php
+++ /dev/null
@@ -1,16 +0,0 @@
1<?php
2// lib/ckeditor5/create.php
3
4// modèle
5if($storage === 'database')
6{}
7elseif($storage === 'files')
8{
9 // modèle
10 $texte = file_get_contents('data/' . $page . '/html/' . $nom_article . '.html');
11 $texte = trim(addcslashes($texte, "'")); // échappe seulement les simples quotes
12}
13
14// vue
15require 'lib/ckeditor5/view.php'; // html + JS
16$contenu = $editeurHTML;
diff --git a/lib/ckeditor5/article_hors_editeur.css b/src/integration/ckeditor5/article_hors_editeur.css
index a38b384..a38b384 100644
--- a/lib/ckeditor5/article_hors_editeur.css
+++ b/src/integration/ckeditor5/article_hors_editeur.css
diff --git a/lib/ckeditor5/clean_html.php b/src/integration/ckeditor5/clean_html.php
index 5d00532..e56f49c 100644
--- a/lib/ckeditor5/clean_html.php
+++ b/src/integration/ckeditor5/clean_html.php
@@ -1,20 +1,12 @@
1<?php 1<?php
2// lib/ckeditor5/clean_html.php 2// src/integration/ckeditor5/clean_html.php
3 3
4function getAndCleanEditorOutput(): string 4function getAndCleanEditorOutput(): string
5{ 5{
6 // bugs possibles sans trim() lorsqu'on insère le HTML dans l'éditeur 6 // bugs possibles sans trim() lorsqu'on insère le HTML dans l'éditeur
7 $html = trim($_POST["contenu"]); 7 $html = trim($_POST["contenu"]);
8 8
9 9 //checkContentInFile($html, 'avant');
10 // pour debugguer ou tester des paramètres avec htmlawed
11
12 //~ $nom_fichier = "avant.html";
13 //~ $fichier = fopen('data/' . $page . '/' . $nom_fichier, 'w'); // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu
14 //~ fputs($fichier, $html);
15 //~ fclose($fichier);
16 //~ chmod('data/' . $page . '/' . $nom_fichier, 0666);
17
18 10
19 // sécurisation du HTML (faille XSS) 11 // sécurisation du HTML (faille XSS)
20 require 'vendor/htmlawed/htmlawed/htmLawed.php'; 12 require 'vendor/htmlawed/htmlawed/htmLawed.php';
@@ -31,16 +23,18 @@ function getAndCleanEditorOutput(): string
31 $specHtmLawed = ''; // optionnel: faire qu'un certain élément puisse n'avoir que certains attributs 23 $specHtmLawed = ''; // optionnel: faire qu'un certain élément puisse n'avoir que certains attributs
32 $html = htmLawed($html, $configHtmLawed, $specHtmLawed); 24 $html = htmLawed($html, $configHtmLawed, $specHtmLawed);
33 25
26 //checkContentInFile($html, 'après');
34 27
35 //~ $nom_fichier = "après.html"; 28 return $html;
36 //~ $fichier = fopen('data/' . $page . '/' . $nom_fichier, 'w'); // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu
37 //~ fputs($fichier, $html);
38 //~ fclose($fichier);
39 //~ chmod('data/' . $page . '/' . $nom_fichier, 0666);
40
41
42 return $html;
43} 29}
44 30
45 31
46 32function checkContentInFile($html, $file_name)
33{
34 $page = 'page';
35 $nom_fichier = $file_name . ".html";
36 $fichier = fopen('data/' . $page . '/' . $nom_fichier, 'w'); // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu
37 fputs($fichier, $html);
38 fclose($fichier);
39 chmod('data/' . $page . '/' . $nom_fichier, 0666);
40} \ No newline at end of file
diff --git a/config.php b/src/integration/ckeditor5/config.php
index 43e8523..822884f 100644
--- a/config.php
+++ b/src/integration/ckeditor5/config.php
@@ -1,5 +1,8 @@
1<?php 1<?php
2// config.php 2// src/integration/ckeditor5/config.php
3
4$ckeditor_integration_path = 'src/integration/ckeditor5/';
5$css_hors_editeur = '<link rel="stylesheet" href="' . $ckeditor_integration_path . 'article_hors_editeur.css" />';
3 6
4$server_root = $_SERVER['SERVER_NAME'] . '/ckeditor5/'; 7$server_root = $_SERVER['SERVER_NAME'] . '/ckeditor5/';
5// pour l'importmap: j'ai modifié la version "installation avec CDN de la doc pour utiliser les fichiers locaux 8// pour l'importmap: j'ai modifié la version "installation avec CDN de la doc pour utiliser les fichiers locaux
diff --git a/src/integration/ckeditor5/create.php b/src/integration/ckeditor5/create.php
new file mode 100644
index 0000000..863c420
--- /dev/null
+++ b/src/integration/ckeditor5/create.php
@@ -0,0 +1,18 @@
1<?php
2// src/integration/ckeditor5/create.php
3
4// modèle
5if($storage === 'database')
6{}
7elseif($storage === 'files')
8{
9 // modèle
10 $texte = file_get_contents('data/' . $page . '/html/' . $nom_article . '.html');
11
12 $texte = trim(addcslashes($texte, "'")); // échapper les simples quotes pour javascript
13 //$texte = trim(addslashes($texte)); // échappe ', ", \ et NULL, je sais pas si c'est bien
14}
15
16// vue
17require $ckeditor_integration_path . 'view.php'; // html + JS
18$contenu = $editeurHTML;
diff --git a/lib/ckeditor5/image_upload.php b/src/integration/ckeditor5/image_upload.php
index 607be1b..9090ddf 100644
--- a/lib/ckeditor5/image_upload.php
+++ b/src/integration/ckeditor5/image_upload.php
@@ -1,5 +1,5 @@
1<?php 1<?php
2// lib/ckeditor5/image_upload.php 2// src/integration/ckeditor5/image_upload.php
3 3
4// script récupérant les images téléchargée en AJAX par l'éditeur et c'est tout 4// script récupérant les images téléchargée en AJAX par l'éditeur et c'est tout
5// on récupère les données, on renvoie au navigateur la réponse qu'il attend et stop! 5// on récupère les données, on renvoie au navigateur la réponse qu'il attend et stop!
@@ -55,10 +55,10 @@ else
55if(empty($erreur)) 55if(empty($erreur))
56{ 56{
57 $chemin = '{"url": "data/' . $page . '/images/' . $_FILES['upload']['name'] . '"}'; 57 $chemin = '{"url": "data/' . $page . '/images/' . $_FILES['upload']['name'] . '"}';
58 echo $chemin; 58 echo $chemin;
59} 59}
60else 60else
61{ 61{
62 echo $erreur; 62 echo $erreur;
63} 63}
64die; 64die;
diff --git a/src/integration/ckeditor5/init.php b/src/integration/ckeditor5/init.php
new file mode 100644
index 0000000..4d77cba
--- /dev/null
+++ b/src/integration/ckeditor5/init.php
@@ -0,0 +1,13 @@
1<?php
2// src/integration/ckeditor5/init.php
3
4// lien symbolique des traductions
5function makeTranslationSymLink(): void
6{
7 $target = '../translations';
8 $link = 'node_modules/ckeditor5/dist/browser/translations';
9 if (!file_exists($link))
10 {
11 symlink($target, $link);
12 }
13}
diff --git a/lib/ckeditor5/view.php b/src/integration/ckeditor5/view.php
index e592a73..794e55f 100644
--- a/lib/ckeditor5/view.php
+++ b/src/integration/ckeditor5/view.php
@@ -1,5 +1,5 @@
1<?php 1<?php
2// lib/ckeditor5/view.php 2// src/integration/ckeditor5/view.php
3 3
4//$css_editeur = '<link rel="stylesheet" href="node_modules/ckeditor5/dist/ckeditor5.css" />'; // version normale aérée et commentée 4//$css_editeur = '<link rel="stylesheet" href="node_modules/ckeditor5/dist/ckeditor5.css" />'; // version normale aérée et commentée
5$css_editeur = '<link rel="stylesheet" href="node_modules/ckeditor5/dist/browser/ckeditor5.css" />'; // version "minifiée" 5$css_editeur = '<link rel="stylesheet" href="node_modules/ckeditor5/dist/browser/ckeditor5.css" />'; // version "minifiée"
diff --git a/src/templates/page.php b/src/view/templates/page.php
index 98e7979..3153ced 100644
--- a/src/templates/page.php
+++ b/src/view/templates/page.php
@@ -4,7 +4,7 @@
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <title></title> 5 <title></title>
6 <link rel="icon" type="image/png" href=""> 6 <link rel="icon" type="image/png" href="">
7 <link rel="stylesheet" href="lib/ckeditor5/article_hors_editeur.css" /> 7 <?= $css_hors_editeur ?>
8 <?= $css_editeur ?> 8 <?= $css_editeur ?>
9</head> 9</head>
10<body> 10<body>