diff options
Diffstat (limited to 'modules/gallery/helpers/movie.php')
| -rw-r--r-- | modules/gallery/helpers/movie.php | 116 | 
1 files changed, 4 insertions, 112 deletions
| diff --git a/modules/gallery/helpers/movie.php b/modules/gallery/helpers/movie.php index 01859924..b07a9e69 100644 --- a/modules/gallery/helpers/movie.php +++ b/modules/gallery/helpers/movie.php @@ -24,129 +24,21 @@   * Note: by design, this class does not do any permission checking.   */  class movie_Core { -  /** -   * Create a new movie. -   * @param integer $parent_id id of parent album -   * @param string  $filename path to the photo file on disk -   * @param string  $name the filename to use for this photo in the album -   * @param integer $title the title of the new photo -   * @param string  $description (optional) the longer description of this photo -   * @param string  $slug (optional) the url component for this photo -   * @return Item_Model -   */ -  static function create($parent, $filename, $name, $title, -                         $description=null, $owner_id=null, $slug=null) { -    if (!$parent->loaded() || !$parent->is_album()) { -      throw new Exception("@todo INVALID_PARENT"); -    } - -    if (!is_file($filename)) { -      throw new Exception("@todo MISSING_MOVIE_FILE"); -    } - -    if (strpos($name, "/")) { -      throw new Exception("@todo NAME_CANNOT_CONTAIN_SLASH"); -    } - -    // We don't allow trailing periods as a security measure -    // ref: http://dev.kohanaphp.com/issues/684 -    if (rtrim($name, ".") != $name) { -      throw new Exception("@todo NAME_CANNOT_END_IN_PERIOD"); -    } - -    try { -      $movie_info = movie::getmoviesize($filename); -    } catch (Exception $e) { -      // Assuming this is MISSING_FFMPEG for now -      $movie_info = getimagesize(MODPATH . "gallery/images/missing_movie.png"); -    } - -    // Force an extension onto the name -    $pi = pathinfo($filename); -    if (empty($pi["extension"])) { -      $pi["extension"] = image_type_to_extension($movie_info[2], false); -      $name .= "." . $pi["extension"]; -    } - -    if (empty($slug)) { -      $slug = item::convert_filename_to_slug($name); -    } - -    $movie = ORM::factory("item"); -    $movie->type = "movie"; -    $movie->title = $title; -    $movie->description = $description; -    $movie->name = $name; -    $movie->owner_id = $owner_id ? $owner_id : identity::active_user()->id; -    $movie->width = $movie_info[0]; -    $movie->height = $movie_info[1]; -    $movie->mime_type = strtolower($pi["extension"]) == "mp4" ? "video/mp4" : "video/x-flv"; -    $movie->thumb_dirty = 1; -    $movie->resize_dirty = 1; -    $movie->sort_column = "weight"; -    $movie->slug = $slug; -    $movie->rand_key = ((float)mt_rand()) / (float)mt_getrandmax(); - -    // Randomize the name if there's a conflict -    // @todo Improve this.  Random numbers are not user friendly -    while (ORM::factory("item") -           ->where("parent_id", "=", $parent->id) -           ->and_open() -           ->where("name", "=", $movie->name) -           ->or_where("slug", "=", $movie->slug) -           ->close() -           ->find()->id) { -      $rand = rand(); -      $movie->name = "{$name}.$rand.{$pi['extension']}"; -      $movie->slug = "{$slug}-$rand"; -    } - -    // This saves the photo -    $movie->add_to_parent($parent); - -    // If the thumb or resize already exists then rename it -    if (file_exists($movie->resize_path()) || -        file_exists($movie->thumb_path())) { -      $movie->name = $pi["filename"] . "-" . rand() . "." . $pi["extension"]; -      $movie->save(); -    } - -    copy($filename, $movie->file_path()); - -    // @todo: publish this from inside Item_Model::save() when we refactor to the point where -    // there's only one save() happening here. -    module::event("item_created", $movie); - -    // Build our thumbnail -    graphics::generate($movie); - -    // If the parent has no cover item, make this it. -    if (access::can("edit", $parent) && $parent->album_cover_item_id == null)  { -      item::make_album_cover($movie); -    } - -    return $movie; -  } -    static function get_edit_form($movie) {      $form = new Forge("movies/update/$movie->id", "", "post", array("id" => "g-edit-movie-form"));      $form->hidden("from_id");      $group = $form->group("edit_item")->label(t("Edit Movie"));      $group->input("title")->label(t("Title"))->value($movie->title);      $group->textarea("description")->label(t("Description"))->value($movie->description); -    $group->input("filename")->label(t("Filename"))->value($movie->name) -      ->rules("required") +    $group->input("name")->label(t("Filename"))->value($movie->name)        ->error_messages( -        "name_conflict", t("There is already a movie, photo or album with this name")) -      ->callback("item::validate_no_slashes") +        "conflict", t("There is already a movie, photo or album with this name"))        ->error_messages("no_slashes", t("The movie name can't contain a \"/\"")) -      ->callback("item::validate_no_trailing_period")        ->error_messages("no_trailing_period", t("The movie name can't end in \".\""))        ->error_messages("illegal_extension", t("You cannot change the filename extension"));      $group->input("slug")->label(t("Internet Address"))->value($movie->slug) -      ->callback("item::validate_url_safe")        ->error_messages( -        "slug_conflict", t("There is already a movie, photo or album with this internet address")) +        "conflict", t("There is already a movie, photo or album with this internet address"))        ->error_messages(          "not_url_safe",          t("The internet address should contain only letters, numbers, hyphens and underscores")); @@ -155,7 +47,7 @@ class movie_Core {      $group = $form->group("buttons")->label("");      $group->submit("")->value(t("Modify")); -    $form->add_rules_from(ORM::factory("item")); +      return $form;    } | 
