diff --git a/content/search-results.php b/content/search-results.php index 450fac5..c410ab6 100644 --- a/content/search-results.php +++ b/content/search-results.php @@ -25,27 +25,38 @@ $resultCount = count($results); -
-

Sortierung

-
- - - - +
+ +
+

Suche anpassen

+ +
-
+ +
+

Sortierung

+ +
+ + + + +
+
+ + diff --git a/php/controller/search-results-controller.php b/php/controller/search-results-controller.php index 67a325c..161c874 100644 --- a/php/controller/search-results-controller.php +++ b/php/controller/search-results-controller.php @@ -18,6 +18,26 @@ if ($_SERVER["REQUEST_METHOD"] === "GET" && isset($_GET["q"])) { $results = $articleManager->search($search); + $sortStyle = $_GET['sort'] ?? 'alphabet'; + $_SESSION['search_sort'] = $sortStyle; + + if ($sortStyle === 'alphabet') { + // Titel aufsteigend alphabetiisch sortiert + usort($results, function($a, $b) { + return strcasecmp($a->title, $b->title); + }); + } elseif ($sortStyle === 'newest') { + // Datum neu zu alt sortiert + usort($results, function($a, $b) { + return strcmp($b->creationDate, $a->creationDate); + }); + } elseif ($sortStyle === 'oldest') { + // Datum alt zu neu sortiert + usort($results, function($a, $b) { + return strcmp($a->creationDate, $b->creationDate); + }); + } + // Ergebnisse werden in ein flaches array umgewandelt, da sont incomplete-PHP error im Ergebnis $safeArrayResults = []; foreach ($results as $obj) {