<?php
include("elemente/phpini.txt");
function generateFormFromText($inputText) {
    $lines = explode("\n", trim($inputText));
    $formHtml = '' . PHP_EOL;

    $currentSection = null;

    foreach ($lines as $line) {
        $line = trim($line);

        if ($line === '-------------------------------') {
            continue;
        }

        if (stripos($line, 'Auswahlmenüs:') !== false) {
            $currentSection = 'select';
            continue;
        } elseif (stripos($line, 'Inputfelder:') !== false) {
            $currentSection = 'input';
            continue;
        }

        // Verarbeitung von Umbrüchen und Linien
        if ($line === '[umbruch]') {
            $formHtml .= '<br>' . PHP_EOL;
            continue;
        } elseif ($line === '[linie]') {
            $formHtml .= '<hr style="border: 1px solid black; margin: 10px 0;">' . PHP_EOL;
            continue;
        }

        // Verarbeitung von Textzeilen ohne Form-Elemente
        if (stripos($line, 'text:') === 0) {
            $formHtml .= '<span style="font-size: 22px; font-weight: bold; margin: 10px 0;">' . htmlspecialchars(substr($line, 5)) . '</span>' . PHP_EOL;
            continue;
        }

        // Verarbeitung von Auswahlmenüs
        if ($currentSection === 'select' && strpos($line, '/') !== false) {
            $parts = explode('/', $line);
            $isRequired = ($parts[0] === 'muss') ? 'required' : '';

            $formHtml .= '<label style="font-size: 20px; margin-bottom: 5px; display: block;">' . htmlspecialchars($parts[1]) . '</label>' . PHP_EOL;
            $formHtml .= '<select name="' . htmlspecialchars($parts[1]) . '" ' . $isRequired . ' style="font-size: 20px; margin-bottom: 5px; display: block;">' . PHP_EOL;
            $formHtml .= '<option value="" disabled selected>Bitte auswählen</option>' . PHP_EOL;

            for ($i = 2; $i < count($parts); $i++) {
                $formHtml .= '<option value="' . htmlspecialchars($parts[$i]) . '">' . htmlspecialchars($parts[$i]) . '</option>' . PHP_EOL;
            }
            $formHtml .= '</select><br>' . PHP_EOL;
        } elseif ($currentSection === 'input' && strpos($line, '/') !== false) {
            $parts = explode('/', $line);
            $isRequired = ($parts[0] === 'muss') ? 'required' : '';
            $placeholder = isset($parts[2]) ? htmlspecialchars($parts[2]) : '';

            $formHtml .= '<label style="font-size: 20px; margin-bottom: 5px; display: block;">' . htmlspecialchars($parts[1]) . '</label>' . PHP_EOL;
            $formHtml .= '<input type="text" name="' . htmlspecialchars($parts[1]) . '" placeholder="' . $placeholder . '" ' . $isRequired . ' style="font-size: 20px; margin-bottom: 5px; display: block; color: black;" onfocus="this.style.color=\'#880000\'" onblur="this.style.color=\'black\'"><br>' . PHP_EOL;
        }
    }

    return $formHtml;
}



$preisinfo = file_get_contents("elemente/preisinfo-ohne-versandkosten.txt");
$preisinfov = file_get_contents("elemente/preisinfo-mit-versandkosten.txt");
$shoplinie = file_get_contents("elemente/shoplinie.txt");



// Eigene URL abfragen
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://";
$vonseite = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];



// Seite editieren
$myurl = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$filename = basename(__FILE__);

// Login prüfen
if (isset($_COOKIE['loggi']) && $_COOKIE['loggi'] === "true") {$login = 1;} else {$login = 0;}

$editpage = "prg/001/inhalt007.php?seite=$filename";
$editlink = "<a href=\"admin.php\" target=\"_blank\"> <img src=\"/gfx/adminbutton-001.png\" style=\"border: none;\"></a> <a href=\"$editpage\"><img src=\"/gfx/adminbutton-002.png\" style=\"border: none;\"></a>";
$rrubrik = explode("--", $filename)[0]; $rrubrik = "rubrik-".$rrubrik.".php";

