diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php b/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php index acf14b43c5..2cff5fdc5f 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php @@ -23,14 +23,62 @@ class ShareController extends Controller */ public function shareRecord($base_id, $record_id) { + $outputVars = [ + 'isAvailable' => 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); } - return $this->renderResponse('prod/Share/record.html.twig', [ - 'record' => $record, - ]); + $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); } } diff --git a/templates/web/prod/Share/record.html.twig b/templates/web/prod/Share/record.html.twig index 3a59aca14d..edb8321f03 100644 --- a/templates/web/prod/Share/record.html.twig +++ b/templates/web/prod/Share/record.html.twig @@ -1,43 +1,56 @@ -{% set preview = record.get_preview()%} - -{% if preview is iterable %} -
{{ 'No preview available.' | trans }}
-{% elseif preview.get_permalink() is none %} -{{ 'No permalink available.' | trans }}
+{% if not isAvailable %} +{{ 'No permalink available.' | trans }}
{# +{{ 'No preview available.' | trans }}
#} {% else %} - {% set type = record.get_type() %} - {% set url = preview.get_permalink().get_url() %} - {% set pageurl = preview.get_permalink().get_page() %} - - {% if url is not empty %} + {% if preview.permalinkUrl is not empty %}