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':
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'))) {
$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);
}
/**