Reworked File->getUrl to throw exception
In case you require a local URL and one can't be generated, throw FileNotStoredLocallyException(File $file)
This commit is contained in:
@@ -529,13 +529,23 @@ class File extends Managed_DataObject
|
||||
return common_local_url('attachment', array('attachment'=>$this->getID()));
|
||||
}
|
||||
|
||||
public function getUrl($prefer_local=true)
|
||||
/**
|
||||
* @param mixed $use_local true means require local, null means prefer local, false means use whatever is stored
|
||||
*/
|
||||
public function getUrl($use_local=null)
|
||||
{
|
||||
if ($prefer_local && !empty($this->filename)) {
|
||||
// A locally stored file, so let's generate a URL for our instance.
|
||||
return self::url($this->getFilename());
|
||||
if ($use_local !== false) {
|
||||
if (is_string($this->filename) || !empty($this->filename)) {
|
||||
// A locally stored file, so let's generate a URL for our instance.
|
||||
return self::url($this->getFilename());
|
||||
}
|
||||
if ($use_local) {
|
||||
// if the file wasn't stored locally (has filename) and we require a local URL
|
||||
throw new FileNotStoredLocallyException($this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// No local filename available, return the URL we have stored
|
||||
return $this->url;
|
||||
}
|
||||
|
Reference in New Issue
Block a user