$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(), "notifications" => Yaml::decode($project->notifications()->value), "uuid" => (string) $project->uuid(), "slug" => (string) $project->slug(), "isDTLEnabled" => $project->isDTLEnabled()->value() == "true" ? true : false ]; if ($project->isDTLEnabled()) { $data["designToLight"] = processDTLProposals($project); } return $data; } try { $children = $kirby->user()->role() == "admin" ? $page->childrenAndDrafts()->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 ]);