summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/gallery/controllers/uploader.php2
-rw-r--r--modules/gallery/helpers/extensions.php39
-rw-r--r--modules/gallery/libraries/Form_Uploadify.php4
-rw-r--r--modules/gallery/models/item.php3
-rw-r--r--system/helpers/upload.php20
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