relatedArticles()->toPages(); if ($related->isEmpty()) { $related = $page->siblings()->listed()->not($page)->shuffle()->limit(3); } $specificData = [ 'published' => $page->published()->toDate('d/m/Y'), 'intro' => $page->intro()->value(), 'cover' => $page->cover()->toFile()?->url(), 'body' => (string) $page->body()->toBlocks(), 'related' => $related->map(function($rec) { return [ 'title' => $rec->title()->value(), 'slug' => $rec->slug(), 'date' => $rec->date()->toDate('d/m/Y'), 'cover' => $rec->cover()->toFile()?->url(), ]; })->values(), 'parentUrl' => $page->parent()->url(), ]; $pageData = array_merge($genericData, $specificData); header('Content-Type: application/json'); echo json_encode($pageData);