From 44db711c5218dac4aecb1ce3a0d0af76e6d1903e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Mummert?= Date: Tue, 30 Dec 2025 21:29:33 +0100 Subject: [PATCH] Bugfix --- .../MeilisearchPageMarkerListener.php | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/EventListener/MeilisearchPageMarkerListener.php b/src/EventListener/MeilisearchPageMarkerListener.php index 1a9a0f1..2c6ff57 100644 --- a/src/EventListener/MeilisearchPageMarkerListener.php +++ b/src/EventListener/MeilisearchPageMarkerListener.php @@ -215,8 +215,40 @@ class MeilisearchPageMarkerListener $injection = $hiddenMeta . $marker; - return str_contains($buffer, '') - ? str_replace('', $injection . '', $buffer) - : $buffer . $injection; + return $this->injectIntoMainInside($buffer, $injection); + } + private function injectIntoMainInside(string $buffer, string $injection): string + { + // 1.
finden + $mainPos = stripos($buffer, '
+ return str_contains($buffer, '') + ? str_replace('', $injection . '', $buffer) + : $buffer . $injection; + } + + // 2. Ab dort
suchen + $afterMain = substr($buffer, $mainPos); + $insidePos = stripos($afterMain, '
+ $insertPos = $mainPos + strlen('
'); + return substr($buffer, 0, $insertPos) + . "\n" . $injection . "\n" + . substr($buffer, $insertPos); + } + + // 3. Ende des opening
suchen + $openTagEnd = stripos($afterMain, '>', $insidePos); + if ($openTagEnd === false) { + return $buffer; + } + + $insertPos = $mainPos + $openTagEnd + 1; + + return substr($buffer, 0, $insertPos) + . "\n" . $injection . "\n" + . substr($buffer, $insertPos); } } \ No newline at end of file