From 10a739773c4f2911876bc802a0ee0537c3e00a92 Mon Sep 17 00:00:00 2001 From: slawkens Date: Tue, 9 Jul 2024 21:29:42 +0200 Subject: [PATCH] Detect tools/ext exists on install to prevent broken installs --- install/steps/3-requirements.php | 17 ++++++++++++++--- system/locale/de/install.php | 4 ++++ system/locale/en/install.php | 4 ++++ system/locale/pl/install.php | 4 ++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/install/steps/3-requirements.php b/install/steps/3-requirements.php index 659e3036b6..65281248a6 100644 --- a/install/steps/3-requirements.php +++ b/install/steps/3-requirements.php @@ -2,10 +2,15 @@ defined('MYAAC') or die('Direct access not allowed!'); // configuration -$dirs_required = [ +$dirs_required_writable = [ 'system/logs', 'system/cache', ]; + +$dirs_required = [ + 'tools/ext' => $locale['step_requirements_folder_not_exists_tools_ext'], +]; + $dirs_optional = [ GUILD_IMAGES_DIR => $locale['step_requirements_warning_images_guilds'], GALLERY_DIR => $locale['step_requirements_warning_images_gallery'], @@ -18,6 +23,7 @@ 'gd' => $locale['step_requirements_warning_player_signatures'], 'zip' => $locale['step_requirements_warning_install_plugins'], ]; + /* * * @param string $name @@ -41,7 +47,7 @@ function version_check($name, $ok, $info = '', $warning = false) // start validating version_check($locale['step_requirements_php_version'], (PHP_VERSION_ID >= 50500), PHP_VERSION); -foreach ($dirs_required as $value) +foreach ($dirs_required_writable as $value) { $is_writable = is_writable(BASE . $value) && (MYAAC_OS != 'WINDOWS' || win_is_writable(BASE . $value)); version_check($locale['step_requirements_write_perms'] . ': ' . $value, $is_writable); @@ -52,6 +58,12 @@ function version_check($name, $ok, $info = '', $warning = false) version_check($locale['step_requirements_write_perms'] . ': ' . $dir, $is_writable, $is_writable ? '' : $errorMsg, true); } +foreach ($dirs_required as $dir => $errorMsg) +{ + $exists = is_dir(BASE . $dir); + version_check($locale['step_requirements_folder_exists'] . ': ' . $dir, $exists, $exists ? '' : $errorMsg); +} + $ini_register_globals = ini_get_bool('register_globals'); version_check('register_long_arrays', !$ini_register_globals, $ini_register_globals ? $locale['on'] : $locale['off']); @@ -78,4 +90,3 @@ function version_check($name, $ok, $info = '', $warning = false) } echo ''; -?> diff --git a/system/locale/de/install.php b/system/locale/de/install.php index 85be3b16ef..ad3546096c 100644 --- a/system/locale/de/install.php +++ b/system/locale/de/install.php @@ -36,6 +36,10 @@ $locale['step_requirements_title'] = 'Anforderungen überprüfen'; $locale['step_requirements_php_version'] = 'PHP Version'; $locale['step_requirements_write_perms'] = 'Schreibberechtigungen'; +$locale['step_requirements_folder_exists'] = 'Ordner ist vorhanden'; +$locale['step_requirements_folder_not_exists_tools_ext'] = 'NPM Package Manager wird verwendet für externe JavaScript/CSS Bibliotheken.' + . ' Es sollte via Command Line installiert werden: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm' + . ' Nachdem das Tool installiert wurde, folgende Befehl sollte ausgeführt in dem Hauptordner des MyAACs: "npm install".'; $locale['step_requirements_failed'] = 'Die Installation wird deaktiviert, bis diese Anforderungen erfüllt sind.
Für weitere Informationen siehe README Datei.'; $locale['step_requirements_extension'] = '$EXTENSION$ PHP Erweiterung'; diff --git a/system/locale/en/install.php b/system/locale/en/install.php index 3de8589667..e25537c9d6 100644 --- a/system/locale/en/install.php +++ b/system/locale/en/install.php @@ -36,6 +36,10 @@ $locale['step_requirements_title'] = 'Requirements check'; $locale['step_requirements_php_version'] = 'PHP Version'; $locale['step_requirements_write_perms'] = 'Write permissions'; +$locale['step_requirements_folder_exists'] = 'Directory exists'; +$locale['step_requirements_folder_not_exists_tools_ext'] = 'NPM Package Manager is used for external JavaScript/CSS libraries.' + . ' You need to install it through Command Line: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm' + . ' When you done with installing that tool, execute: "npm install" in the main MyAAC folder.'; $locale['step_requirements_failed'] = 'Installation will be disabled until these requirements will be passed.
For more informations see README file.'; $locale['step_requirements_extension'] = '$EXTENSION$ PHP extension'; $locale['step_requirements_warning_images_guilds'] = 'Guild logo upload will not work'; diff --git a/system/locale/pl/install.php b/system/locale/pl/install.php index 1afb2ddd6a..22204adf60 100644 --- a/system/locale/pl/install.php +++ b/system/locale/pl/install.php @@ -36,6 +36,10 @@ $locale['step_requirements_title'] = 'Sprawdzanie wymagań'; $locale['step_requirements_php_version'] = 'Wersja PHP'; $locale['step_requirements_write_perms'] = 'Uprawnienia do zapisu'; +$locale['step_requirements_folder_exists'] = 'Folder istnieje'; +$locale['step_requirements_folder_not_exists_tools_ext'] = 'Manadżer Pakietów NPM jest używany do zewnętrznych bibliotek JavaScript/CSS.' + . ' Trzeba go zainstalować poprzez wiersz poleceń: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm' + . ' Po instalacji narzędzia, wywołaj następujące polecenie w głownym katalogu MyAAC: "npm install".'; $locale['step_requirements_failed'] = 'Instalacja zostanie zablokowana dopóki te wymagania nie zostaną spełnione.
Po więcej informacji zasięgnij do pliku README.'; $locale['step_requirements_extension'] = 'Rozszerzenie PHP - $EXTENSION$'; $locale['step_requirements_warning_images_guilds'] = 'Nie będzie możliwości uploadu obrazków gildii';