diff options
-rw-r--r-- | modules/gallery/controllers/uploader.php | 2 | ||||
-rw-r--r-- | modules/gallery/helpers/extensions.php | 39 | ||||
-rw-r--r-- | modules/gallery/libraries/Form_Uploadify.php | 4 | ||||
-rw-r--r-- | modules/gallery/models/item.php | 3 | ||||
-rw-r--r-- | system/helpers/upload.php | 20 |
5 files changed, 44 insertions, 24 deletions
diff --git a/modules/gallery/controllers/uploader.php b/modules/gallery/controllers/uploader.php index 12180893..5f3e9ca4 100644 --- a/modules/gallery/controllers/uploader.php +++ b/modules/gallery/controllers/uploader.php @@ -51,7 +51,7 @@ class Uploader_Controller extends Controller { $file_validation = new Validation($_FILES); $file_validation->add_rules( "Filedata", "upload::valid", "upload::required", - "upload::type[" . implode(",", upload::get_upload_extensions()) . "]"); + "upload::type[" . implode(",", extensions::get_upload_extensions()) . "]"); if ($form->validate() && $file_validation->validate()) { $temp_filename = upload::save("Filedata"); diff --git a/modules/gallery/helpers/extensions.php b/modules/gallery/helpers/extensions.php new file mode 100644 index 00000000..bccbfc41 --- /dev/null +++ b/modules/gallery/helpers/extensions.php @@ -0,0 +1,39 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2011 Chad Parry + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class extensions_Core { + static function get_upload_extensions() { + // Create a default list of allowed extensions and then let modules modify it. + $extensions_wrapper = new stdClass(); + $extensions_wrapper->extensions = array("gif", "jpg", "jpeg", "png"); + if (movie::find_ffmpeg()) { + array_push($extensions_wrapper->extensions, "flv", "mp4", "m4v"); + } + module::event("upload_extensions", $extensions_wrapper); + return $extensions_wrapper->extensions; + } + + static function get_upload_filters() { + $filters = array(); + foreach (self::get_upload_extensions() as $extension) { + array_push($filters, "*." . $extension, "*." . strtoupper($extension)); + } + return $filters; + } +} diff --git a/modules/gallery/libraries/Form_Uploadify.php b/modules/gallery/libraries/Form_Uploadify.php index c79b9aa2..c046fe3a 100644 --- a/modules/gallery/libraries/Form_Uploadify.php +++ b/modules/gallery/libraries/Form_Uploadify.php @@ -47,7 +47,7 @@ class Form_Uploadify_Core extends Form_Input { $v->script_data = $this->data["script_data"]; $v->simultaneous_upload_limit = module::get_var("gallery", "simultaneous_upload_limit"); $v->movies_allowed = (bool) movie::find_ffmpeg(); - $v->extensions = upload::get_upload_filters(); + $v->extensions = extensions::get_upload_filters(); $v->suhosin_session_encrypt = (bool) ini_get("suhosin.session.encrypt"); list ($toolkit_max_filesize_bytes, $toolkit_max_filesize) = graphics::max_filesize(); @@ -69,4 +69,4 @@ class Form_Uploadify_Core extends Form_Input { public function validate() { return true; } -}
\ No newline at end of file +} diff --git a/modules/gallery/models/item.php b/modules/gallery/models/item.php index ba8e7cde..dcdcfd0d 100644 --- a/modules/gallery/models/item.php +++ b/modules/gallery/models/item.php @@ -803,7 +803,8 @@ class Item_Model_Core extends ORM_MPTT { if (($this->is_movie() || $this->is_photo()) && !preg_match("/^(" . - implode("|", array_map("preg_quote", upload::get_upload_extensions())) . + implode("|", array_map("preg_quote", + extensions::get_upload_extensions())) . ")\$/i", $ext)) { $v->add_error("name", "illegal_data_file_extension"); } diff --git a/system/helpers/upload.php b/system/helpers/upload.php index cfd92dd1..62de674f 100644 --- a/system/helpers/upload.php +++ b/system/helpers/upload.php @@ -154,24 +154,4 @@ class upload_Core { return ($file['size'] <= $size); } - - static function get_upload_extensions() { - // Create a default list of allowed extensions and then let modules modify it. - $extensions_wrapper = new stdClass(); - $extensions_wrapper->extensions = array("gif", "jpg", "jpeg", "png"); - if (movie::find_ffmpeg()) { - array_push($extensions_wrapper->extensions, "flv", "mp4", "m4v"); - } - module::event("upload_extensions", $extensions_wrapper); - return $extensions_wrapper->extensions; - } - - static function get_upload_filters() { - $filters = array(); - foreach (upload::get_upload_extensions() as $extension) { - array_push($filters, "*." . $extension, "*." . strtoupper($extension)); - } - return $filters; - } - } // End upload
\ No newline at end of file |