diff --git a/app/modules/resources/classes/modules.php b/app/modules/resources/classes/modules.php index 8d6f14dd96..e774a01052 100644 --- a/app/modules/resources/classes/modules.php +++ b/app/modules/resources/classes/modules.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2019 + Portions created by the Initial Developer are Copyright (C) 2008-2024 the Initial Developer. All Rights Reserved. Contributor(s): @@ -799,7 +799,7 @@ if (!class_exists('modules')) { $xml .= " \n"; $xml .= ""; - if (is_writable($_SESSION['switch']['conf']['dir'].'/autoload_configs/modules.conf.xml')) { + if (!empty($_SESSION['switch']['conf']['dir']) && is_writable($_SESSION['switch']['conf']['dir'].'/autoload_configs/modules.conf.xml')) { $fout = fopen($_SESSION['switch']['conf']['dir']."/autoload_configs/modules.conf.xml","w"); fwrite($fout, $xml); unset($xml); diff --git a/app/recordings/app_config.php b/app/recordings/app_config.php index 4f20949887..58a93db5be 100644 --- a/app/recordings/app_config.php +++ b/app/recordings/app_config.php @@ -136,7 +136,7 @@ $apps[$x]['default_settings'][$y]['default_setting_category'] = "recordings"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "recording_password"; $apps[$x]['default_settings'][$y]['default_setting_name'] = "numeric"; - $apps[$x]['default_settings'][$y]['default_setting_value'] = generate_password((is_numeric($_SESSION['voicemail']['password_length']['numeric']) ? $_SESSION['voicemail']['password_length']['numeric'] : 8), 1); + $apps[$x]['default_settings'][$y]['default_setting_value'] = generate_password(!empty($_SESSION['voicemail']['password_length']['numeric']) && is_numeric($_SESSION['voicemail']['password_length']['numeric']) ? $_SESSION['voicemail']['password_length']['numeric'] : 8, 1); $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the password required to create a recording (overrides recordings dialplan)."; diff --git a/core/menu/menu_restore_default.php b/core/menu/menu_restore_default.php index 7ae406129e..ef46c1e998 100644 --- a/core/menu/menu_restore_default.php +++ b/core/menu/menu_restore_default.php @@ -61,7 +61,7 @@ //get the menu array and save it to the session $menu = new menu; - $menu->menu_uuid = $_SESSION['domain']['menu']['uuid']; + $menu->menu_uuid = $_SESSION['domain']['menu']['uuid'] ?? null; $_SESSION['menu']['array'] = $menu->menu_array(); unset($menu); diff --git a/core/upgrade/app_languages.php b/core/upgrade/app_languages.php index de3224bfee..cec6013ffd 100644 --- a/core/upgrade/app_languages.php +++ b/core/upgrade/app_languages.php @@ -225,6 +225,31 @@ $text['message-optional_apps_upgrade_source']['zh-cn'] = "更新了可选的应 $text['message-optional_apps_upgrade_source']['ja-jp'] = "オプションのアプリケーション ソース ファイルが更新されました"; $text['message-optional_apps_upgrade_source']['ko-kr'] = "선택적 애플리케이션 소스 파일이 업데이트되었습니다."; +$text['message-optional_apps_upgrade_source_cli']['en-us'] = "Updated"; +$text['message-optional_apps_upgrade_source_cli']['en-gb'] = "Updated"; +$text['message-optional_apps_upgrade_source_cli']['ar-eg'] = "محدث"; +$text['message-optional_apps_upgrade_source_cli']['de-at'] = "Aktualisiert"; +$text['message-optional_apps_upgrade_source_cli']['de-ch'] = "Aktualisiert"; +$text['message-optional_apps_upgrade_source_cli']['de-de'] = "Aktualisiert"; +$text['message-optional_apps_upgrade_source_cli']['el-gr'] = "ΕΠΙΚΑΙΡΟΠΟΙΗΜΕΝΟ"; +$text['message-optional_apps_upgrade_source_cli']['es-cl'] = "Actualizado"; +$text['message-optional_apps_upgrade_source_cli']['es-mx'] = "Actualizado"; +$text['message-optional_apps_upgrade_source_cli']['fr-ca'] = "Mis à jour"; +$text['message-optional_apps_upgrade_source_cli']['fr-fr'] = "Mis à jour"; +$text['message-optional_apps_upgrade_source_cli']['he-il'] = "מְעוּדכָּן"; +$text['message-optional_apps_upgrade_source_cli']['it-it'] = "Aggiornato"; +$text['message-optional_apps_upgrade_source_cli']['nl-nl'] = "Bijgewerkt"; +$text['message-optional_apps_upgrade_source_cli']['pl-pl'] = "Zaktualizowano"; +$text['message-optional_apps_upgrade_source_cli']['pt-br'] = "Atualizado"; +$text['message-optional_apps_upgrade_source_cli']['pt-pt'] = "Atualizado"; +$text['message-optional_apps_upgrade_source_cli']['ro-ro'] = "Actualizat"; +$text['message-optional_apps_upgrade_source_cli']['ru-ru'] = "Обновлено"; +$text['message-optional_apps_upgrade_source_cli']['sv-se'] = "Uppdaterad"; +$text['message-optional_apps_upgrade_source_cli']['uk-ua'] = "Оновлено"; +$text['message-optional_apps_upgrade_source_cli']['zh-cn'] = "更新"; +$text['message-optional_apps_upgrade_source_cli']['ja-jp'] = "更新しました"; +$text['message-optional_apps_upgrade_source_cli']['ko-kr'] = "업데이트됨"; + $text['message-upgrade_manually']['en-us'] = "Upgrade Manually"; $text['message-upgrade_manually']['en-gb'] = "Upgrade Manually"; $text['message-upgrade_manually']['ar-eg'] = "الترقية يدويًا"; @@ -350,6 +375,56 @@ $text['message-upgrade']['zh-cn'] = "升级完成"; $text['message-upgrade']['ja-jp'] = "アップグレードが完了しました"; $text['message-upgrade']['ko-kr'] = "업그레이드가 완료되었습니다"; +$text['message-optional_apps_upgrade_source_failed']['en-us'] = "Optional Apps Source Files Update Failed"; +$text['message-optional_apps_upgrade_source_failed']['en-gb'] = "Optional Apps Source Files Update Failed"; +$text['message-optional_apps_upgrade_source_failed']['ar-eg'] = "فشل تحديث الملفات المصدرية للتطبيقات الاختيارية"; +$text['message-optional_apps_upgrade_source_failed']['de-at'] = "Das Update der optionalen Apps-Quelldateien ist fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed']['de-ch'] = "Das Update der optionalen Apps-Quelldateien ist fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed']['de-de'] = "Das Update der optionalen Apps-Quelldateien ist fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed']['el-gr'] = "Η ενημέρωση αρχείων προέλευσης προαιρετικών εφαρμογών απέτυχε"; +$text['message-optional_apps_upgrade_source_failed']['es-cl'] = "Error en la actualización de archivos fuente de aplicaciones opcionales"; +$text['message-optional_apps_upgrade_source_failed']['es-mx'] = "Error en la actualización de archivos fuente de aplicaciones opcionales"; +$text['message-optional_apps_upgrade_source_failed']['fr-ca'] = "Échec de la mise à jour des fichiers sources des applications facultatives"; +$text['message-optional_apps_upgrade_source_failed']['fr-fr'] = "Échec de la mise à jour des fichiers sources des applications facultatives"; +$text['message-optional_apps_upgrade_source_failed']['he-il'] = "עדכון קובצי המקור של אפליקציות נכשל"; +$text['message-optional_apps_upgrade_source_failed']['it-it'] = "Aggiornamento dei file di origine delle app opzionali non riuscito"; +$text['message-optional_apps_upgrade_source_failed']['nl-nl'] = "Update van optionele apps-bronbestanden mislukt"; +$text['message-optional_apps_upgrade_source_failed']['pl-pl'] = "Opcjonalna aktualizacja plików źródłowych aplikacji nie powiodła się"; +$text['message-optional_apps_upgrade_source_failed']['pt-br'] = "Falha na atualização dos arquivos de origem dos aplicativos opcionais"; +$text['message-optional_apps_upgrade_source_failed']['pt-pt'] = "Falha na atualização dos arquivos de origem dos aplicativos opcionais"; +$text['message-optional_apps_upgrade_source_failed']['ro-ro'] = "Actualizarea fișierelor sursă a aplicațiilor opționale a eșuat"; +$text['message-optional_apps_upgrade_source_failed']['ru-ru'] = "Не удалось обновить исходные файлы дополнительных приложений."; +$text['message-optional_apps_upgrade_source_failed']['sv-se'] = "Uppdatering av valfria appkällfiler misslyckades"; +$text['message-optional_apps_upgrade_source_failed']['uk-ua'] = "Помилка оновлення вихідних файлів додаткових програм"; +$text['message-optional_apps_upgrade_source_failed']['zh-cn'] = "可选应用程序源文件更新失败"; +$text['message-optional_apps_upgrade_source_failed']['ja-jp'] = "オプションのアプリのソース ファイルの更新に失敗しました"; +$text['message-optional_apps_upgrade_source_failed']['ko-kr'] = "선택적 앱 소스 파일 업데이트 실패"; + +$text['message-optional_apps_upgrade_source_failed_cli']['en-us'] = "Failed"; +$text['message-optional_apps_upgrade_source_failed_cli']['en-gb'] = "Failed"; +$text['message-optional_apps_upgrade_source_failed_cli']['ar-eg'] = "فشل التحديث"; +$text['message-optional_apps_upgrade_source_failed_cli']['de-at'] = "Update fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed_cli']['de-ch'] = "Update fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed_cli']['de-de'] = "Update fehlgeschlagen"; +$text['message-optional_apps_upgrade_source_failed_cli']['el-gr'] = "Ενημέρωση απέτυχε"; +$text['message-optional_apps_upgrade_source_failed_cli']['es-cl'] = "Actualización fallida"; +$text['message-optional_apps_upgrade_source_failed_cli']['es-mx'] = "Actualización fallida"; +$text['message-optional_apps_upgrade_source_failed_cli']['fr-ca'] = "Mise à jour a échoué"; +$text['message-optional_apps_upgrade_source_failed_cli']['fr-fr'] = "Mise à jour a échoué"; +$text['message-optional_apps_upgrade_source_failed_cli']['he-il'] = "עדכון נכשל"; +$text['message-optional_apps_upgrade_source_failed_cli']['it-it'] = "Aggiornamento non riuscito"; +$text['message-optional_apps_upgrade_source_failed_cli']['nl-nl'] = "Update mislukt"; +$text['message-optional_apps_upgrade_source_failed_cli']['pl-pl'] = "Atualização falhou"; +$text['message-optional_apps_upgrade_source_failed_cli']['pt-br'] = "Atualização falhou"; +$text['message-optional_apps_upgrade_source_failed_cli']['pt-pt'] = "Atualização falhou"; +$text['message-optional_apps_upgrade_source_failed_cli']['ro-ro'] = "Actualizare esuata"; +$text['message-optional_apps_upgrade_source_failed_cli']['ru-ru'] = "Не удалось обновить"; +$text['message-optional_apps_upgrade_source_failed_cli']['sv-se'] = "Uppdateringen misslyckades"; +$text['message-optional_apps_upgrade_source_failed_cli']['uk-ua'] = "Не вдалося оновити"; +$text['message-optional_apps_upgrade_source_failed_cli']['zh-cn'] = "更新失败"; +$text['message-optional_apps_upgrade_source_failed_cli']['ja-jp'] = "アップデートに失敗しました"; +$text['message-optional_apps_upgrade_source_failed_cli']['ko-kr'] = "업데이트가 실패"; + $text['login-message_text']['en-us'] = "Keep up with the FusionPBX project by configuring your preferences in the newly added Notifications section, under the System menu!"; $text['login-message_text']['en-gb'] = "Keep up with the FusionPBX project by configuring your preferences in the newly added Notifications section, under the System menu!"; $text['login-message_text']['ar-eg'] = "حافظ على مشروع (فيوس بي إكس) من خلال تشكيل أفضلياتك في القسم المضاف حديثاً"; @@ -1075,8 +1150,8 @@ $text['description-upgrade_permissions']['zh-cn'] = "还原默认组权限。"; $text['description-upgrade_permissions']['ja-jp'] = "デフォルトのグループ許可を復元します。"; $text['description-upgrade_permissions']['ko-kr'] = "기본 그룹 권한을 복원합니다."; -$text['description-upgrade_menu']['en-us'] = "Restores the default items in the selected menu."; -$text['description-upgrade_menu']['en-gb'] = "Restores the default items in the selected menu."; +$text['description-upgrade_menu']['en-us'] = "Restores the default items in the menu."; +$text['description-upgrade_menu']['en-gb'] = "Restores the default items in the menu."; $text['description-upgrade_menu']['ar-eg'] = "يُعيد بيع المواد الافتراضية في القائمة المختارة"; $text['description-upgrade_menu']['de-at'] = "Setzt die Menüpunkte im ausgewählten Menü auf den Standard zurück."; $text['description-upgrade_menu']['de-ch'] = "Setzt die Menüpunkte im ausgewählten Menü auf den Standard zurück."; diff --git a/core/upgrade/index.php b/core/upgrade/index.php index f87e3ac1dd..ed8ff1da80 100644 --- a/core/upgrade/index.php +++ b/core/upgrade/index.php @@ -74,7 +74,7 @@ if (!empty($_POST) && @sizeof($_POST) > 0) { //get the action options: source, schema, app_defaults, menu_defaults, permisisons - $action = $_POST['action']; + $action = $_POST['action'] ?? null; //run source update if (!empty($action["upgrade_source"]) && permission_exists("upgrade_source") && !is_dir("/usr/share/examples/fusionpbx")) { diff --git a/core/upgrade/upgrade.php b/core/upgrade/upgrade.php index e19b4923f0..22472c3d01 100644 --- a/core/upgrade/upgrade.php +++ b/core/upgrade/upgrade.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2023 + Portions created by the Initial Developer are Copyright (C) 2008-2024 the Initial Developer. All Rights Reserved. Contributor(s): @@ -28,7 +28,7 @@ require dirname(__DIR__, 2) . "/resources/require.php"; //if the config file doesn't exist and the config.php does exist use it to write a new config file - if (!$config_exists && file_exists("/etc/fusionpbx/config.php")) { + if (isset($config_exists) && !$config_exists && file_exists("/etc/fusionpbx/config.php")) { //include the config.php include("/etc/fusionpbx/config.php"); diff --git a/core/upgrade/upgrade_menu.php b/core/upgrade/upgrade_menu.php index cf12c8b972..d31cf558ab 100644 --- a/core/upgrade/upgrade_menu.php +++ b/core/upgrade/upgrade_menu.php @@ -111,8 +111,8 @@ function show_upgrade_menu() { do_upgrade_code(); do_upgrade_schema(); do_upgrade_domains(); - do_upgrade_permissions(); do_upgrade_menu(); + do_upgrade_permissions(); break; case 8: break; @@ -132,9 +132,13 @@ function do_upgrade_code() { $result = ['result' => false, 'message' => 'Failed']; //global $conf; if (defined('PROJECT_ROOT')) { - return git_pull(PROJECT_ROOT); + $result = git_pull(PROJECT_ROOT); + if (!empty($result['message']) && is_array($result['message'])) { + echo implode("\n", $result['message']); + echo "\n"; + } } - return $result; + return; } function do_upgrade_code_submodules() { @@ -145,19 +149,19 @@ function do_upgrade_code_submodules() { foreach ($updateable_repos as $repo => $apps) { $git_result = git_pull($repo); if ($git_result['result']) { - $messages[$repo] = $text['message-optional_apps_upgrade_source'] . " " . $git_result['message']; + $messages[$repo] = $text['message-optional_apps_upgrade_source_cli'] . (!empty($git_result['message']) && is_array($git_result['message']) ? ' - '.implode("\n", $git_result['message']) : ''); } else { - if (is_array($git_result['message'])) { - $message = "ERROR:\n" . implode(' ', $git_result['message']); + if (!empty($git_result['message']) && is_array($git_result['message'])) { + $message = "ERROR:\n" . implode("\n", $git_result['message']); } else { $message = $git_result['message']; } - $messages[$repo] = $text['message-optional_apps_upgrade_source_failed'] . " " . $message; + $messages[$repo] = $text['message-optional_apps_upgrade_source_failed_cli'] . " - " . $message; } } foreach ($messages as $repo => $message) { - echo "$repo: $message\n"; + echo $repo.": ".$message."\n"; } } @@ -200,7 +204,7 @@ function do_upgrade_menu() { } //set the menu back to default - if (isset($argv[2]) && (is_null($argv[2]) || $argv[2] == 'default')) { + if (!isset($argv[2]) || $argv[2] == 'default') { //restore the menu $included = true; require_once dirname(__DIR__, 2) . "/core/menu/menu_restore_default.php"; diff --git a/resources/classes/domains.php b/resources/classes/domains.php index 549fbd7413..0c9c5178c6 100644 --- a/resources/classes/domains.php +++ b/resources/classes/domains.php @@ -599,6 +599,10 @@ if (!class_exists('domains')) { */ public function upgrade() { + //add multi-lingual support + $language = new text; + $text = $language->get(null, 'core/upgrade'); + //includes files require dirname(__DIR__, 2) . "/resources/require.php"; @@ -652,6 +656,13 @@ if (!class_exists('domains')) { $domains_processed++; } + //output result + if (defined('STDIN')) { + if ($domains_processed > 1) { + echo $text['message-upgrade_apps']."\n"; + } + } + } //end upgrade method /** diff --git a/resources/classes/menu.php b/resources/classes/menu.php index e3fb88d932..0c4f027652 100644 --- a/resources/classes/menu.php +++ b/resources/classes/menu.php @@ -756,7 +756,7 @@ if (!class_exists('menu')) { $sql .= "and menu_item_uuid is not null "; $sql .= ") "; $sql .= "order by i.menu_item_order asc "; - $parameters['menu_language'] = $_SESSION['domain']['language']['code']; + $parameters['menu_language'] = $_SESSION['domain']['language']['code'] ?? null; $parameters['menu_uuid'] = $this->menu_uuid; $database = new database; $result = $database->select($sql, $parameters, 'all'); diff --git a/resources/switch.php b/resources/switch.php index 7fe60e8f71..9074c5e0d5 100644 --- a/resources/switch.php +++ b/resources/switch.php @@ -255,7 +255,7 @@ function save_gateway_xml() { } function save_var_xml() { - if (is_array($_SESSION['switch']['conf'])) { + if (!empty($_SESSION['switch']['conf']) && is_array($_SESSION['switch']['conf'])) { global $config, $domain_uuid; //skip this function if the conf directory is empty