summaryrefslogtreecommitdiff
path: root/modules/gallery/models
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery/models')
-rw-r--r--modules/gallery/models/item.php24
1 files changed, 14 insertions, 10 deletions
diff --git a/modules/gallery/models/item.php b/modules/gallery/models/item.php
index e90e0fcb..98a2c4df 100644
--- a/modules/gallery/models/item.php
+++ b/modules/gallery/models/item.php
@@ -188,7 +188,7 @@ class Item_Model_Core extends ORM_MPTT {
return $base . "/.album.jpg";
} else if ($this->is_movie()) {
// Replace the extension with jpg
- return preg_replace("/...$/", "jpg", $base);
+ return legal_file::change_extension($base, "jpg");
}
}
@@ -213,7 +213,7 @@ class Item_Model_Core extends ORM_MPTT {
return $base . "/.album.jpg" . $cache_buster;
} else if ($this->is_movie()) {
// Replace the extension with jpg
- $base = preg_replace("/...$/", "jpg", $base);
+ $base = legal_file::change_extension($base, "jpg");
return $base . $cache_buster;
}
}
@@ -803,18 +803,22 @@ class Item_Model_Core extends ORM_MPTT {
}
if ($this->is_movie() || $this->is_photo()) {
- if (!$this->loaded()) {
+ $ext = pathinfo($this->name, PATHINFO_EXTENSION);
+
+ if (!$this->loaded() && !$ext) {
// New items must have an extension
- $ext = pathinfo($this->name, PATHINFO_EXTENSION);
- if (!$ext) {
+ $v->add_error("name", "illegal_data_file_extension");
+ return;
+ }
+
+ if ($this->is_photo()) {
+ if (!in_array(strtolower($ext), legal_file::get_photo_extensions())) {
$v->add_error("name", "illegal_data_file_extension");
- return;
}
+ }
- if ($this->is_photo() &&
- !in_array(strtolower($ext), array_map("strtolower", legal_file::get_photo_extensions())) ||
- $this->is_movie() &&
- !in_array(strtolower($ext), array_map("strtolower", legal_file::get_movie_extensions()))) {
+ if ($this->is_movie()) {
+ if (!in_array(strtolower($ext), legal_file::get_movie_extensions())) {
$v->add_error("name", "illegal_data_file_extension");
}
}