54 lines
1.9 KiB
PHP
54 lines
1.9 KiB
PHP
<?php
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
require_once '../model/ArticleManager.php';
|
|
require_once '../model/UserManager.php';
|
|
require_once '../model/Article.php';
|
|
require_once '../validator/search-validator.php';
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] === "GET" && isset($_GET["q"])) {
|
|
|
|
$search = trim($_GET["q"]);
|
|
if (!searchQueryValidator($search)) {
|
|
$_SESSION["search_results"] = [];
|
|
$_SESSION["search_query"] = "";
|
|
$_SESSION["message"] = "invalid_search_query";
|
|
} else {
|
|
try {
|
|
$articleManager = ArticleManager::getInstance();
|
|
$userManager = UserManager::getInstance();
|
|
|
|
$results = $articleManager->search($search);
|
|
|
|
$safeArrayResults = [];
|
|
foreach ($results as $obj) {
|
|
$safeArrayResults[] = [
|
|
"id" => $obj->getId(),
|
|
"title" => $obj->getTitle(),
|
|
"content" => $obj->getContent(),
|
|
"author" => $userManager->findUser($obj->getAuthor())["vorname"] . " " . $userManager->findUser($obj->getAuthor())["nachname"],
|
|
"category" => $obj->getCategory(),
|
|
"tags" => $obj->getTags(),
|
|
"creationDate" => $obj->getCreationDate(),
|
|
"likes" => $obj->getLikes(),
|
|
];
|
|
}
|
|
|
|
$_SESSION["search_results"] = $safeArrayResults;
|
|
$_SESSION["search_query"] = $search;
|
|
$_SESSION["message"] = "new_search_results";
|
|
|
|
// Bei einer neuen Suche Anzeige-Filter zurücksetzen
|
|
$_SESSION['search_sort'] = 'alphabet';
|
|
$_SESSION['search_category'] = 'all';
|
|
$_SESSION['search_limit'] = 10;
|
|
|
|
} catch (Exception $e) {
|
|
$_SESSION["message"] = "internal_error";
|
|
}
|
|
}
|
|
|
|
header("Location: ../../index.php?pfad=search-results&q=" . urlencode($search));
|
|
exit();
|
|
} |