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
edee1fc09e
commit
7aee7670c7
|
@ -306,7 +306,7 @@ class Attachment extends AttachmentListItem
|
|||
function showRepresentation() {
|
||||
if (empty($this->oembed->type)) {
|
||||
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 {
|
||||
switch ($this->attachment->mimetype) {
|
||||
case 'image/gif':
|
||||
|
@ -332,6 +332,8 @@ class Attachment extends AttachmentListItem
|
|||
$this->out->element('param', array('name' => 'autoStart', 'value' => 1));
|
||||
$this->out->elementEnd('object');
|
||||
break;
|
||||
default:
|
||||
$this->showFallback();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -354,9 +356,23 @@ class Attachment extends AttachmentListItem
|
|||
break;
|
||||
|
||||
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