anpassung von controllern und results

search function implementiert, search controller entsprechend angepasst und die results seite angepasst
This commit is contained in:
rirat-0
2026-06-02 12:43:59 +02:00
parent b328c2613c
commit e37b882481
3 changed files with 52 additions and 39 deletions
+23 -34
View File
@@ -1,5 +1,10 @@
<?php
session_start();
$results = $_SESSION["search_results"] ?? [];
$query = $_SESSION["search_query"] ?? "";
$resultCount = count($results);
?>
<!--
Seite: Suchergebnisse
@@ -48,7 +53,7 @@ session_start();
<div class="s-res-header">
<h1 class="s-res-main-title">Suchergebnisse</h1>
<p class="s-res-meta">3 Treffer für Ihre Suchanfrage</p>
<p class="s-res-meta"><?php echo $resultCount; ?> Treffer für Ihre Suchanfrage "<?php echo htmlspecialchars($query); ?>"</p>
</div>
<!-- Ergebnisliste -->
@@ -56,7 +61,23 @@ session_start();
<?php
if(isset($_SESSION['message']) && $_SESSION['message'] == "new_search_results"): ?>
<!-- TODO: Hier die Beiträge ausgeben. -->
<?php if ($resultCount === 0): ?>
<p>Keine Beiträge zu diesem Suchbegriff gefunden.</p>
<?php else: ?>
<?php foreach ($results as $item): ?>
<div class="s-res-item">
<div class="s-res-content">
<h2 class="s-res-item-title">
<a href="<?php echo $item['link']; ?>" class="s-res-link"><?php echo $item['title']; ?></a>
</h2>
<p class="s-res-author">Kategorie: <span class="s-res-author-name">Beitrag</span></p>
</div>
<div class="s-res-arrow">&rarr;</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
<?php elseif (isset($_SESSION["message"]) && $_SESSION["message"] == "missing_parameters"): ?>
<p>
Bitte überprüfe deine Sucheingabe und versuche es erneut!
@@ -66,38 +87,6 @@ session_start();
unset($_SESSION["message"]);
?>
<!-- Beispielbeitrag -->
<div class="s-res-item">
<div class="s-res-content">
<h2 class="s-res-item-title">
<a href="#" class="s-res-link">Pythagoras</a>
</h2>
<p class="s-res-author">Von: <span class="s-res-author-name">Max Mustermann</span></p>
</div>
<div class="s-res-arrow">&rarr;</div>
</div>
<!-- Beispielbeitrag -->
<div class="s-res-item">
<div class="s-res-content">
<h2 class="s-res-item-title">
<a href="#" class="s-res-link">Pythagoras</a>
</h2>
<p class="s-res-author">Von: <span class="s-res-author-name">Max Mustermann</span></p>
</div>
<div class="s-res-arrow">&rarr;</div>
</div>
<!-- Beispielbeitrag -->
<div class="s-res-item">
<div class="s-res-content">
<h2 class="s-res-item-title">
<a href="#" class="s-res-link">Pythagoras</a>
</h2>
<p class="s-res-author">Von: <span class="s-res-author-name">Max Mustermann</span></p>
</div>
<div class="s-res-arrow">&rarr;</div>
</div>
</div>
<div class="s-res-pagination-footer">
+8 -5
View File
@@ -3,22 +3,25 @@ session_start();
require_once '../model/LocalArticleManager.php';
require_once '../model/ArticleManager.php';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
if(!isset($_POST["search"])){
if ($_SERVER["REQUEST_METHOD"] === "GET") {
if(!isset($_GET["q"])){
$_SESSION["message"] = "missing_parameters";
header("location: ../../index.php?pfad=search-results");
} else {
$search = $_POST["search"];
$search = trim($_GET["q"]);
try {
$articleManager = ArticleManager::getInstance();
$articleManager->search($search); // TODO: Methode implementieren.
$results = $articleManager->search($search);
$_SESSION["search_results"] = $results;
$_SESSION["search_query"] = $search;
$_SESSION["message"] = "new_search_results";
} catch (Exception $e){
$_SESSION["message"] = "internal_error";
}
$_SESSION["message"] = "new_search_results";
// TODO: Liste mit Artikeln in der Suchreihenfolge übertragen.
// Weiterleitung zur Suchergebnisanzeige
header("location: ../../index.php?pfad=search-results");
exit();
+21
View File
@@ -44,4 +44,25 @@ class ArticleManager extends LocalArticleManager
return $articleManager;
}
public function search(string $keyword): array
{
$results = [];
$contentFolder = __DIR__ . '/../content/';
$files = glob($contentFolder . "*.php");
foreach ($files as $file) {
$content = file_get_contents($file);
if (stripos($content, $keyword) !== false) {
$filename = basename($file, ".php");
$results[] = [
'title' => ucfirst($filename),
'link' => "index.php?pfad=" . $filename
];
}
}
return $results;
}
}