false, 'preview' => [ 'permalinkUrl' => '', 'permaviewUrl' => '', 'embedUrl' => '', 'width' => '', 'height' => '' ] ]; $record = new \record_adapter($this->app, \phrasea::sbasFromBas($this->app, $base_id), $record_id); if (!$this->getAclForUser()->has_access_to_subdef($record, 'preview')) { $this->app->abort(403); } $preview = $record->get_preview(); if ($preview->get_permalink() !== null) { $subdefName = $preview->get_name(); $subdef = $record->get_subdef($subdefName); switch ($record->getType()) { case 'flexpaper': case 'document': case 'audio': case 'video': default: $token = $preview->get_permalink()->get_token(); $permalinkUrl = $preview->get_permalink()->get_url(); $permaviewUrl = $preview->get_permalink()->get_page(); $previewWidth = $preview->get_width(); $previewHeight = $preview->get_height(); break; } $sbas_id = $record->getDataboxId(); $baseUrl = $this->app['request']->getSchemeAndHttpHost().$this->app['request']->getBaseUrl(); $embedUrl = $baseUrl.'/embed/'.$sbas_id.'/'.$record_id.'/'.$subdefName.'/?token='.$token; $outputVars = [ 'isAvailable' => true, 'preview' => [ 'permalinkUrl' => $permalinkUrl, 'permaviewUrl' => $permaviewUrl, 'embedUrl' => $embedUrl, 'width' => $previewWidth, 'height' => $previewHeight ] ]; } return $this->renderResponse('prod/Share/record.html.twig', $outputVars); } }