item = $item; $v->flash_vars = "uploadUrl=" . urlencode( url::site("simple_uploader/add_photo/$item->id" . "?csrf=" . access::csrf_token() . "&g3sid=" . Session::instance()->id() . "&user_agent=" . urlencode(Input::instance()->server("HTTP_USER_AGENT")))) . "&title=" . urlencode(t("Add photos")) . "&addLabel=" . urlencode(t("Choose photos to add...")) . "&pendingText=" . urlencode(t("Pending")) . "&completeText=" . urlencode(t("Complete")) . "&fileHeader=" . urlencode(t("File")) . "&statusHeader=" . urlencode(t("Status")) . "&sizeHeader=" . urlencode(t("Size")); print $v; } public function start() { batch::start(); } public function add_photo($id) { $album = ORM::factory("item", $id); access::required("edit", $album); access::verify_csrf(); $file_validation = new Validation($_FILES); $file_validation->add_rules("file", "upload::valid", "upload::type[gif,jpg,png,flv,mp4]"); if ($file_validation->validate()) { // SimpleUploader.swf does not yet call /start directly, so simulate it here for now. if (!batch::in_progress()) { batch::start(); } $temp_filename = upload::save("file"); try { $title = substr(basename($temp_filename), 10); // Skip unique identifier Kohana adds $path_info = pathinfo($temp_filename); if (in_array(strtolower($path_info["extension"]), array("flv", "mp4"))) { $movie = movie::create($album, $temp_filename, $title, $title); log::success("content", t("Added a movie"), html::anchor("movies/$movie->id", t("view movie"))); } else { $photo = photo::create($album, $temp_filename, $title, $title); log::success("content", t("Added a photo"), html::anchor("photos/$photo->id", t("view photo"))); } } catch (Exception $e) { unlink($temp_filename); throw $e; } unlink($temp_filename); } } public function finish() { batch::stop(); print json_encode(array("result" => "success")); } }