mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-30 07:32:39 +01:00
parent
95d4149d5e
commit
c380c10d54
@ -715,6 +715,7 @@ class EntityRepo
|
||||
}
|
||||
|
||||
$doc = new DOMDocument();
|
||||
libxml_use_internal_errors(true);
|
||||
$doc->loadHTML(mb_convert_encoding('<body>'.$matchedPage->html.'</body>', 'HTML-ENTITIES', 'UTF-8'));
|
||||
$matchingElem = $doc->getElementById($splitInclude[1]);
|
||||
if ($matchingElem === null) {
|
||||
@ -730,6 +731,7 @@ class EntityRepo
|
||||
$innerContent .= $doc->saveHTML($childNode);
|
||||
}
|
||||
}
|
||||
libxml_clear_errors();
|
||||
$html = str_replace($matches[0][$index], trim($innerContent), $html);
|
||||
}
|
||||
|
||||
|
@ -143,4 +143,20 @@ class PageContentTest extends TestCase
|
||||
$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