diff --git a/lib/filelib.php b/lib/filelib.php index a3ae1597a28..9963485f769 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -1595,22 +1595,22 @@ function mimeinfo_from_type($element, $mimetype) { foreach($mimeinfo as $filetype => $values) { if ($values['type'] == $mimetype) { if ($cached[$mimetype] === null) { - $cached[$mimetype] = $filetype; + $cached[$mimetype] = '.'.$filetype; } if (!empty($values['defaulticon'])) { - $cached[$mimetype] = $filetype; + $cached[$mimetype] = '.'.$filetype; break; } } } if (empty($cached[$mimetype])) { - $cached[$mimetype] = 'xxx'; + $cached[$mimetype] = '.xxx'; } } if ($element === 'extension') { return $cached[$mimetype]; } else { - return mimeinfo($element, '.'.$cached[$mimetype]); + return mimeinfo($element, $cached[$mimetype]); } } @@ -1831,7 +1831,7 @@ function file_get_typegroup($element, $groups) { $mimeinfo = & get_mimetypes_array(); $cached[$element][$group] = array(); foreach ($mimeinfo as $extension => $value) { - $value['extension'] = $extension; + $value['extension'] = '.'.$extension; if (empty($value[$element])) { continue; } @@ -1859,7 +1859,7 @@ function file_get_typegroup($element, $groups) { */ function file_extension_in_typegroup($filename, $groups, $checktype = false) { $extension = pathinfo($filename, PATHINFO_EXTENSION); - if (!empty($extension) && in_array(strtolower($extension), file_get_typegroup('extension', $groups))) { + if (!empty($extension) && in_array('.'.strtolower($extension), file_get_typegroup('extension', $groups))) { return true; } return $checktype && file_mimetype_in_typegroup(mimeinfo('type', $filename), $groups); diff --git a/repository/lib.php b/repository/lib.php index bb6c4eb4d9f..4d867fd68a6 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -1728,9 +1728,8 @@ abstract class repository { or (is_array($accepted_types) and in_array('*', $accepted_types))) { return true; } else { - $extensions = file_get_typegroup('extension', $accepted_types); - foreach ($extensions as $ext) { - if (preg_match('#\.'.$ext.'$#i', $value['title'])) { + foreach ($accepted_types as $ext) { + if (preg_match('#'.$ext.'$#i', $value['title'])) { return true; } } diff --git a/repository/upload/lib.php b/repository/upload/lib.php index db029d17e26..4abad67fa4d 100644 --- a/repository/upload/lib.php +++ b/repository/upload/lib.php @@ -173,10 +173,7 @@ class repository_upload extends repository { // check filetype $filemimetype = mimeinfo('type', $_FILES[$elname]['name']); if (!in_array($filemimetype, $this->mimetypes)) { - if ($sm->string_exists($filemimetype, 'mimetypes')) { - $filemimetype = get_string($filemimetype, 'mimetypes'); - } - throw new moodle_exception('invalidfiletype', 'repository', '', $filemimetype); + throw new moodle_exception('invalidfiletype', 'repository', '', get_mimetype_description(array('filename' => $_FILES[$elname]['name']))); } } diff --git a/repository/youtube/lib.php b/repository/youtube/lib.php index 7a7c695ed5b..bc2f30461c3 100644 --- a/repository/youtube/lib.php +++ b/repository/youtube/lib.php @@ -111,17 +111,23 @@ class repository_youtube extends repository { $links = $xml->children('http://www.w3.org/2005/Atom'); foreach ($xml->entry as $entry) { $media = $entry->children('http://search.yahoo.com/mrss/'); - $title = $media->group->title; + $title = (string)$media->group->title; + $description = (string)$media->group->description; + if (empty($description)) { + $description = $title; + } $attrs = $media->group->thumbnail[2]->attributes(); $thumbnail = $attrs['url']; $arr = explode('/', $entry->id); $id = $arr[count($arr)-1]; $source = 'http://www.youtube.com/v/' . $id . '#' . $title; $list[] = array( - 'title'=>(string)$title, + 'shorttitle'=>$title, + 'thumbnail_title'=>$description, + 'title'=>$title.'.avi', // this is a hack so we accept this file by extension 'thumbnail'=>(string)$attrs['url'], - 'thumbnail_width'=>150, - 'thumbnail_height'=>120, + 'thumbnail_width'=>(int)$attrs['width'], + 'thumbnail_height'=>(int)$attrs['height'], 'size'=>'', 'date'=>'', 'source'=>$source @@ -186,7 +192,7 @@ class repository_youtube extends repository { * @return array */ public function supported_filetypes() { - return array('web_video'); + return array('video'); } /**