From 6332a4d800c7cb63f5da6eae25d82135cfc0d244 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Thu, 7 Jul 2016 00:45:31 +0200 Subject: [PATCH] Handle FileNotStoredLocallyException in attachmentlistitem --- lib/attachmentlistitem.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/attachmentlistitem.php b/lib/attachmentlistitem.php index dc22c8af29..133756147c 100644 --- a/lib/attachmentlistitem.php +++ b/lib/attachmentlistitem.php @@ -63,7 +63,7 @@ class AttachmentListItem extends Widget } function title() { - return $this->attachment->getTitle(); + return $this->attachment->getTitle() ?: _('Untitled attachment'); } function linkTitle() { @@ -141,7 +141,13 @@ class AttachmentListItem extends Widget if ($thumb instanceof File_thumbnail) { $this->out->element('img', $thumb->getHtmlAttrs(['class'=>'u-photo', 'alt' => ''])); } else { - $this->out->element('img', array('class'=>'u-photo', 'src' => $this->attachment->getUrl(), 'alt' => $this->attachment->getTitle())); + try { + // getUrl(true) because we don't want to hotlink, could be made configurable + $this->out->element('img', ['class'=>'u-photo', 'src'=>$this->attachment->getUrl(true), 'alt' => $this->attachment->getTitle()]); + } catch (FileNotStoredLocallyException $e) { + $url = $e->file->getUrl(false); + $this->out->element('a', ['href'=>$url, 'rel'=>'external'], $url); + } } unset($thumb); // there's no need carrying this along after this break;