Handle FileNotStoredLocallyException in attachmentlistitem

This commit is contained in:
Mikael Nordfeldth 2016-07-07 00:45:31 +02:00
parent f02d32b718
commit 6332a4d800

View File

@ -63,7 +63,7 @@ class AttachmentListItem extends Widget
} }
function title() { function title() {
return $this->attachment->getTitle(); return $this->attachment->getTitle() ?: _('Untitled attachment');
} }
function linkTitle() { function linkTitle() {
@ -141,7 +141,13 @@ class AttachmentListItem extends Widget
if ($thumb instanceof File_thumbnail) { if ($thumb instanceof File_thumbnail) {
$this->out->element('img', $thumb->getHtmlAttrs(['class'=>'u-photo', 'alt' => ''])); $this->out->element('img', $thumb->getHtmlAttrs(['class'=>'u-photo', 'alt' => '']));
} else { } 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 unset($thumb); // there's no need carrying this along after this
break; break;