type = "album"; $album->title = $title; $album->description = $description; $album->name = $name; $album->owner_id = $owner_id; while (ORM::Factory("item") ->where("parent_id", $parent_id) ->where("name", $album->name) ->find()->id) { $album->name = "{$name}-" . rand(); } $parent = ORM::factory("item", $parent_id); if (!$parent->loaded) { throw new Exception("@todo INVALID_PARENT_ID"); } $album = $album->add_to_parent($parent); mkdir($album->file_path()); $thumbnail_dir = dirname($album->thumbnail_path()); if (!file_exists($thumbnail_dir)) { mkdir($thumbnail_dir); } module::event("album_created", $album); return $album; } static function get_add_form($parent) { $form = new Forge("albums/{$parent->id}", "", "post", array("id" => "gAddAlbumForm")); $group = $form->group(sprintf(_("Add Album to %s"), $parent->title)); $group->input("name")->label(true); $group->input("title")->label(true); $group->input("description")->label(true); $group->hidden("type")->value("album"); $group->submit(_("Create")); $form->add_rules_from(ORM::factory("item")); return $form; } }