X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fattachmentlistitem.php;h=6ee3c7087b43d5d573489974693ed89c8bfcf9fb;hb=9b613029e65f97b41f9b2708bf7f5dfaee03beb1;hp=655ae733005a29f89ff01b23c19a558513208aa1;hpb=d4be5349b30f49fa049dbfc854bb2a95eeb1d5c1;p=quix0rs-gnu-social.git diff --git a/lib/attachmentlistitem.php b/lib/attachmentlistitem.php index 655ae73300..6ee3c7087b 100644 --- a/lib/attachmentlistitem.php +++ b/lib/attachmentlistitem.php @@ -129,6 +129,12 @@ class AttachmentListItem extends Widget if ($this->attachment->mimetype === 'application/ogg') { $mediatype = 'video'; // because this element can handle Ogg/Vorbis etc. on its own } + + // Ugly hack to show text/html links which have a thumbnail (such as from oEmbed/OpenGraph image URLs) + if (!in_array($mediatype, ['image','audio','video']) && $thumb instanceof File_thumbnail) { + $mediatype = 'image'; + } + switch ($mediatype) { // Anything we understand as an image, if we need special treatment, do it in StartShowAttachmentRepresentation case 'image': @@ -146,6 +152,8 @@ class AttachmentListItem extends Widget if ($thumb instanceof File_thumbnail) { $poster = $thumb->getUrl(); unset($thumb); // there's no need carrying this along after this + } else { + $poster = null; } $this->out->elementStart($mediatype, @@ -161,6 +169,9 @@ class AttachmentListItem extends Widget default: unset($thumb); // there's no need carrying this along switch ($this->attachment->mimetype) { + case 'text/plain': + $this->element('div', ['class'=>'e-content plaintext'], file_get_contents($this->attachment->getPath())); + break; case 'text/html': if (!empty($this->attachment->filename) && (GNUsocial::isAjax() || common_config('attachments', 'show_html'))) { @@ -193,11 +204,7 @@ class AttachmentListItem extends Widget */ protected function scrubHtmlFile(File $attachment) { - $path = File::path($attachment->filename); - if (!file_exists($path) || !is_readable($path)) { - common_log(LOG_ERR, "Missing local HTML attachment $path"); - return false; - } + $path = $attachment->getPath(); $raw = file_get_contents($path); // Normalize... @@ -224,13 +231,9 @@ class AttachmentListItem extends Widget $body = preg_replace('/^.*]*>/is', '', $body); $body = preg_replace('/<\/body[^>]*>.*$/is', '', $body); - require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; - $config = array('safe' => 1, - 'deny_attribute' => 'id,style,on*', - 'comment' => 1); // remove comments - $scrubbed = htmLawed($body, $config); - - return $scrubbed; + require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php'; + $purifier = new HTMLPurifier(); + return $purifier->purify($body); } /**