public function getDiaporamaDataAction($shortcode) { $diaporama = Diaporama::getByShortcode($shortcode); if (is_null($diaporama)) { $result = array('error' => $this->translator->trans('diaporama.read.no_shortcode %shortcode', array('shortcode' => $shortcode), Diaporamas::BO_MESSAGE_DOMAIN)); } else { $result = array('id' => $diaporama->getId(), 'title' => $diaporama->getTitle(), 'shortcode' => $diaporama->getShortcode(), 'created_at' => $diaporama->getCreatedAt(), 'updated_at' => $diaporama->getUpdatedAt(), 'locale' => $diaporama->getLocale(), 'images' => array()); // Data for images $loop = new DiaporamaImageLoop($this->getContainer()); $loop->initializeArgs(array('source_id' => $diaporama->getId(), 'order' => 'manual')); /** @var DiaporamaImageQuery $query */ $query = $loop->buildModelCriteria(); $res = $query->find(); $diaporamaImagesRows = $loop->parseResults(new LoopResult($res)); /** @var LoopResultRow $row */ foreach ($diaporamaImagesRows as $row) { $result['images'][] = array('id' => $row->get('ID'), 'position' => $row->get('POSITION'), 'visible' => boolval($row->get('VISIBLE')), 'title' => is_null($row->get('TITLE')) ? '' : $row->get('TITLE'), 'chapo' => is_null($row->get('CHAPO')) ? '' : $row->get('CHAPO'), 'description' => is_null($row->get('DESCRIPTION')) ? '' : $row->get('DESCRIPTION'), 'postscriptum' => is_null($row->get('POSTSCRIPTUM')) ? '' : $row->get('POSTSCRIPTUM'), 'image_url' => $row->get('IMAGE_URL'), 'processing_error' => boolval($row->get('PROCESSING_ERROR'))); } } return new JsonResponse($result); }