' . '
' . $this->escape($stackTraces[$i]) . ''; } } else { foreach ($messages as $message) { echo ' '; } } $libraries = \Icinga\Application\Icinga::app()->getLibraries(); $coreReason = []; $modReason = []; if (isset($requiredVendor, $requiredProject) && $requiredVendor && $requiredProject) { // TODO: I don't like this, can we define requirements somewhere else? $coreDeps = ['icinga-php-library' => '>= 0.9', 'icinga-php-thirdparty' => '>= 0.11']; foreach ($coreDeps as $libraryName => $requiredVersion) { if (! $libraries->has($libraryName)) { $coreReason[] = sprintf($this->translate( 'Library "%s" is required and missing. Please install a version of it matching the required one: %s' ), $libraryName, $requiredVersion); } elseif (! $libraries->has($libraryName, $requiredVersion) && $libraries->get($libraryName)->isRequired($requiredVendor, $requiredProject)) { $coreReason[] = sprintf($this->translate( 'Library "%s" is required and installed, but its version (%s) does not satisfy the required one: %s' ), $libraryName, $libraries->get($libraryName)->getVersion() ?: '-', $requiredVersion); } } if (! empty($coreReason)) { array_unshift($coreReason, $this->translate('You have unmet dependencies. Please check Icinga Web 2\'s installation instructions.')); } } if (isset($module)) { $manager = \Icinga\Application\Icinga::app()->getModuleManager(); if ($manager->hasUnmetDependencies($module->getName())) { if (isset($requiredModule) && $requiredModule && isset($module->getRequiredModules()[$requiredModule])) { if (! $manager->hasInstalled($requiredModule)) { $modReason[] = sprintf($this->translate( 'Module "%s" is required and missing. Please install a version of it matching the required one: %s' ), $requiredModule, $module->getRequiredModules()[$requiredModule]); } elseif (! $manager->hasEnabled($requiredModule)) { $modReason[] = sprintf($this->translate( 'Module "%s" is required and installed, but not enabled. Please enable module "%1$s".' ), $requiredModule); } elseif (! $manager->has($requiredModule, $module->getRequiredModules()[$requiredModule])) { $modReason[] = sprintf($this->translate( 'Module "%s" is required and installed, but its version (%s) does not satisfy the required one: %s' ), $requiredModule, $manager->getModule($requiredModule, false)->getVersion(), $module->getRequiredModules()[$requiredModule]); } } elseif (isset($requiredVendor, $requiredProject) && $requiredVendor && $requiredProject) { foreach ($module->getRequiredLibraries() as $libraryName => $requiredVersion) { if (! $libraries->has($libraryName)) { $modReason[] = sprintf($this->translate( 'Library "%s" is required and missing. Please install a version of it matching the required one: %s' ), $libraryName, $requiredVersion); } elseif (! $libraries->has($libraryName, $requiredVersion) && $libraries->get($libraryName)->isRequired($requiredVendor, $requiredProject)) { $modReason[] = sprintf($this->translate( 'Library "%s" is required and installed, but its version (%s) does not satisfy the required one: %s' ), $libraryName, $libraries->get($libraryName)->getVersion() ?: '-', $requiredVersion); } } } if (! empty($modReason)) { array_unshift($modReason, sprintf($this->translate( 'This error might have occurred because module "%s" has unmet dependencies.' . ' Please check it\'s installation instructions and install missing dependencies.' ), $module->getName())); } } } // The following doesn't use ipl\Html because that's what the error possibly is about ?>
= $msg ?>
= $msg ?>