98 lines
3.3 KiB
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';
|
|
?>
|