X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FFile_thumbnail.php;h=ccfcd0e5ae2e0c165acb059c54853efc96acd29c;hb=6c595e8e9a5f752f11d32c1690e9ba4f3ca99bf7;hp=274b815c4566435d1ccc87d9acd614581424d305;hpb=7a106f6669a62e401fc0c4c09c6c6859328ec3a2;p=quix0rs-gnu-social.git diff --git a/classes/File_thumbnail.php b/classes/File_thumbnail.php index 274b815c45..ccfcd0e5ae 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'), @@ -137,12 +137,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)); @@ -152,10 +152,33 @@ 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; } + public function getHeight() + { + return $this->height; + } + + public function getWidth() + { + return $this->width; + } + + /** + * @throws UseFileAsThumbnailException from File_thumbnail->getUrl() for stuff like animated GIFs + */ + public function getHtmlAttrs(array $orig=array(), $overwrite=true) + { + $attrs = [ + 'height' => $this->getHeight(), + 'width' => $this->getWidth(), + 'src' => $this->getUrl(), + ]; + return $overwrite ? array_merge($orig, $attrs) : array_merge($attrs, $orig); + } + public function delete($useWhere=false) { if (!empty($this->filename) && file_exists(File_thumbnail::path($this->filename))) {