$titel = "[titel]Aqua Hunde Kühlmatte Kühldecke kühle Hundedecke für Auto + Reisen + Strand 40x30cm[/titel]";
$titel = str_replace("[titel]", "", $titel);
$titel = str_replace("[/titel]", "", $titel);

$seitentitel = "[seitentitel]Aqua Hunde Kühlmatte Kühldecke kühle Hundedecke für Auto + Reisen + Strand 40x30cm[/seitentitel]";
$seitentitel = str_replace("[seitentitel]", "", $seitentitel);
$seitentitel = str_replace("[/seitentitel]", "", $seitentitel);

$besch = "[besch]Aqua Kühlmatte für Mensch und jedes Tier geeignet KÜHLT ■ bei Hitze ■ auf Reisen ■ bei Sport und Spiel ■ im Freien Befreit von ■ Hitzestress ■ Erhöhter[/besch]";
$besch = str_replace("[besch]", "", $besch);
$besch = str_replace("[/besch]", "", $besch);

$key = "[key]aqua, hunde, kühlmatte, kühldecke, kühle, hundedecke, für, auto[/key]";
$key = str_replace("[key]", "", $key);
$key = str_replace("[/key]", "", $key);
$keywords = $key;

$make1 = "[make1]2026-05-13T11:07:11+00:00[/make1]";
$make1 = str_replace("[make1]", "", $make1);
$make1 = str_replace("[/make1]", "", $make1);

$make2 = "[make2]2026-05-16T11:48:35+00:00[/make2]";
$make2 = str_replace("[make2]", "", $make2);
$make2 = str_replace("[/make2]", "", $make2);

$artikelbezeichnung = "[artikelbezeichnung]Aqua Hunde Kühlmatte Kühldecke kühle Hundedecke für Auto + Reisen + Strand 40x30cm[/artikelbezeichnung]";
$artikelbezeichnung = str_replace("[artikelbezeichnung]", "", $artikelbezeichnung);
$artikelbezeichnung = str_replace("[/artikelbezeichnung]", "", $artikelbezeichnung);

$vorrat = "[vorrat]10[/vorrat]";
$vorrat = str_replace("[vorrat]", "", $vorrat);
$vorrat = str_replace("[/vorrat]", "", $vorrat);

$digiort = "[digiort][/digiort]";
$digiort = str_replace("[digiort]", "", $digiort);
$digiort = str_replace("[/digiort]", "", $digiort);

$ustkat = "[ustkat]S[/ustkat]";
$ustkat = str_replace("[ustkat]", "", $ustkat);
$ustkat = str_replace("[/ustkat]", "", $ustkat);

$preiszusatz = "[preiszusatz][/preiszusatz]";
$preiszusatz = str_replace("[preiszusatz]", "", $preiszusatz);
$preiszusatz = str_replace("[/preiszusatz]", "", $preiszusatz);


$preis = "[preis]19,99[/preis]";
$preis = str_replace("[preis]", "", $preis);
$preis = str_replace("[/preis]", "", $preis);

$versand = "[versand]versand1[/versand]";
$versand = str_replace("[versand]", "", $versand);
$versand = str_replace("[/versand]", "", $versand);

// Start Globalpreis Preis

