function saveKbCategoryEditPanelAction() { $active_worker = CerberusApplication::getActiveWorker(); if (!$active_worker->hasPriv('core.kb.categories.modify')) { return; } @($id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0)); @($name = DevblocksPlatform::importGPC($_REQUEST['name'], 'string')); @($parent_id = DevblocksPlatform::importGPC($_REQUEST['parent_id'], 'integer', 0)); @($delete = DevblocksPlatform::importGPC($_REQUEST['delete_box'], 'integer', 0)); @($return = DevblocksPlatform::importGPC($_REQUEST['return'])); if (!empty($id) && !empty($delete)) { $ids = DAO_KbCategory::getDescendents($id); DAO_KbCategory::delete($ids); // Change $return to category parent $return = "research/kb/" . sprintf("%06d", $parent_id); } elseif (empty($id)) { // create $fields = array(DAO_KbCategory::NAME => $name, DAO_KbCategory::PARENT_ID => $parent_id); DAO_KbCategory::create($fields); } else { // update $fields = array(DAO_KbCategory::NAME => $name, DAO_KbCategory::PARENT_ID => $parent_id); DAO_KbCategory::update($id, $fields); } if (!empty($return)) { $return_path = explode('/', $return); DevblocksPlatform::redirect(new DevblocksHttpResponse($return_path)); } }