From 346e34e543be179967a704b813883d4d12784fa2 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Wed, 6 Jan 2016 19:06:29 +0100 Subject: [PATCH] Return dynamically generated URLs for thumbnails for all locally stored entries --- classes/File.php | 2 +- classes/File_thumbnail.php | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/classes/File.php b/classes/File.php index 24c4e6a232..99413adbcc 100644 --- a/classes/File.php +++ b/classes/File.php @@ -660,4 +660,4 @@ class File extends Managed_DataObject echo "DONE.\n"; echo "Resuming core schema upgrade..."; } -} \ No newline at end of file +} diff --git a/classes/File_thumbnail.php b/classes/File_thumbnail.php index e1eb79e099..186ffc50a0 100644 --- a/classes/File_thumbnail.php +++ b/classes/File_thumbnail.php @@ -38,7 +38,7 @@ class File_thumbnail extends Managed_DataObject return array( 'fields' => array( 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'thumbnail for what URL/file'), - 'url' => array('type' => 'text', 'not null' => false, 'description' => 'URL of thumbnail'), + 'url' => array('type' => 'text', 'description' => 'URL of thumbnail'), 'filename' => array('type' => 'text', 'description' => 'if stored locally, filename is put here'), 'width' => array('type' => 'int', 'description' => 'width of thumbnail'), 'height' => array('type' => 'int', 'description' => 'height of thumbnail'), @@ -134,12 +134,12 @@ class File_thumbnail extends Managed_DataObject public function getUrl() { - if (!empty($this->getFile()->filename)) { + if (!empty($this->filename) || $this->getFile()->isLocal()) { // A locally stored File, so we can dynamically generate a URL. if (!empty($this->url)) { // Let's just clear this field as there is no point in having it for local files. $orig = clone($this); - $this->url = null; + $this->url = ''; $this->update($orig); } $url = common_local_url('attachment_thumbnail', array('attachment'=>$this->file_id)); @@ -149,7 +149,7 @@ class File_thumbnail extends Managed_DataObject return $url . http_build_query(array('w'=>$this->width, 'h'=>$this->height)); } - // No local filename available, return the URL we have stored + // No local filename available, return the remote URL we have stored return $this->url; } @@ -163,6 +163,9 @@ class File_thumbnail extends Managed_DataObject return $this->width; } + /** + * @throws UseFileAsThumbnailException from File_thumbnail->getUrl() for stuff like animated GIFs + */ public function getHtmlAttrs(array $orig=array(), $overwrite=true) { $attrs = [