diff options
| author | Nathan Kinkade <nath@nkinka.de> | 2013-03-19 16:41:42 +0000 |
|---|---|---|
| committer | Nathan Kinkade <nath@nkinka.de> | 2013-03-19 16:41:42 +0000 |
| commit | 3908e37d965fa76ea774e76ddf42365a872a5f27 (patch) | |
| tree | 457e1a1e465f83855eee96ba287cd91f1623395c /modules/gallery/helpers/legal_file.php | |
| parent | 711651f727e093cc7357a6bbff6bd992fd6dfd80 (diff) | |
| parent | 1eab94f6062b5f54ea5d9db01d968e7195f3de9d (diff) | |
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules/gallery/helpers/legal_file.php')
| -rw-r--r-- | modules/gallery/helpers/legal_file.php | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/modules/gallery/helpers/legal_file.php b/modules/gallery/helpers/legal_file.php index eb9c25de..9f02fe70 100644 --- a/modules/gallery/helpers/legal_file.php +++ b/modules/gallery/helpers/legal_file.php @@ -70,7 +70,8 @@ class legal_file_Core { if (empty(self::$movie_types_by_extension)) { $types_by_extension_wrapper = new stdClass(); $types_by_extension_wrapper->types_by_extension = array( - "flv" => "video/x-flv", "mp4" => "video/mp4", "m4v" => "video/x-m4v"); + "flv" => "video/x-flv", "mp4" => "video/mp4", "m4v" => "video/x-m4v", + "webm" => "video/webm", "ogv" => "video/ogg"); module::event("movie_types_by_extension", $types_by_extension_wrapper); foreach (self::$blacklist as $key) { unset($types_by_extension_wrapper->types_by_extension[$key]); @@ -297,7 +298,7 @@ class legal_file_Core { $filename = str_replace("/", "_", $filename); $filename = str_replace("\\", "_", $filename); - // Remove extra dots from the filename. This will also remove extraneous underscores. + // Remove extra dots from the filename. Also removes extraneous and leading/trailing underscores. $filename = legal_file::smash_extensions($filename); // It's possible that the filename has no base (e.g. ".jpg") - if so, give it a generic one. @@ -307,4 +308,31 @@ class legal_file_Core { return $filename; } + + /** + * Sanitize a directory name for an album. This returns a completely legal and valid + * directory name. + * + * @param string $dirname (with no parent directory) + * @return string sanitized dirname + */ + static function sanitize_dirname($dirname) { + // It should be a dirname without a parent directory - remove all slashes (and backslashes). + $dirname = str_replace("/", "_", $dirname); + $dirname = str_replace("\\", "_", $dirname); + + // Remove extraneous and leading/trailing underscores. + $dirname = preg_replace("/[_]+/", "_", $dirname); + $dirname = trim($dirname, "_"); + + // Remove any trailing dots. + $dirname = rtrim($dirname, "."); + + // It's possible that the dirname is now empty - if so, give it a generic one. + if (empty($dirname)) { + $dirname = "album"; + } + + return $dirname; + } } |
