$project->title()->value(), 'url' => $project->url(), 'uri' => '/' . $project->uri(), 'modified' => $project->modified('Y-MM-d'), 'currentStep' => $project->currentStep()->value(), 'status' => $project->status(), 'logo' => $project->client()->toPage() ? $project->client()->toPage()->logo()->toFile()->url() : '', 'steps' => $project->getSteps() ]; } try { $children = $kirby->user()->role() == 'admin' ? $page->children()->map(fn($project) => getProjectData($project))->values() : $kirby->user()->projects()->toPages()->map(fn($project) => getProjectData($project))->values(); } catch (\Throwable $th) { throw new Exception($th->getMessage() . ' line ' . $th->getLine(), 1); $children = []; } $specificData = [ "children" => $children, ]; $pageData = array_merge($genericData, $specificData); echo json_encode([ "page" => $pageData, "user" => $userData ]);