X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fattachmentlistitem.php;h=de1087d44cb75f360df589ecd4abfe8ed9566207;hb=0a4eeb89dab241779147c8c02a8f5f0f83533309;hp=dc22c8af2915992d6907e4db7bc1c377a04e4000;hpb=6a95a0cecbe810c35610972f75a1dcfe9e0c44b5;p=quix0rs-gnu-social.git diff --git a/lib/attachmentlistitem.php b/lib/attachmentlistitem.php index dc22c8af29..de1087d44c 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() { @@ -81,33 +81,36 @@ class AttachmentListItem extends Widget function show() { $this->showStart(); - $this->showNoticeAttachment(); + try { + $this->showNoticeAttachment(); + } catch (Exception $e) { + $this->element('div', ['class'=>'error'], $e->getMessage()); + common_debug($e->getMessage()); + } $this->showEnd(); } function linkAttr() { - return array('class' => 'attachment', + return array( + 'class' => 'u-url', 'href' => $this->attachment->getAttachmentUrl(), - 'id' => 'attachment-' . $this->attachment->getID(), 'title' => $this->linkTitle()); } - function showLink() { - $this->out->elementStart('a', $this->linkAttr()); - $this->out->element('span', null, $this->linkTitle()); - $this->showRepresentation(); - $this->out->elementEnd('a'); - } - function showNoticeAttachment() { - $this->showLink(); + $this->showRepresentation(); } function showRepresentation() { $enclosure = $this->attachment->getEnclosure(); if (Event::handle('StartShowAttachmentRepresentation', array($this->out, $this->attachment))) { + + $this->out->elementStart('label'); + $this->out->element('a', $this->linkAttr(), $this->title()); + $this->out->elementEnd('label'); + if (!empty($enclosure->mimetype)) { // First, prepare a thumbnail if it exists. $thumb = null; @@ -141,7 +144,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; @@ -168,7 +177,7 @@ class AttachmentListItem extends Widget default: unset($thumb); // there's no need carrying this along - switch ($this->attachment->mimetype) { + switch (common_bare_mime($this->attachment->mimetype)) { case 'text/plain': $this->element('div', ['class'=>'e-content plaintext'], file_get_contents($this->attachment->getPath())); break;