function delete($type, $id = 0) { if (!isAjax()) { echo _('You can\'t delete chapters from outside the admin panel through this link.'); log_message("error", "Controller: comics.php/remove: failed comic removal"); return false; } $id = intval($id); switch ($type) { case("comic"): $comic = new Comic(); $comic->where('id', $id)->get(); if (!$comic->remove()) { log_message("error", "Controller: comics.php/remove: failed comic removal"); return false; } flash_notice('notice', 'The comic ' . $comic->name . ' has been removed'); echo json_encode(array('href' => site_url("admin/comics/manage"))); break; case("chapter"): $chapter = new Chapter($id); if (!$comic = $chapter->remove()) { log_message("error", "Controller: comics.php/remove: failed chapter removal"); return false; } set_notice('notice', 'Chapter deleted.'); echo json_encode(array('href' => site_url("admin/comics/comic/" . $comic->stub))); break; case("page"): $page = new Page($this->input->post('id')); $page->get_chapter(); $comic = new Chapter($chapter->comic_id); if (!$data = $page->remove_page()) { log_message("error", "Controller: comics.php/remove: failed page removal"); return false; } echo json_encode(array('href' => site_url("admin/comics/comic/" . $page->chapter->comic->stub . "/" . $page->chapter->id))); break; case("allpages"): $chapter = new Chapter($id); $chapter->get_comic(); if (!$chapter->remove_all_pages()) { log_message("error", "Controller: comics.php/remove: failed all pages removal"); return false; } echo json_encode(array('href' => site_url("admin/comics/comic/" . $chapter->comic->stub . "/" . $chapter->id))); break; } }
function delete($type, $id = 0) { if (!isAjax()) { $this->output->set_output(_('You can\'t delete chapters from outside the admin panel through this link.')); log_message("error", "Controller: series.php/remove: failed serie removal"); return false; } $id = intval($id); switch ($type) { case "serie": $comic = new Comic(); $comic->where('id', $id)->get(); $title = $comic->name; if (!$comic->remove()) { flash_notice('error', sprintf(_('Failed to delete the series %s.'), $title)); log_message("error", "Controller: series.php/remove: failed serie removal"); $this->output->set_output(json_encode(array('href' => site_url("admin/series/manage")))); return false; } flash_notice('notice', 'The serie ' . $comic->name . ' has been removed'); $this->output->set_output(json_encode(array('href' => site_url("admin/series/manage")))); break; case "chapter": $chapter = new Chapter($id); $title = $chapter->chapter; if (!($comic = $chapter->remove())) { flash_notice('error', sprintf(_('Failed to delete chapter %s.'), $chapter->comic->chapter)); log_message("error", "Controller: series.php/remove: failed chapter removal"); $this->output->set_output(json_encode(array('href' => site_url("admin/series/series/" . $comic->stub)))); return false; } set_notice('notice', 'Chapter deleted.'); $this->output->set_output(json_encode(array('href' => site_url("admin/series/serie/" . $comic->stub)))); break; case "page": $page = new Page($this->input->post('id')); $page->get_chapter(); $page->chapter->get_comic(); if (!($data = $page->remove_page())) { log_message("error", "Controller: series.php/remove: failed page removal"); return false; } $this->output->set_output(json_encode(array('href' => site_url("admin/series/serie/" . $page->chapter->comic->stub . "/" . $page->chapter->id)))); break; case "allpages": $chapter = new Chapter($id); $chapter->get_comic(); if (!$chapter->remove_all_pages()) { log_message("error", "Controller: series.php/remove: failed all pages removal"); return false; } $this->output->set_output(json_encode(array('href' => site_url("admin/series/serie/" . $chapter->comic->stub . "/" . $chapter->id)))); break; } }
/** * When you pages are added, this cleans up the chapter and adds new pages * * @param int $chapter_id * @param array $new_pages_array */ public function _clean_chapter($chapter_id, $new_pages_array) { // found, let's get all chapters for this comic $pages = new Page(); $pages->where('chapter_id', $chapter_id)->get(); $pages = $pages->all_to_array(); foreach ($new_pages_array as $key => $item) { foreach ($pages as $k => $i) { if ($item["id"] == $i["id"]) { if ($item["filename"] != $i["filename"] || $item["size"] != $i["size"]) { $page = new Page($item["id"]); $page->remove_page(); unset($pages[$k]); break; } unset($pages[$k]); unset($new_pages_array[$key]); break; } } } foreach ($new_pages_array as $key => $item) { $page = new Page(); $page->from_array($item); $page->save_as_new(); } foreach ($pages as $key => $item) { $page = new Page(); $page->remove_page(); } }