// Falls $preis bereits einen Preiswert enthält, nichts ändern
if (!preg_match('/^\d+,\d{2}$/', $preis)) { 
    // Datei einlesen und Preise speichern
    $dateipfad = "elemente/globalpreise.txt";
    $preise = [];

    if (file_exists($dateipfad)) {
        $zeilen = file($dateipfad, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        
        foreach ($zeilen as $zeile) {
            if (strpos($zeile, ":") !== false) {
                list($name, $wert) = explode(":", $zeile, 2);
                // Extrahiert nur den ersten gültigen Zahlenwert mit zwei Nachkommastellen
                preg_match('/^\s*([\d]+,\d{2})/', trim($wert), $matches);
                if (isset($matches[1])) {
                    $preise[trim($name)] = $matches[1]; 
                }
            }
        }
    } else {
        die("Datei nicht gefunden!");
    }

    // Falls der Preisname in der Datei gefunden wird, setzen wir den Preis-Wert
    if (isset($preise[$preis])) {
        $preis = $preise[$preis]; // Setzt den exakten Wert aus der Datei
    }
}


// Start Globalpreis Versand

// Falls $versand bereits einen Preiswert enthält, nichts ändern
if (!preg_match('/^\d+,\d{2}$/', $versand)) { 
    // Datei einlesen und Preise speichern
    $dateipfad = "elemente/globalpreise.txt";
    $preise = [];

    if (file_exists($dateipfad)) {
        $zeilen = file($dateipfad, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
        
        foreach ($zeilen as $zeile) {
            if (strpos($zeile, ":") !== false) {
                list($name, $wert) = explode(":", $zeile, 2);
                // Extrahiert nur den ersten gültigen Zahlenwert mit zwei Nachkommastellen
                preg_match('/^\s*([\d]+,\d{2})/', trim($wert), $matches);
                if (isset($matches[1])) {
                    $preise[trim($name)] = $matches[1]; 
                }
            }
        }
    } else {
        die("Datei nicht gefunden!");
    }

    // Falls der Preisname in der Datei gefunden wird, setzen wir den Preis-Wert
    if (isset($preise[$versand])) {
        $versand = $preise[$versand]; // Setzt den exakten Wert aus der Datei
    }
}




// Preise in Auswahlmenüs

$wunschfelder = "[wunschfelder]Auswahlmenüs:
muss/Farbe:/Roses/Red Western/Scottisch grey[/wunschfelder]";
$wunschfelder = str_replace("[wunschfelder]", "", $wunschfelder);
$wunschfelder = str_replace("[/wunschfelder]", "", $wunschfelder);

// Datei laden
$zeilen = file(
    'elemente/globalpreise.txt',
    FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES
);

// Beispiel: dein vorhandener String
// $wunschfelder = "Der wurstpreis ist heute besonders günstig.";

foreach ($zeilen as $zeile) {

    // Zeile aufteilen in "vor dem :" und "nach dem :"
    list($key, $rest) = explode(':', $zeile, 2);

    // Wert ist alles bis zum ersten Leerzeichen
    $value = strtok($rest, " ");

    // Ersetzen im String
    $wunschfelder = str_replace($key, $value, $wunschfelder);
}


// Ende Globalpreis

// Pflichtfelder laden
ob_start(); include "elemente/shoppflicht001.txt"; $shoppflicht001 = ob_get_clean();
ob_start(); include "elemente/shoppflicht002.txt"; $shoppflicht002 = ob_get_clean();
ob_start(); include "elemente/shoppflicht003.txt"; $shoppflicht003 = ob_get_clean();

$htmlwunschfelder =  generateFormFromText($wunschfelder);

// $formeinleitung = "$shoplinie <span style=\"font-size: 18px; font-color:997733;\"><strong>$artikelbezeichnung $shoplinie $preiszusatz $preis EURO</strong></span>$shoplinie $preisinfo $shoplinie<form action=\"pay.php\" method=\"post\">"; 
$formeinleitung = "$shoppflicht001<form action=\"pay.php\" method=\"post\">"; 

// if ($versand != "0,00") {$formeinleitung = "$shoplinie <span style=\"font-size: 18px; font-color:997733;\"><strong>$artikelbezeichnung $shoplinie $preiszusatz $preis EURO</strong></span>$shoplinie $preisinfov $shoplinie<form action=\"pay.php\" method=\"post\">"; }

$hiddenfelder = "<input type=\"hidden\" name=\"vonseite\" value=\"$vonseite\"> <input type=\"hidden\" name=\"artikelbezeichnung\" value=\"$artikelbezeichnung\"> <input type=\"hidden\" name=\"ustkat\" value=\"$ustkat\"> <input type=\"hidden\" name=\"vorrat\" value=\"$vorrat\"> <input type=\"hidden\" name=\"preis\" value=\"$preis\"> <input type=\"hidden\" name=\"versand\" value=\"$versand\"> <input type=\"hidden\" name=\"digiort\" value=\"$digiort\">";


if ($vorrat > 0) {
    $anzahlform = "<label style=\"font-size: 20px; margin-bottom: 5px; display: block;\"><br>Anzahl:</label>
    <select name=\"anzahl\" style=\"font-size: 20px; margin-bottom: 5px; display: block;\">";

    for ($i = 1; $i <= min($vorrat, 10); $i++) {
        $anzahlform .= "<option value=\"$i\">{$i}x</option>";
    }

    $anzahlform .= "</select><br>";
} else {
   // $anzahlform = "<span style=\"font-size: 20px; color: #a00000;\"><br>Artikel zurzeit nicht verfügbar</span><br><br>";
$anzahlform = "<br><br>";
}






// $button = "<input type=\"submit\" value=\"$buttontext\" style=\"font-size: 20px; margin-bottom: 5px; display: block;\"></form>";


$htmlwunschfelder = "<div style=\"max-width: 600px; margin: 20px auto; padding: 10px; background-color: transparent; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); border: 3px solid #333; border-radius: 10px;\">$formeinleitung $anzahlform $hiddenfelder $htmlwunschfelder $shoppflicht002</div>";


$dauertext = file_get_contents('elemente/dauertext.txt');
$text = <<<TEXT
[text]<span style="font-size: 20px;"><strong>##titel##</strong></span><br>&nbsp;<br> <br>Aqua Kühlmatte für Mensch und jedes Tier geeignet <br>KÜHLT<br>■ bei Hitze<br>■ auf Reisen<br>■ bei Sport und Spiel<br>■ im Freien<br>&nbsp;<br>Befreit von  <br>■ Hitzestress <br>■ Erhöhter Körpertemperatur <br>■ Verengungen der Atemwege durch Hitzestress<br>&nbsp;<br><br>Halten Sie Ihren Hund kühl und gesund!<br>&nbsp;<br>Aqua Coolkeeper TM hilft Ihrem Hund sich auf sichere und verantwortungsvolle Weise abzukühlen und gesund zu bleiben.<br>&nbsp;<br>Für die Kühlmatten benötigen Sie lediglich Wasser.<br>&nbsp;<br>Weshalb braucht mein Hund Aqua Coolkeeper TM?<br>Hunde haben fast keine Schweißdrüsen. Sie können ihre Körpertemperatur nur durch Hecheln oder Transpiration an den Ballen ihrer Pfoten regulieren. Hierdurch kann aber nur ein geringer Teil der überschüssigen Körpertemperatur abgebaut werden. Deshalb gilt für Hunde erhöhte Gefahr eines Hitzschlags, der zu dauerhaften Organschäden, Bewusstlosigkeit und in schweren Fällen sogar zum Tod führen kann.<br>&nbsp;<br>Wie hält Aqua Coolkeeper TM den Körper kühl?<br>Wenn Sie Aqua Coolkeeper TM in Wasser tauchen, wird das speziell entwickelte HydroQuartz TM im Innern des Produktes aktiviert und bildet ein aktiv kühlendes Gel. Dieses kühlende Gel nimmt Ihre Körperwärme auf und lässt sie verdunsten. Somit wird eine sofortige und anhaltende Kühlung erreicht.<br>&nbsp;<br>Wiederverwendbar und waschbar<br>Aqua Coolkeeper TM kann immer wieder verwendet werden. Eine kurze Handwäsche mit einem milden Reinigungsmittel in kaltem oder warmem Wasser und Ihr Aqua Coolkeeper TM ist so gut wie neu!<br>&nbsp;<br>Kühlschrank oder Gefriertruhe sind nicht nötig<br>Tauchen Sie Ihren Aqua CoolkeeperTM in kaltes Wasser und schon wird er Ihnen in Minuten eine Abkühlung verschaffen!<br>&nbsp;<br>Die Kühlmatte kann natürlich auch für andere Haustiere wie Katzen, Frettchen, Kaninchen.... und für uns selber verwendet werden.<br>&nbsp;<br>Aqua Coolkeeper TM bleibt bis zu 5 Tage kühl!<br>&nbsp;<br>Kühlt Ihren Hund<br> bei Hitze<br> auf Reisen<br> bei Sport und Spiel<br> im Freien Befreit von<br> Hitzestress<br> erhöhter Körpertemperatur<br> Verengungen der Atemwege durch Hitzestress<br>&nbsp;<br><img src="https://www.multi-sparshop.de/media/aqua-hunde-kuehlmatte-kuehldecke-kuehle-hundedecke-fuer-auto-reisen-strand.jpg" alt="Aqua Hunde Kühlmatte Kühldecke kühle Hundedecke für Auto + Reisen + Strand" title="Aqua Hunde Kühlmatte Kühldecke kühle Hundedecke für Auto + Reisen + Strand">[/text]
TEXT;


$text = str_replace("[text]", "", $text);
$text = str_replace("[/text]", "", $text);
$text = str_replace("afzghipoq", "\"", $text);
$text = str_replace("##titel##", $titel, $text);
$text = $text.$htmlwunschfelder;
// $text = $text."</div>".$dauertext;
$text = $text.$dauertext;

$text = str_replace("##rubrik##", $rrubrik, $text);
if (strpos($text, "#login#") !== false) {$geheim = 1;} else {$geheim = 0;}
if (($geheim == 1) && ($login == 1)) {$text = str_replace("#login#", "", $text);}
if (($geheim == 1) && ($login == 0)) {$text = "Diese Seite wird zurzeit überarbeitet...";}

// Suche das erste .jpg-Bild mit RegEx
if (preg_match('/<img[^>]+src="([^"]+\.jpg)"/', $text, $matches)) {
   $erstesbild = $matches[1]; 
} else {
    $erstesbild = file_get_contents("elemente/ersatzbild.txt");
   
}

// Funktion zum Ersetzen der Platzhalter mit Inhalten aus Dateien im 'data'-Ordner
function replacePlaceholder($text) {
    // Muster für Platzhalter ##xyz##
    preg_match_all('/##(.*?)##/', $text, $matches);

    foreach ($matches[1] as $filename) {
        $filePath = "data/" . $filename . ".txt";

        if (file_exists($filePath)) {
            $fileContent = file_get_contents($filePath);
            $text = str_replace("##{$filename}##", $fileContent, $text);
        }
    }

    return $text;
}
$text = replacePlaceholder($text);

// Funktion Multiblöcke
function replacePlaceholderWithFileContent($text) {
    return preg_replace_callback('/##insert:(.*?)##/', function ($matches) {
        $filename = $matches[1];
        if (file_exists($filename)) {
            return file_get_contents($filename);
        } else {
            return "[Fehler: Datei '$filename' nicht gefunden]";
        }
    }, $text);
}
$text = replacePlaceholderWithFileContent($text);

$titelzusatz = file_get_contents("elemente/titelzusatz.txt");
$seitentyp = file_get_contents("elemente/seitentyp.txt");
?>
<?php include("elemente/metaini.txt"); ?>
<title><?php echo $seitentitel; ?><?php echo $titelzusatz; ?></title>

<meta name="description" content="<?php echo $besch; ?>">
<meta name="keywords" content="<?php echo $keywords; ?>">
<meta name="robots" content="index, follow"> <!-- Ermöglicht Suchmaschinen, die Seite zu indexieren -->

<meta property="og:title" content="<?php echo $titel; ?>">
<meta property="og:description" content="<?php echo $besch; ?>">
<meta property="og:url" content="<?php echo $myurl; ?>"> <!-- URL Ihrer Webseite -->
<meta property="og:type" content="<?php echo $seitentyp; ?>">
<meta property="og:image" content="<?php echo $erstesbild; ?>"> <!-- Link zum Bild -->

<meta name="twitter:card" content="summary_large_image"> <!-- Kartentyp -->
<meta name="twitter:title" content="<?php echo $titel; ?>">
<meta name="twitter:description" content="<?php echo $besch; ?>">
<meta name="twitter:image" content="<?php echo $erstesbild; ?>"> <!-- Link zum Bild -->
<?php include("elemente/json.txt"); ?>
<?php include("elemente/inserthead.txt"); ?>
<?php include 'css.html'; ?>
</head>
<body>
<?php include 'header.php'; ?>
  <div class="container">
    <main>
	
	<?php
	// Dauerliste zu je 10 je seite auflisaten
$linie = "<hr style=\"!important; margin: 0; padding: 0; border: none; border-top: 2px solid #444444;\">";
$file = 'data/allpages.txt';
$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$links = [];
foreach ($lines as $line) {
    if (preg_match('/<a href="([^"]+)">([^<]+)<\/a>/', $line, $matches)) {
        $filePath = $matches[1]; // URL der Datei
        if (file_exists($filePath)) { // Überprüfung, ob die Datei existiert
            $links[] = ['url' => $matches[1], 'text' => $matches[2]];
        }
    }
}

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = file_get_contents("elemente/sitemapperpage.txt");
$totalPages = ceil(count($links) / $perPage);
$startIndex = ($page - 1) * $perPage;
$paginatedLinks = array_slice($links, $startIndex, $perPage);

$listausgabe = $listausgabe.$linie; // Linie oberhalb
foreach ($paginatedLinks as $link) {
$listausgabe = $listausgabe.'<a href="' . htmlspecialchars($link['url']) . '">' . htmlspecialchars($link['text']) . '</a><br>';
$listausgabe = $listausgabe.$linie; // Linie zwischen den Links
}
$listausgabe = $listausgabe."<br>";
if ($page > 1) {
$listausgabe = $listausgabe.'[<a href="?page=' . ($page - 1) . '">Zurück</a>]&nbsp;&nbsp;&nbsp;';
}
if ($page < $totalPages) {
$listausgabe = $listausgabe.'[<a href="?page=' . ($page + 1) . '">Weiter</a>]';
}
$text = str_replace("#alleseiten", $listausgabe, $text);

// Ende
?>

<?php

function getExcludedFiles($filePath) {
    return file_exists($filePath) ? array_map('trim', file($filePath)) : [];
}

function getFilesPerPage($filePath) {
    return file_exists($filePath) ? intval(trim(file_get_contents($filePath))) : 3; // Standardwert: 3
}

function getPhpFiles($directory, $excludedFiles) {
    $files = array_diff(scandir($directory), ['.', '..']);
    return array_filter($files, function ($file) use ($excludedFiles) {
        return pathinfo($file, PATHINFO_EXTENSION) === 'php' && !in_array($file, $excludedFiles);
    });
}

function formatLinkText($filename) {
    $name = pathinfo($filename, PATHINFO_FILENAME);
    $name = str_replace('-', ' ', $name);
    return ucfirst($name);
}

$excludedFiles = getExcludedFiles(__DIR__ . "/elemente/sperrdateien.txt");
$filesPerPage = getFilesPerPage(__DIR__ . "/elemente/sitemapperpage.txt");
$files = getPhpFiles(__DIR__, $excludedFiles);

$totalFiles = count($files);
$pages = array_chunk($files, $filesPerPage);

$page = isset($_GET['page']) ? intval($_GET['page']) : 0;
$currentFiles = $pages[$page] ?? [];

$output = $linie; // Linie oben

foreach ($currentFiles as $file) {
    $output .= "<a href='$file'>" . formatLinkText($file) . "</a><br>";
    $output .= $linie;
}
$output = $output."<br>";
if ($page > 0) {
$output .= "[<a href='?page=" . ($page - 1) . "'>Zurück</a>]&nbsp;&nbsp;&nbsp;";
}
if ($page < count($pages) - 1) {
    $output .= "[<a href='?page=" . ($page + 1) . "'>Weiter</a>]";
}
$text = str_replace("#sitemap", $output, $text);

?>



     <?php include("subheader.php"); ?><?php if ($login == 1) {echo $editlink;}?><div class="box"><?php echo $text; ?></div><?php include("subfooter.php"); ?>
    </main>
  </div>
 <?php include 'footer.php'; ?> <!-- Platzhalter für den Footer -->
 </body>
</html>