MDL-68954 repository_flickr_public: Handle when photo cannot be found
This commit is contained in:
@@ -340,6 +340,8 @@ class repository_flickr_public extends repository {
|
||||
* @return array
|
||||
*/
|
||||
private function build_list($photos, $page = 1, &$ret) {
|
||||
global $OUTPUT;
|
||||
|
||||
if (!empty($this->nsid)) {
|
||||
$photos_url = $this->flickr->urls_getUserPhotos($this->nsid);
|
||||
$ret['manage'] = $photos_url;
|
||||
@@ -371,16 +373,23 @@ class repository_flickr_public extends repository {
|
||||
// append file extension
|
||||
$p['title'] .= $format;
|
||||
}
|
||||
// Get the thumbnail source URL.
|
||||
$thumbnailsource = $this->flickr->buildPhotoURL($p, 'Square');
|
||||
if (!@getimagesize($thumbnailsource)) {
|
||||
// Use the file extension icon as a thumbnail if the original thumbnail does not exist to avoid
|
||||
// displaying broken thumbnails in the repository.
|
||||
$thumbnailsource = $OUTPUT->image_url(file_extension_icon($p['title'], 90))->out(false);
|
||||
}
|
||||
$ret['list'][] = array(
|
||||
'title'=>$p['title'],
|
||||
'source'=>$p['id'],
|
||||
'id'=>$p['id'],
|
||||
'thumbnail'=>$this->flickr->buildPhotoURL($p, 'Square'),
|
||||
'date'=>'',
|
||||
'size'=>'unknown',
|
||||
'url'=>'http://www.flickr.com/photos/'.$p['owner'].'/'.$p['id'],
|
||||
'haslicense'=>true,
|
||||
'hasauthor'=>true
|
||||
'title' => $p['title'],
|
||||
'source' => $p['id'],
|
||||
'id' => $p['id'],
|
||||
'thumbnail' => $thumbnailsource,
|
||||
'date' => '',
|
||||
'size' => 'unknown',
|
||||
'url' => 'http://www.flickr.com/photos/' . $p['owner'] . '/' . $p['id'],
|
||||
'haslicense' => true,
|
||||
'hasauthor' => true
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -452,13 +461,8 @@ class repository_flickr_public extends repository {
|
||||
*/
|
||||
public function get_file($photoid, $file = '') {
|
||||
global $CFG;
|
||||
|
||||
$info = $this->flickr->photos_getInfo($photoid);
|
||||
if ($info['owner']['realname']) {
|
||||
$author = $info['owner']['realname'];
|
||||
} else {
|
||||
$author = $info['owner']['username'];
|
||||
}
|
||||
$copyright = get_string('author', 'repository') . ': ' . $author;
|
||||
|
||||
// If we can read the original secret, it means that we have access to the original picture.
|
||||
if (isset($info['originalsecret'])) {
|
||||
@@ -466,6 +470,17 @@ class repository_flickr_public extends repository {
|
||||
} else {
|
||||
$source = $this->build_photo_url($photoid);
|
||||
}
|
||||
// Make sure the source image exists.
|
||||
if (!@getimagesize($source)) {
|
||||
throw new moodle_exception('cannotdownload', 'repository');
|
||||
}
|
||||
|
||||
if ($info['owner']['realname']) {
|
||||
$author = $info['owner']['realname'];
|
||||
} else {
|
||||
$author = $info['owner']['username'];
|
||||
}
|
||||
$copyright = get_string('author', 'repository') . ': ' . $author;
|
||||
|
||||
$result = parent::get_file($source, $file);
|
||||
$path = $result['path'];
|
||||
|
||||
Reference in New Issue
Block a user