diff --git a/lib/googleapi.php b/lib/googleapi.php index c2d529fd6b7ab..3ace6542d4f17 100644 --- a/lib/googleapi.php +++ b/lib/googleapi.php @@ -109,23 +109,21 @@ public function get_file_list($search = '') { $source = 'https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key='.$docid.'&exportFormat=xls'; break; case 'pdf': - $title = (string)$gdoc->title; - $source = (string)$gdoc->content[0]->attributes()->src; - break; case 'file': - $title = (string)$gdoc->title; - $source = (string)$gdoc->content[0]->attributes()->src; + $title = (string)$gdoc->title; + // Some files don't have a content probably because the download has been restricted. + if (isset($gdoc->content)) { + $source = (string)$gdoc->content[0]->attributes()->src; + } break; } - if (!empty($source)) { - $files[] = array( 'title' => $title, - 'url' => "{$gdoc->link[0]->attributes()->href}", - 'source' => $source, - 'date' => usertime(strtotime($gdoc->updated)), - 'thumbnail' => (string) $OUTPUT->pix_url(file_extension_icon($title, 32)) - ); - } + $files[] = array( 'title' => $title, + 'url' => "{$gdoc->link[0]->attributes()->href}", + 'source' => $source, + 'date' => usertime(strtotime($gdoc->updated)), + 'thumbnail' => (string) $OUTPUT->pix_url(file_extension_icon($title, 32)) + ); } return $files; diff --git a/repository/googledocs/lib.php b/repository/googledocs/lib.php index 38299decb73de..72ca7bbab68be 100644 --- a/repository/googledocs/lib.php +++ b/repository/googledocs/lib.php @@ -92,8 +92,10 @@ public function logout() { } public function get_file($url, $file = '') { + if (empty($url)) { + throw new repository_exception('cannotdownload', 'repository'); + } $gdocs = new google_docs($this->googleoauth); - $path = $this->prepare_file($file); return $gdocs->download_file($url, $path, self::GETFILE_TIMEOUT); }