From cbdbc2922414684860070398758a937a1565a5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Mon, 27 Jan 2025 18:43:35 +0100 Subject: [PATCH] =?UTF-8?q?Formatage=20du=20message=20d'erreur=20d'erreur?= =?UTF-8?q?=20de=20d=C3=A9marrage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/include/checkup.php | 64 ++++++++++++++++++++++--------- core/layout/error.css | 22 +++++++++++ core/vendor/zwiico/png/error.png | Bin 0 -> 9840 bytes 3 files changed, 68 insertions(+), 18 deletions(-) create mode 100644 core/layout/error.css create mode 100644 core/vendor/zwiico/png/error.png diff --git a/core/include/checkup.php b/core/include/checkup.php index dadefb98..54cc4253 100644 --- a/core/include/checkup.php +++ b/core/include/checkup.php @@ -3,26 +3,23 @@ /** * Vérification de la version de PHP */ - -if(version_compare(PHP_VERSION, '7.2.0', '<') ) { - exit('PHP 7.2+ mini requis - PHP 7.2+ mini required'); - +if (version_compare(PHP_VERSION, '7.2.0', '<')) { + displayErrorPage('PHP 7.2+ mini requis - PHP 7.2+ mini required'); } -if ( version_compare(PHP_VERSION, '8.4.999', '>') ) { - exit('PHP 8.3 pas encore supporté, installez PHP 7.n ou PHP 8.1.n - PHP 8.3 not yet supported, install PHP 7.n or PHP 8.1.n'); +if (version_compare(PHP_VERSION, '8.3.999', '>')) { + displayErrorPage('PHP 8.3 pas encore supporté, installez PHP 7.n ou PHP 8.1.n - PHP 8.3 not yet supported, install PHP 7.n or PHP 8.1.n'); } /** * Check les modules installés */ - $e = [ 'gd', 'json', 'date', 'mbstring', - 'zip', + 'zip', 'intl', 'exif', 'Phar', @@ -31,26 +28,57 @@ $e = [ ]; $m = get_loaded_extensions(); $b = false; +$missingModules = []; foreach ($e as $k => $v) { - if (array_search($v,$m) === false) { + if (array_search($v, $m) === false) { $b = true; - echo '

Module PHP : ' . $v . ' manquant - Module PHP ' . $v . ' missing.

'; + $missingModules[] = $v; } } -if ($b) - exit('

ZwiiCMS ne peut pas démarrer ; activez les extensions requises dans PHP.ini- ZwiiCMS cannot start, enabled PHP missing extensions into PHP.ini

'); -/** - * Contrôle les htacess - */ +if ($b) { + $errorMessage = 'ZwiiCMS ne peut pas démarrer ; les modules PHP suivants sont manquants : ' . implode(', ', $missingModules) . '
'; + $errorMessage .= 'ZwiiCMS cannot start, the following PHP modules are missing: ' . implode(', ', $missingModules); + displayErrorPage($errorMessage); +} +/** + * Contrôle les htaccess + */ $d = [ '', 'site/data/', 'site/backup/', 'site/tmp/', - // 'site/i18n/', pas contrôler pour éviter les pbs de mise à jour + // 'site/i18n/', pas contrôler pour éviter les pbs de mise à jour ]; foreach ($d as $key) { - if (file_exists($key . '.htaccess') === false) - exit('
ZwiiCMS ne peut pas démarrer, le fichier ' .$key . '.htaccess est manquant.
ZwiiCMS cannot start, file ' . $key . '.htaccess is missing.
' ); + if (file_exists($key . '.htaccess') === false) { + $errorMessage = 'ZwiiCMS ne peut pas démarrer, le fichier ' . $key . '.htaccess est manquant.
'; + $errorMessage .= 'ZwiiCMS cannot start, file ' . $key . '.htaccess is missing.'; + displayErrorPage($errorMessage); + } +} + + +/** + * Fonction pour afficher une page d'erreur stylisée + */ +function displayErrorPage($message) +{ + echo ' + + + + + Erreur - ZwiiCMS + + + +
+

Erreur

+

' . $message . '

+
+ +'; + exit; } diff --git a/core/layout/error.css b/core/layout/error.css new file mode 100644 index 00000000..1129f7ae --- /dev/null +++ b/core/layout/error.css @@ -0,0 +1,22 @@ +body { + color: #000; + font: 75%/1.7em "Helvetica Neue", Helvetica, arial, sans-serif; + margin: 0; + padding: 80px; + background: url('../vendor/zwiico/png/error.png') 30px 30px no-repeat #fff; +} + +h1 { + font-weight: bold; + color: #000; + font-size: 300%; + margin: 20px 0; + padding: 0; +} + +p { + margin: 10px 0; + color: #777; + font-size: 16px; + line-height: 1.6; +} \ No newline at end of file diff --git a/core/vendor/zwiico/png/error.png b/core/vendor/zwiico/png/error.png new file mode 100644 index 0000000000000000000000000000000000000000..777e541ab400c96b5f930ba636fbd2305b844f24 GIT binary patch literal 9840 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 Wuu5wofP|A?1ymF@;AQgWf&UMNx*(DO literal 0 HcmV?d00001