loaded || !$parent->is_album()) { throw new Exception("@todo INVALID_PARENT"); } $album = ORM::factory("item"); $album->type = "album"; $album->title = $title; $album->description = $description; $album->name = $name; $album->owner_id = $owner_id; $album->thumb_dirty = 1; $album->resize_dirty = 1; $album->rand_key = ((float)mt_rand()) / (float)mt_getrandmax(); $album->sort_column = "weight"; $album->sort_order = "ASC"; while (ORM::factory("item") ->where("parent_id", $parent->id) ->where("name", $album->name) ->find()->id) { $album->name = "{$name}-" . rand(); } $album = $album->add_to_parent($parent); mkdir($album->file_path()); mkdir(dirname($album->thumb_path())); mkdir(dirname($album->resize_path())); module::event("item_created", $album); return $album; } static function get_add_form($parent) { $form = new Forge("albums/{$parent->id}", "", "post", array("id" => "gAddAlbumForm")); $group = $form->group("add_album")->label(t("Add an album to %album_title", array("album_title" => $parent->title))); $group->input("name")->label(t("Name")); $group->input("title")->label(t("Title")); $group->textarea("description")->label(t("Description")); $group->hidden("type")->value("album"); $group->submit("")->value(t("Create")); $form->add_rules_from(ORM::factory("item")); return $form; } static function get_edit_form($parent) { $form = new Forge("albums/{$parent->id}", "", "post", array("id" => "gEditAlbumForm")); $form->hidden("_method")->value("put"); $group = $form->group("edit_album")->label(t("Edit Album")); if ($parent->id != 1) { $group->input("name")->label(t("Name"))->value($parent->name); } $group->input("title")->label(t("Title"))->value($parent->title); $group->textarea("description")->label(t("Description"))->value($parent->description); $sort_order = $group->group("sort_order", array("id" => "gAlbumSortOrder")) ->label(t("Sort Order")); $sort_order->dropdown("column", array("id" => "gAlbumSortColumn")) ->label(t("Sort by")) ->options(array("weight" => t("Default"), "created" => t("Creation Date"), "title" => t("Title"), "updated" => t("Updated Date"), "view_count" => t("Number of views"), "rand_key" => t("Random"))) ->selected($parent->sort_column); $sort_order->dropdown("direction", array("id" => "gAlbumSortDirection")) ->label(t("Order")) ->options(array("ASC" => t("Ascending"), "DESC" => t("Descending"))) ->selected($parent->sort_order); $group->hidden("type")->value("album"); $group->submit("")->value(t("Modify")); $form->add_rules_from(ORM::factory("item")); return $form; } }