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);
 }