Primarily the getUrl call is fixed. Also some new class calls

The getUrl call would think that a File_thumbnail object was the child
of a local File if its filename was set. That has been true up to recent
development code where a File_thumbnail can have a 'filename' value,
but the original File does not. Only look at the File object to indicate
whether it's a local or remote file!
This commit is contained in:
Mikael Nordfeldth 2015-01-25 02:32:57 +01:00
parent 999175d741
commit 8fbdb45cc6
1 changed files with 19 additions and 5 deletions

View File

@ -17,9 +17,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } if (!defined('GNUSOCIAL')) { exit(1); }
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
/** /**
* Table Definition for file_thumbnail * Table Definition for file_thumbnail
@ -80,6 +78,17 @@ class File_thumbnail extends Managed_DataObject
} }
} }
/**
* Fetch an entry by using a File's id
*/
static function byFile(File $file) {
$file_thumbnail = self::getKV('file_id', $file->id);
if (!$file_thumbnail instanceof File_thumbnail) {
throw new ServerException(sprintf('No File_thumbnail entry for File id==%u', $file->id));
}
return $file_thumbnail;
}
/** /**
* Save a thumbnail record for the referenced file record. * Save a thumbnail record for the referenced file record.
* *
@ -108,10 +117,15 @@ class File_thumbnail extends Managed_DataObject
return File::path($filename); return File::path($filename);
} }
public function getPath()
{
return self::path($this->filename);
}
public function getUrl() public function getUrl()
{ {
if (!empty($this->filename)) { if (!empty($this->getFile()->filename)) {
// A locally stored file, so let's generate a URL for our instance. // A locally stored File, so let's generate a URL for our instance.
$url = File::url($this->filename); $url = File::url($this->filename);
if ($url != $this->url) { if ($url != $this->url) {
// For indexing purposes, in case we do a lookup on the 'url' field. // For indexing purposes, in case we do a lookup on the 'url' field.