From 7046c01fdad1323e3b7db59079a6081efdaaeb4e Mon Sep 17 00:00:00 2001 From: Sebastian Helzle Date: Mon, 18 Jul 2022 14:56:06 +0200 Subject: [PATCH] BUGFIX: Prevent lower version from appearing as package search result MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By defining the highest package version as „lastVersion“ we prevent f.e. that a later release version 5.0.2 is shown as result instead of a 8.0.2 which was released 2 minutes earlier. Resolves: #409 --- .../Classes/Service/PackageVersion.php | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/DistributionPackages/Neos.MarketPlace/Classes/Service/PackageVersion.php b/DistributionPackages/Neos.MarketPlace/Classes/Service/PackageVersion.php index d82a181ba..f68fd3ea1 100644 --- a/DistributionPackages/Neos.MarketPlace/Classes/Service/PackageVersion.php +++ b/DistributionPackages/Neos.MarketPlace/Classes/Service/PackageVersion.php @@ -48,17 +48,10 @@ public function extractVersions(NodeInterface $node): array public function extractLastVersion(NodeInterface $node): ?NodeInterface { $versions = $this->extractVersions($node); - usort($versions, static function(NodeInterface $a, NodeInterface $b) { - /** @var \DateTime $aTime */ - $aTime = $a->getProperty('time'); - /** @var \DateTime $bTime */ - $bTime = $b->getProperty('time'); - if ($aTime === false || $bTime === false) { - return -1; - } - return $bTime->getTimestamp() - $aTime->getTimestamp(); + usort($versions, static function (NodeInterface $a, NodeInterface $b) { + return $a->getProperty('versionNormalized') <=> $b->getProperty('versionNormalized'); }); - $stableVersions = array_filter($versions, static function(NodeInterface $version) { + $stableVersions = array_filter($versions, static function (NodeInterface $version) { return $version->getProperty('stability') === true; }); if (count($stableVersions) > 0) {