forked from GNUsocial/gnu-social
Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful.
This commit is contained in:
parent
8a221228eb
commit
5697e4edb0
@ -306,7 +306,7 @@ class Attachment extends AttachmentListItem
|
|||||||
function showRepresentation() {
|
function showRepresentation() {
|
||||||
if (empty($this->oembed->type)) {
|
if (empty($this->oembed->type)) {
|
||||||
if (empty($this->attachment->mimetype)) {
|
if (empty($this->attachment->mimetype)) {
|
||||||
$this->out->element('pre', null, 'oh well... not sure how to handle the following: ' . print_r($this->attachment, true));
|
$this->showFallback();
|
||||||
} else {
|
} else {
|
||||||
switch ($this->attachment->mimetype) {
|
switch ($this->attachment->mimetype) {
|
||||||
case 'image/gif':
|
case 'image/gif':
|
||||||
@ -332,6 +332,8 @@ class Attachment extends AttachmentListItem
|
|||||||
$this->out->element('param', array('name' => 'autoStart', 'value' => 1));
|
$this->out->element('param', array('name' => 'autoStart', 'value' => 1));
|
||||||
$this->out->elementEnd('object');
|
$this->out->elementEnd('object');
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
$this->showFallback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -354,9 +356,23 @@ class Attachment extends AttachmentListItem
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$this->out->element('pre', null, 'oh well... not sure how to handle the following oembed: ' . print_r($this->oembed, true));
|
$this->showFallback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showFallback()
|
||||||
|
{
|
||||||
|
// If we don't know how to display an attachment inline, we probably
|
||||||
|
// shouldn't have gotten to this point.
|
||||||
|
//
|
||||||
|
// But, here we are... displaying details on a file or remote URL
|
||||||
|
// either on the main view or in an ajax-loaded lightbox. As a lesser
|
||||||
|
// of several evils, we'll try redirecting to the actual target via
|
||||||
|
// client-side JS.
|
||||||
|
|
||||||
|
common_log(LOG_ERR, "Empty or unknown type for file id {$this->attachment->id}; falling back to client-side redirect.");
|
||||||
|
$this->out->raw('<script>window.location = ' . json_encode($this->attachment->url) . ';</script>');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user