mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-26 12:16:07 +00:00
parent
95d4149d5e
commit
c380c10d54
@ -715,6 +715,7 @@ class EntityRepo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
|
libxml_use_internal_errors(true);
|
||||||
$doc->loadHTML(mb_convert_encoding('<body>'.$matchedPage->html.'</body>', 'HTML-ENTITIES', 'UTF-8'));
|
$doc->loadHTML(mb_convert_encoding('<body>'.$matchedPage->html.'</body>', 'HTML-ENTITIES', 'UTF-8'));
|
||||||
$matchingElem = $doc->getElementById($splitInclude[1]);
|
$matchingElem = $doc->getElementById($splitInclude[1]);
|
||||||
if ($matchingElem === null) {
|
if ($matchingElem === null) {
|
||||||
@ -730,6 +731,7 @@ class EntityRepo
|
|||||||
$innerContent .= $doc->saveHTML($childNode);
|
$innerContent .= $doc->saveHTML($childNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
libxml_clear_errors();
|
||||||
$html = str_replace($matches[0][$index], trim($innerContent), $html);
|
$html = str_replace($matches[0][$index], trim($innerContent), $html);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,4 +143,20 @@ class PageContentTest extends TestCase
|
|||||||
$pageView->assertDontSee(htmlentities($script));
|
$pageView->assertDontSee(htmlentities($script));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_duplicate_ids_does_not_break_page_render()
|
||||||
|
{
|
||||||
|
$this->asEditor();
|
||||||
|
$pageA = Page::first();
|
||||||
|
$pageB = Page::query()->where('id', '!=', $pageA->id)->first();
|
||||||
|
|
||||||
|
$content = '<ul id="bkmrk-xxx-%28"></ul> <ul id="bkmrk-xxx-%28"></ul>';
|
||||||
|
$pageA->html = $content;
|
||||||
|
$pageA->save();
|
||||||
|
|
||||||
|
$pageB->html = '<ul id="bkmrk-xxx-%28"></ul> <p>{{@'. $pageA->id .'#test}}</p>';
|
||||||
|
$pageB->save();
|
||||||
|
|
||||||
|
$pageView = $this->get($pageB->getUrl());
|
||||||
|
$pageView->assertSuccessful();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user