registerArgument('extension', Extension::class, '', true); } /** * Finds and returns the suitable TYPO3 versions of an extension * * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * * @return string */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { $extension = $arguments['extension']; /** @var Dependency $dependency */ foreach ($extension->getDependencies() as $dependency) { if ($dependency->getIdentifier() === 'typo3') { $lowestVersion = $dependency->getLowestVersion(); $highestVersion = $dependency->getHighestVersion(); $cssClass = self::isVersionSuitable($lowestVersion, $highestVersion) ? 'success' : 'default'; return '' . htmlspecialchars($lowestVersion) . ' - ' . htmlspecialchars($highestVersion) . ''; } } return ''; } /** * Check if current TYPO3 version is suitable for the extension * * @param string $lowestVersion * @param string $highestVersion * @return bool */ protected static function isVersionSuitable($lowestVersion, $highestVersion) { $numericTypo3Version = VersionNumberUtility::convertVersionNumberToInteger(VersionNumberUtility::getNumericTypo3Version()); $numericLowestVersion = VersionNumberUtility::convertVersionNumberToInteger($lowestVersion); $numericHighestVersion = VersionNumberUtility::convertVersionNumberToInteger($highestVersion); return MathUtility::isIntegerInRange($numericTypo3Version, $numericLowestVersion, $numericHighestVersion); } }