world-game/site/templates/article.json.php

28 lines
808 B
PHP
Raw Permalink Normal View History

<?php
$related = $page->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);