find('div[data-kind="SECTION"]'); if (empty($sections)) { die('Keine Beiträge gefunden.'); } foreach ($sections as $section) { // Extrahiere Datum $dateElement = $section->find('h3.textheading3', 0); if (!$dateElement) { continue; // Überspringe, wenn kein Datum vorhanden ist } $date = trim($dateElement->plaintext); // Suche nach dem Textbereich mit dem Hauptinhalt $textComponents = $section->find('div[data-specific-kind="TEXT"]'); if (empty($textComponents)) { continue; // Überspringe, wenn kein Textbereich gefunden wurde } // Finde die Komponente mit dem Titel und Link $titleElement = null; $mainContent = null; foreach ($textComponents as $textComponent) { $linkElement = $textComponent->find('a.link4', 0); if ($linkElement) { $titleElement = $linkElement; $mainContent = $textComponent; break; } } if (!$titleElement) { continue; // Überspringe, wenn kein Titel gefunden wurde } $title = trim($titleElement->plaintext); $uri = urljoin(self::URI, $titleElement->href); // Extrahiere Changelog-Inhalt aus dem Haupttextbereich $content = ''; // Füge den Titel zum Content hinzu $content .= '
Datum: ' . $date . '
'; if ($mainContent) { // Suche nach allen Überschriften, Listen und Absätzen im Haupttextbereich $contentElements = $mainContent->find('h1, h2, h3, ul, p'); foreach ($contentElements as $element) { // Überspringe den Titel, den wir bereits hinzugefügt haben if ($element->tag == 'h1' && strpos($element->plaintext, $title) !== false) { continue; } // Überspringe spezielle Absätze am Ende if ($element->tag == 'p' && (strpos($element->plaintext, 'not only for EverSD') !== false || strpos($element->plaintext, 'Everyone can enjoy') !== false)) { continue; } // Füge andere Elemente zum Inhalt hinzu if ($element->tag == 'h2' || $element->tag == 'h3') { $content .= '<' . $element->tag . '>' . trim($element->plaintext) . '' . $element->tag . '>'; } elseif ($element->tag == 'ul') { $content .= $element->outertext; } elseif ($element->tag == 'p' && !empty(trim($element->plaintext))) { $content .= '' . trim($element->plaintext) . '
'; } } } // Suche nach eingebetteten Videos $videoComponents = $section->find('div[data-specific-kind="VIDEO"]'); if (!empty($videoComponents)) { foreach ($videoComponents as $videoComponent) { $iframe = $videoComponent->find('iframe', 0); if ($iframe && isset($iframe->src)) { $videoSrc = $iframe->src; $content .= ''; // In der Regel gibt es nur ein Video pro Beitrag break; } } } // Suche nach Bildern/Galleries $galleryComponents = $section->find('div[data-specific-kind="GALLERY"]'); if (!empty($galleryComponents)) { foreach ($galleryComponents as $galleryComponent) { $images = $galleryComponent->find('img'); if (!empty($images)) { $content .= '