}
// Find page and skip this if page not found
+ /** @var ?Page $matchedPage */
$matchedPage = Page::visible()->find($pageId);
if ($matchedPage === null) {
$html = str_replace($fullMatch, '', $html);
if ($homepageOption === 'page') {
$homepageSetting = setting('app-homepage', '0:');
$id = intval(explode(':', $homepageSetting)[0]);
+ /** @var Page $customHomepage */
$customHomepage = Page::query()->where('draft', '=', false)->findOrFail($id);
$pageContent = new PageContent($customHomepage);
- $customHomepage->html = $pageContent->render(true);
+ $customHomepage->html = $pageContent->render(false);
return view('home.specific-page', array_merge($commonData, ['customHomepage' => $customHomepage]));
}
use BookStack\Auth\Role;
use BookStack\Auth\User;
use BookStack\Entities\Models\Bookshelf;
+use BookStack\Entities\Models\Page;
class HomepageTest extends TestCase
{
$pageDeleteReq->assertSessionMissing('error');
}
+ public function test_custom_homepage_renders_includes()
+ {
+ $this->asEditor();
+ /** @var Page $included */
+ $included = Page::query()->first();
+ $content = str_repeat('This is the body content of my custom homepage.', 20);
+ $included->html = $content;
+ $included->save();
+
+ $name = 'My custom homepage';
+ $customPage = $this->newPage(['name' => $name, 'html' => '{{@' . $included->id . '}}']);
+ $this->setSettings(['app-homepage' => $customPage->id]);
+ $this->setSettings(['app-homepage-type' => 'page']);
+
+ $homeVisit = $this->get('/');
+ $homeVisit->assertSee($name);
+ $homeVisit->assertSee($content);
+ }
+
public function test_set_book_homepage()
{
$editor = $this->getEditor();