public function clone_task($task_id) { $result = new stdClass(); $result->result = FALSE; $this->_transaction_isolation(); $this->db->trans_begin(); $old_task = new Task(); $old_task->get_by_id((int) $task_id); if ($old_task->exists()) { $new_task = $old_task->get_copy(); if ($new_task->save()) { $this->lang->clone_overlays('tasks', $old_task->id, $new_task->id); $from = 'private/uploads/task_files/task_' . $old_task->id; $continue = TRUE; if (file_exists($from)) { $to = 'private/uploads/task_files/task_' . $new_task->id; if (!clone_directory($from, $to)) { unlink_recursive($to, TRUE); $this->db->trans_rollback(); $result->message = $this->lang->line('admin_tasks_error_message_files_not_cloned'); $continue = FALSE; } } if ($continue) { $old_categories = new Category(); $old_categories->where_related($old_task); $old_categories->get(); if ($old_categories->result_count()) { foreach ($old_categories->all as $old_category) { $old_category->save($new_task); } } $old_tests = new Test(); $old_tests->where_related($old_task); $old_tests->get(); if ($old_tests->result_count()) { foreach ($old_tests->all as $old_test) { $new_test = $old_test->get_copy(); if ($new_test->save($new_task)) { $this->lang->clone_overlays('tests', $old_test->id, $new_test->id); $from = 'private/uploads/unit_tests/test_' . $old_test->id; $to = 'private/uploads/unit_tests/test_' . $new_test->id; clone_directory($from, $to); } } } $this->db->trans_commit(); $result->result = TRUE; $result->message = $this->lang->line('admin_tasks_success_message_task_cloned'); } } else { $this->db->trans_rollback(); $result->message = $this->lang->line('admin_tasks_error_message_clone_dont_saved'); } } else { $this->db->trans_rollback(); $result->message = $this->lang->line('admin_tasks_error_message_task_not_found'); } $this->output->set_content_type('application/json'); $this->output->set_output(json_encode($result)); }
function index_get() { $filters = $this->get("filter")["filters"]; $page = $this->get('page'); $limit = $this->get('limit'); $sort = $this->get("sort"); $data["results"] = array(); $data["count"] = 0; $obj = new Category(null, $this->entity); //Sort if (!empty($sort) && isset($sort)) { foreach ($sort as $value) { $obj->order_by($value["field"], $value["dir"]); } } //Filter if (!empty($filters) && isset($filters)) { foreach ($filters as $value) { if (!empty($value["operator"]) && isset($value["operator"])) { if ($value["operator"] == "where_in") { $obj->where_in($value["field"], $value["value"]); } else { if ($value["operator"] == "or_where_in") { $obj->or_where_in($value["field"], $value["value"]); } else { if ($value["operator"] == "where_not_in") { $obj->where_not_in($value["field"], $value["value"]); } else { if ($value["operator"] == "or_where_not_in") { $obj->or_where_not_in($value["field"], $value["value"]); } else { if ($value["operator"] == "like") { $obj->like($value["field"], $value["value"]); } else { if ($value["operator"] == "or_like") { $obj->or_like($value["field"], $value["value"]); } else { if ($value["operator"] == "not_like") { $obj->not_like($value["field"], $value["value"]); } else { if ($value["operator"] == "or_not_like") { $obj->or_not_like($value["field"], $value["value"]); } else { if ($value["operator"] == "startswith") { $obj->like($value["field"], $value["value"], "after"); } else { if ($value["operator"] == "endswith") { $obj->like($value["field"], $value["value"], "before"); } else { if ($value["operator"] == "contains") { $obj->like($value["field"], $value["value"], "both"); } else { if ($value["operator"] == "or_where") { $obj->or_where($value["field"], $value["value"]); } else { $obj->where($value["field"] . ' ' . $value["operator"], $value["value"]); } } } } } } } } } } } } } else { $obj->where($value["field"], $value["value"]); } } } if (!empty($limit) && !empty($page)) { $obj->get_paged_iterated($page, $limit); $data["count"] = $obj->paged->total_rows; } if ($obj->result_count() > 0) { foreach ($obj as $value) { //Results $data["results"][] = array("id" => $value->id, "name" => $value->name, "sub_of" => $value->sub_of); } } //Response Data $this->response($data, 200); }