]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/attachmentlistitem.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / lib / attachmentlistitem.php
index 1f2a925b0c057366bae815c64a4e28e1f3df4d38..dc46a81fe731a2f9143f2db2a52b559a26090eec 100644 (file)
@@ -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':
@@ -163,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'))) {
@@ -226,13 +235,9 @@ class AttachmentListItem extends Widget
         $body = preg_replace('/^.*<body[^>]*>/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);
     }
 
     /**