public function fileVersionInfo($filePath)
{
$tempfile = false;
$path = $this->basepath . $filePath;
// we don't want to try and download an image from our
// own website because that will cause a session deadlock
// in php and crash the server
if (strpos($filePath, $this->baseurl) === 0) {
$path = $this->basepath . str_replace($this->baseurl, '/', $filePath);
} else {
if ($this->isUrlPath($filePath)) {
$path = $this->downloadFromUrl($filePath);
$tempfile = $path;
}
}
//
// if we don't have a file for our path then complain
//
if (!is_file($path)) {
throw new InvalidFileException("This is not a valid file: " . $path);
}
$obj = new stdClass();
$obj->basepath = $this->basepath;
$obj->mediapath = $this->basepath . '/media';
$obj->mediaversionpath = $this->basepath . '/media-versions';
$obj->md5 = md5_file($path);
$obj->ext = pathinfo($path, PATHINFO_EXTENSION);
$obj->partition = substr($obj->md5, 0, 3) . '/' . substr($obj->md5, 3, 3) . '/' . $obj->md5;
$obj->tempfile = $tempfile;
$obj->filepath = $path;
$obj->filename = pathinfo($path, PATHINFO_FILENAME);
$obj->filedir = dirname($path);
$obj->versionpath = "{$this->basepath}/media-versions/{$obj->partition}/{$obj->filename}.{$obj->ext}";
$obj->versionname = pathinfo($obj->versionpath, PATHINFO_FILENAME);
$obj->versiondir = "{$this->basepath}/media-versions/{$obj->partition}";
$obj->thumbnail = "{$this->basepath}/media-versions/{$obj->partition}/thumbnail.{$obj->ext}";
$obj->thumbnail_url = "/media-versions/{$obj->partition}/thumbnail.{$obj->ext}";
return $obj;
}