source = $source; $view->tree = $this->_get_tree_html($source, ORM::factory("item", 1)); print $view; } public function save($source_id) { access::verify_csrf(); $source = ORM::factory("item", $source_id); $target = ORM::factory("item", $this->input->post("target_id")); item::move($source, $target); print json_encode( array("result" => "success", "location" => url::site("albums/{$target->id}"))); } public function show_sub_tree($source_id, $target_id) { $source = ORM::factory("item", $source_id); $target = ORM::factory("item", $target_id); access::required("edit", $source); access::required("view", $target); print $this->_get_tree_html($source, $target); } private function _get_tree_html($source, $target) { $view = new View("move_tree.html"); $view->source = $source; $view->parent = $target; $view->children = ORM::factory("item") ->viewable() ->where("type", "album") ->where("parent_id", $target->id) ->find_all(); return $view; } }