/** * Delete sessions categories * @author Jhon Hinojosa <*****@*****.**>, from existing code * @param array id_checked * @param bool include delete session * @param bool optional, true if the function is called by a webservice, false otherwise. * @return void Nothing, or false on error * The parameters is a array to delete sessions **/ public static function delete_session_category($id_checked, $delete_session = false, $from_ws = false) { $tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); if (is_array($id_checked)) { $id_checked = Database::escape_string(implode(',', $id_checked)); } else { $id_checked = intval($id_checked); } //Setting session_category_id to 0 $sql = "UPDATE {$tbl_session} SET session_category_id = 0 WHERE session_category_id IN (" . $id_checked . ")"; Database::query($sql); $sql = "SELECT id FROM {$tbl_session} WHERE session_category_id IN (" . $id_checked . ")"; $result = @Database::query($sql); while ($rows = Database::fetch_array($result)) { $session_id = $rows['id']; if ($delete_session) { if ($from_ws) { SessionManager::delete_session($session_id, true); } else { SessionManager::delete_session($session_id); } } } $sql = "DELETE FROM {$tbl_session_category} WHERE id IN (" . $id_checked . ")"; $rs = Database::query($sql); $result = Database::affected_rows($rs); // Add event to system log $user_id = api_get_user_id(); event_system(LOG_SESSION_CATEGORY_DELETE, LOG_SESSION_CATEGORY_ID, $id_checked, api_get_utc_datetime(), $user_id); // delete extra session fields where field variable is "PERIODO" $t_sf = Database::get_main_table(TABLE_MAIN_SESSION_FIELD); $t_sfv = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES); $sql = "SELECT t_sfv.field_id FROM {$t_sfv} t_sfv, {$t_sf} t_sf WHERE t_sfv.session_id = '{$id_checked}' AND t_sf.field_variable = 'PERIODO' "; $rs_field = Database::query($sql); $field_id = 0; if (Database::num_rows($rs_field) > 0) { $row_field = Database::fetch_row($rs_field); $field_id = $row_field[0]; $sql_delete_sfv = "DELETE FROM {$t_sfv} WHERE session_id = '{$id_checked}' AND field_id = '{$field_id}'"; $rs_delete_sfv = Database::query($sql_delete_sfv); } $sql = "SELECT * FROM {$t_sfv} WHERE field_id = '{$field_id}' "; $rs_field_id = Database::query($sql); if (Database::num_rows($rs_field_id) == 0) { $sql_delete_sf = "DELETE FROM {$t_sf} WHERE id = '{$field_id}'"; $rs_delete_sf = Database::query($sql_delete_sf); } return true; }
/** * Delete sessions categories * @author Jhon Hinojosa <*****@*****.**>, from existing code * @param array id_checked * @param bool include delete session * @param bool optional, true if the function is called by a webservice, false otherwise. * @return void Nothing, or false on error * The parameters is a array to delete sessions * */ public static function delete_session_category($id_checked, $delete_session = false, $from_ws = false) { $tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); if (is_array($id_checked)) { $id_checked = Database::escape_string(implode(',', $id_checked)); } else { $id_checked = intval($id_checked); } //Setting session_category_id to 0 $sql = "UPDATE $tbl_session SET session_category_id = 0 WHERE session_category_id IN (" . $id_checked . ")"; Database::query($sql); $sql = "SELECT id FROM $tbl_session WHERE session_category_id IN (" . $id_checked . ")"; $result = Database::query($sql); while ($rows = Database::fetch_array($result)) { $session_id = $rows['id']; if ($delete_session) { if ($from_ws) { SessionManager::delete_session($session_id, true); } else { SessionManager::delete_session($session_id); } } } $sql = "DELETE FROM $tbl_session_category WHERE id IN (" . $id_checked . ")"; Database::query($sql); // Add event to system log $user_id = api_get_user_id(); event_system( LOG_SESSION_CATEGORY_DELETE, LOG_SESSION_CATEGORY_ID, $id_checked, api_get_utc_datetime(), $user_id ); return true; }
*/ /** * Code */ $this_section = SECTION_PLATFORM_ADMIN; SessionManager::protect_session_edit(); //Add the JS needed to use the jqgrid $htmlHeadXtra[] = api_get_jqgrid_js(); $htmlHeadXtra[] = api_get_js('json-js/json2.js'); $htmlHeadXtra[] = api_get_js('date/date.js'); $htmlHeadXtra = api_get_datetime_picker_js($htmlHeadXtra); $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null; $idChecked = isset($_REQUEST['idChecked']) ? $_REQUEST['idChecked'] : null; $list_type = isset($_REQUEST['list_type']) ? $_REQUEST['list_type'] : 'simple'; if ($action == 'delete') { SessionManager::delete_session($idChecked); header('Location: ' . api_get_path(WEB_CODE_PATH) . 'session/session_list.php'); exit; } elseif ($action == 'copy') { SessionManager::copy_session($idChecked, true, false); header('Location: ' . api_get_path(WEB_CODE_PATH) . 'session/session_list.php'); exit; } $interbreadcrumb[] = array("url" => "index.php", "name" => get_lang('Sessions')); $tool_name = get_lang('SessionList'); Display::display_header($tool_name); $error_message = ''; if (isset($_GET['action']) && $_GET['action'] == 'show_message') { $error_message = Security::remove_XSS($_GET['message']); } if (!empty($error_message)) {
static function transaction_9($data) { $uidIdPrograma = $data['item_id']; global $data_list; $session_id = self::get_session_id_by_programa_id($uidIdPrograma, $data_list); if (!empty($session_id)) { $session_info_before = api_get_session_info($session_id, true); SessionManager::delete_session($session_id, true); $session_info = api_get_session_info($session_id, true); $data_list['sessions'][$data['item_id']] = null; return array('entity' => 'session', 'before' => $session_info_before, 'after' => $session_info, 'message' => "Session was deleted session_id: {$session_id} - id: {$uidIdPrograma}", 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL); } else { return array('message' => "Session does not exists {$uidIdPrograma}", 'status_id' => self::TRANSACTION_STATUS_FAILED); } }
/** * Deletes a session (helper method) * * @param string Session id field name * @param string Session id value * @return mixed True in case of success, WSError otherwise */ protected function deleteSessionHelper($session_id_field_name, $session_id_value) { $session_id = $this->getSessionId($session_id_field_name, $session_id_value); if ($session_id instanceof WSError) { return $session_id; } else { SessionManager::delete_session($session_id, true); return true; } }