designtopack/public/site/templates/project.json.php
2025-01-22 17:08:32 +01:00

160 lines
No EOL
5 KiB
PHP

<?php
function getGlobalEvaluation($numberedGrade) {
if ($numberedGrade >= 0 && $numberedGrade < 3) {
return [
"letter" => "D",
"number" => $numberedGrade,
"mention" => "Assez lourd",
"comment" => "Allègement du flacon recommandé"
];
}
if ($numberedGrade >= 3 && $numberedGrade < 6) {
return [
"letter" => "C",
"number" => $numberedGrade,
"mention" => "Assez lourd",
"comment" => "Allègement du flacon recommandé"
];
}
if ($numberedGrade >= 6 && $numberedGrade < 8) {
return [
"letter" => "B",
"number" => $numberedGrade,
"mention" => "Assez lourd",
"comment" => "Allègement du flacon recommandé"
];
}
if ($numberedGrade >= 8 && $numberedGrade <= 10) {
return [
"letter" => "A",
"number" => $numberedGrade,
"mention" => "Assez lourd",
"comment" => "Allègement du flacon recommandé"
];
}
return [
"letter" => "",
"number" => $numberedGrade,
"mention" => "Assez lourd",
"comment" => "Allègement du flacon recommandé"
];
}
$project = [
"title" => $page->title()->value(),
"url" => $page->url(),
"modified" => $page->modified("Y-MM-d"),
"status" => $page->status(),
"logo" => $page->client()->isNotEmpty() && $page->client()->toPage() ? $page->client()->toPage()->logo()->toFile()->url() : null,
"steps" => $page->getSteps(),
"designToLight" => null
];
if ($page->isDTLEnabled()) {
$DTLProposal = null;
$proposalLocation = $page->DTLProposalLocation()->value();
switch ($proposalLocation) {
case 'proposal':
$proposalPage = $page->find('proposal');
$proposalFile = $page->DTLProposal()->toFile();
if ($proposalPage && $proposalFile) {
$index = $proposalPage->pdf()->toFiles()->indexOf($proposalFile);
$DTLProposal = [
"location" => "proposal",
"path" => "/projects/" . $page->slug() . "?dialog=proposal&fileIndex=" . $index,
"date" => $proposalFile->modified("Y-MM-d"),
"stepLabel" => "Proposition commerciale",
];
}
break;
case 'industrialIdeation':
$proposalPage = $page->find('industrial-ideation');
$proposalFile = $page->DTLindustrialIdeation()->toFile();
if ($proposalPage && $proposalFile) {
$index = $proposalPage->pdf()->toFiles()->indexOf($proposalFile);
$DTLProposal = [
"location" => "proposal",
"path" => "/projects/" . $page->slug() . "?dialog=industrial-ideation&fileIndex=" . $index,
"date" => $proposalFile->modified("Y-MM-d"),
"stepLabel" => "Idéation industrielle"
];
}
break;
case 'virtualSampleDynamicTrack':
$proposalPage = $page->DTLVirtualSampleDynamicTrack()->toPage();
if ($proposalPage) {
$DTLProposal = [
"location" => "proposal",
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
"date" => $proposalPage->modified("Y-MM-d"),
"stepLabel" => "Échantillon virtuel"
];
}
break;
case 'virtualSampleStaticTrack':
$proposalPage = $page->find('virtual-sample');
$proposalFile = $page->DTLVirtualSampleStaticTrack()->toFile();
if ($proposalPage && $proposalFile) {
$DTLProposal = [
"location" => "proposal",
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
"date" => $proposalFile->modified("Y-MM-d"),
"stepLabel" => "Échantillon virtuel"
];
}
break;
}
if ($page->DTLGrade()->isNotEmpty()) {
$numberedGlobalGrade = (int) $page->DTLGrade()->value() ?? 0;
$DTLProposal["grades"] = [
"global" => getGlobalEvaluation($numberedGlobalGrade),
"indicators" => [
[
"label" => "design",
"value" => (int) $page->DTLDesignGrade()->value() ?? 0,
],
[
"label" => "ring",
"value" => (int) $page->DTLRingGrade()->value() ?? 0,
],
[
"label" => "shoulder",
"value" => (int) $page->DTLShoulderGrade()->value() ?? 0,
],
[
"label" => "skeleton",
"value" => (int) $page->DTLSkeletonGrade()->value() ?? 0,
],
[
"label" => "foot",
"value" => (int) $page->DTLFootGrade()->value() ?? 0,
],
[
"label" => "bottom",
"value" => (int) $page->DTLBottomGrade()->value() ?? 0,
]
],
];
}
$project["designToLight"] = $DTLProposal;
}
$pageData = array_merge($genericData, $project);
echo json_encode([
"page" => $pageData,
"user" => $userData
]);