diff --git a/CRM/Utils/Check/Component/Env.php b/CRM/Utils/Check/Component/Env.php index d37a0ce6cb9..72427d69f99 100644 --- a/CRM/Utils/Check/Component/Env.php +++ b/CRM/Utils/Check/Component/Env.php @@ -9,6 +9,9 @@ +--------------------------------------------------------------------+ */ +use Civi\Api4\Extension; +use Psr\Log\LogLevel; + /** * * @package CRM @@ -200,7 +203,7 @@ public function checkDomainNameEmail($force = FALSE) { return $messages; } - list($domainEmailName, $domainEmailAddress) = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); + [$domainEmailName, $domainEmailAddress] = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); $domain = CRM_Core_BAO_Domain::getDomain(); $domainName = $domain->name; $fixEmailUrl = CRM_Utils_System::url("civicrm/admin/options/from_email_address", "&reset=1"); @@ -766,7 +769,7 @@ public function checkComponents(): array { $messages = []; $setting = Civi::settings()->get('enable_components'); - $exts = \Civi\Api4\Extension::get(FALSE) + $exts = Extension::get(FALSE) ->addWhere('key', 'LIKE', 'civi_%') ->addWhere('status', '=', 'installed') ->execute() @@ -859,6 +862,31 @@ public function checkExtensionUpgrades() { return []; } + /** + * Checks if logging is enabled but Civi-report is not. + * + * @return CRM_Utils_Check_Message[] + * @throws \CRM_Core_Exception + */ + public function checkLoggingHasCiviReport(): array { + if (Civi::settings()->get('logging')) { + $isEnabledCiviReport = (bool) Extension::get(FALSE) + ->addWhere('key', '=', 'civi_report') + ->addWhere('status', '=', 'installed') + ->execute()->countFetched(); + return $isEnabledCiviReport ? [] : [ + new CRM_Utils_Check_Message( + __FUNCTION__, + ts('You have enabled detailed logging but to display this in the change log tab CiviReport must be enabled'), + ts('CiviReport required to display detailed logging.'), + LogLevel::WARNING, + 'fa-plug' + ), + ]; + } + return []; + } + /** * Checks if CiviCRM database version is up-to-date * @return CRM_Utils_Check_Message[] diff --git a/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php b/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php index 45efbd87767..ff32ff323a6 100644 --- a/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php +++ b/tests/phpunit/CRM/Utils/Check/Component/EnvTest.php @@ -18,7 +18,7 @@ public function setUp(): void { * @throws \GuzzleHttp\Exception\GuzzleException */ public function testResourceUrlCheck(): void { - $check = new \CRM_Utils_Check_Component_Env(); + $check = new CRM_Utils_Check_Component_Env(); $failRequest = $check->fileExists('https://civicrm.org', 0.001); $successRequest = $check->fileExists('https://civicrm.org', 0);