diff options
Diffstat (limited to 'modules/gallery/models')
| -rw-r--r-- | modules/gallery/models/item.php | 24 | 
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");          }        } | 
