Implementierung von neuem such algorithmus und entsprechenden anpassungen in anderen dateien

This commit is contained in:
rirat-0
2026-06-02 16:58:12 +02:00
parent 8e3642c668
commit 06930644a6
4 changed files with 32 additions and 18 deletions
+5 -3
View File
@@ -75,10 +75,12 @@ $resultCount = count($results);
<?php foreach ($results as $item): ?> <?php foreach ($results as $item): ?>
<div class="s-res-item"> <div class="s-res-item">
<div class="s-res-content"> <div class="s-res-content">
<h2 class="s-res-item-title"> <h2 class="s-res-item-title">
<a href="<?php echo $item['link']; ?>" class="s-res-link"><?php echo $item['title']; ?></a> <a href="index.php?pfad=showArticle&id=<?php echo $item->id; ?>" class="s-res-link">
<?php echo htmlspecialchars($item->title); ?>
</a>
</h2> </h2>
<p class="s-res-author">Kategorie: <span class="s-res-author-name">Beitrag</span></p> <p class="s-res-author">Von: <span class="s-res-author-name"><?php echo htmlspecialchars($item->author); ?></span></p>
</div> </div>
<div class="s-res-arrow">&rarr;</div> <div class="s-res-arrow">&rarr;</div>
</div> </div>
+1 -1
View File
@@ -2,7 +2,7 @@
Suchleiste. Wird via PHP später in alle Seiten eingebunden Suchleiste. Wird via PHP später in alle Seiten eingebunden
--> -->
<!--<label for="site-search">Suche</label>--> <!--<label for="site-search">Suche</label>-->
<form action="index.php" method="GET" class="search-form"> <form action="php/controller/search-results-controller.php" method="GET" class="search-form">
<input type="hidden" name="pfad" value="search-results"> <input type="hidden" name="pfad" value="search-results">
@@ -24,6 +24,8 @@ if ($_SERVER["REQUEST_METHOD"] === "GET" && isset($_GET["q"])) {
$_SESSION["message"] = "internal_error"; $_SESSION["message"] = "internal_error";
} }
} }
header("Location: ../../index.php?pfad=search-results");
exit();
} }
+22 -12
View File
@@ -169,24 +169,34 @@ class LocalArticleManager implements ArticleManagerDAO {
return $filteredArticles; return $filteredArticles;
} }
// getarticlesbyauthor nutzen um auch nach kategorien zu suchen
public function search(string $keyword): array public function search(string $keyword): array
{ {
$results = []; // 1. Alle Artikel aus der JSON-Datei laden
$contentFolder = __DIR__ . '/../content/'; $articles = $this->getAllArticles();
$files = glob($contentFolder . "*.php"); $filteredArticles = [];
foreach ($files as $file) { // 2. Artikel durchlaufen und filtern
$content = file_get_contents($file); foreach ($articles as $article) {
if (stripos($content, $keyword) !== false) { $inTitle = isset($article['title']) && stripos($article['title'], $keyword) !== false;
$filename = basename($file, ".php"); $inContent = isset($article['content']) && stripos($article['content'], $keyword) !== false;
$results[] = [
'title' => ucfirst($filename), // Wenn das Keyword im Titel ODER im Inhalt vorkommt
'link' => "index.php?pfad=" . $filename if ($inTitle || $inContent) {
]; // Wir mappen die JSON-Daten auf ein echtes Article-Objekt (genau wie bei getArticlesByAuthor)
$filteredArticles[] = new Article(
intval($article['id']),
$article['title'],
$article['content'],
$article['author'],
$article['category'],
$article['tags'],
$article['creationDate']
);
} }
} }
return $results;
return $filteredArticles;
} }
} }