Geizkragen/index.php

98 lines
3.3 KiB
PHP

<?php
/**
* @file index.php
* @brief Hauptseite der Geizkragen-Anwendung.
*
* @details Diese Datei dient als Einstiegspunkt für die Benutzer. Sie lädt die grundlegenden
* Layout-Komponenten, die Navigation und zeigt, abhängig von Such- oder Kategoriefiltern,
* empfohlene Produkte oder gefilterte Listen an.
* @author Geizkragen Team
* @version 1.0.0
*
* @section description_index Beschreibung
* Dies ist die zentrale Steuerungsdatei zur Darstellung der Homepage.
* Über Includes werden Header, Kategorienleiste, Filterleiste und Produktkarten geladen.
*/
/**
* @brief Bindet die Bootstrap-Datei ein, um die grundlegende Konfiguration und Klassenverfügbarkeit sicherzustellen.
* @details Initialisiert Laufzeitumgebung, Datenbankverbindungen, Autoloader
* und andere essentielle Parameter, die für die Laufzeit der Applikation benötigt werden.
*/
require_once __DIR__ . '/lib/bootstrap.php';
?>
<?php
/**
* @brief Bindet das Header-Template der Seite ein.
* @details Der Header beinhaltet typischerweise den `<head>`-Bereich, Metadaten,
* CSS-Einbindungen sowie den sichtbaren Navigationskopf inklusive Logo und Menü.
*/
include 'header.php';
?>
<?php
/**
* @brief Bindet die Kategorienleiste (catbar) für die Navigation ein.
* @details Diese Leiste ermöglicht die Hauptnavigation über Produktkategorien.
*/
include 'catbar.php';
?>
<?php
/**
* @brief Bindet die Attribut-/Filterleiste (attrbar) ein.
* @details Erlaubt feingranulare Filterung der angezeigten Produkte nach diversen Eigenschaften,
* wie Preis, Hersteller oder Verfügbarkeit.
*/
include 'attrbar.php';
?>
<?php
/**
* @brief Ermittelt und verarbeitet den Suchbegriff aus der GET-Anfrage, falls vorhanden.
* @details Prüft das Array $_GET auf den Schlüssel 'search'. Falls dieser gesetzt ist,
* wird der Wert als String gecastet und Leerzeichen am Rand durch `trim()` entfernt.
*
* @var string $searchTerm Der bereinigte Suchbegriff für die spätere Datenbankabfrage.
*/
$searchTerm = isset($_GET['search']) ? trim((string)$_GET['search']) : '';
/**
* @brief Ermittelt und verarbeitet die ausgewählte Kategorie aus der GET-Anfrage.
* @details Fallback auf 'all', falls keine Kategorie spezifiziert wurde.
*
* @var string $activeCategory Die aktuell vom Benutzer fokussierte Kategorie.
*/
$activeCategory = isset($_GET['category']) ? $_GET['category'] : 'all';
/**
* @brief Prüft, ob weder ein Suchbegriff noch ein spezifischer Kategoriefilter aktiv ist (Startseiten-Bedingung).
* @details Wenn beides zutrifft, befindet sich der Benutzer auf der "nackten" Startseite
* und bekommt spezielle Werbeanzeigen oder Empfehlungen präsentiert.
*/
if ($searchTerm === '' && $activeCategory === 'all') {
/**
* @brief Bindet die Empfehlungen bzw. das Werbebanner ein.
* @details Dient zur Kundenbindung auf der Startseite.
*/
include 'ad_recommendation.php';
}
?>
<?php
/**
* @brief Bindet die Produktkarten zur Darstellung ein.
* @details Zentrale Komponente zur Visualisierung der Produkte. Zieht Parameter wie
* `$searchTerm` und `$activeCategory` heran, um die gefilterte Liste zu generieren.
*/
include 'compcards.php';
?>
<?php
/**
* @brief Bindet das Footer-Template der Seite ein.
* @details Beendet das HTML-Dokument und lädt JavaScripts sowie rechtliche Links
* (Impressum, Datenschutz).
*/
include 'footer.php';
?>