headers->get('x-auth-token'); $security->isGranted('MAESTRO_PROJECT_PROJECTS_UPDATE', $token); $method = 'addPage'; $key = 'page'; $data = json_decode($request->getContent(), true); $views = []; foreach ($data as $d) { $pageName = isset($d['name']) ? (string) $d['name'] : ""; $nbElement = isset($d['nbProducts']) ? (int) $d['nbProducts'] : 0; $selectedElements = isset($d['elements']) ? $d['elements'] : []; $nbSelectedElement = count($selectedElements); $nbPages = isset($d['nbPages']) && $d['nbPages'] > 0 ? (int) $d['nbPages'] : 1; $templateId = isset($d['templateId']) ? (int) $d['templateId'] : null; if ($templateId && count($selectedElements) > $nbElement && $nbElement !== 0) { if (!$pageName) { $pageName = "Page"; } $pageNumberToCreate = (int) $nbSelectedElement / (int) $nbElement; $oldIndex = 0; $newIndex = $nbElement; for ($i = 0; $i < $pageNumberToCreate; $i++) { $elements = array_slice($selectedElements, $oldIndex, $newIndex); $oldIndex += $nbElement; $views[] = new PageCreateView( $id, $nbPages, $nbElement, $pageName . " " . ($i + 1), $templateId, (string) json_encode($elements), $nbSelectedElement ); } } else { $views[] = new PageCreateView( $id, $nbPages, $nbElement, $pageName, $templateId, (string) json_encode($selectedElements), $nbSelectedElement ); } } $pages = $pageQuery->addPage($views, null); $ids = $pageService->autoAssignMedias($pages); if (!empty($ids["pageOptionsId"])) { $pageService->managePagesGeneration($ids["pageOptionsId"], $pages, $token); } return $respond->statusCreated()->createBodyObject(new CommonResponseView($ids["pageIds"], $method, $key, 'success'))->respond(); } }