From 79479af7f27e355e28f692a3f1d2772b6dbc39ae Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 16 Nov 2012 16:44:33 +0100 Subject: [PATCH] Adding extra_field when showing before/after data --- main/inc/lib/main_api.lib.php | 29 +++++++++++++++++++----- tests/migrate/migration.custom.class.php | 28 ++++++++++++----------- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php index 56d25eb8b1..79041591e1 100644 --- a/main/inc/lib/main_api.lib.php +++ b/main/inc/lib/main_api.lib.php @@ -1147,14 +1147,14 @@ function _api_format_user($user, $add_password = false) { * @author Patrick Cool * @version 21 September 2004 */ -function api_get_user_info($user_id = '', $check_if_user_is_online = false, $show_password = false) { +function api_get_user_info($user_id = '', $check_if_user_is_online = false, $show_password = false, $add_extra_values = false) { if ($user_id == '') { return _api_format_user($GLOBALS['_user']); } $sql = "SELECT * FROM ".Database :: get_main_table(TABLE_MAIN_USER)." WHERE user_id='".Database::escape_string($user_id)."'"; $result = Database::query($sql); if (Database::num_rows($result) > 0) { - $result_array = Database::fetch_array($result); + $result_array = Database::fetch_array($result); if ($check_if_user_is_online) { $use_status_in_platform = user_is_online($user_id); @@ -1169,7 +1169,12 @@ function api_get_user_info($user_id = '', $check_if_user_is_online = false, $sho } $result_array['user_is_online_in_chat'] = $user_online_in_chat; } - $user = _api_format_user($result_array, $show_password); + $user = _api_format_user($result_array, $show_password); + + if ($add_extra_values) { + $extra_field_values = new ExtraField('user'); + $user['extra_fields'] = $extra_field_values->get_handler_extra_data($user_id); + } return $user; } return false; @@ -1308,7 +1313,7 @@ function api_get_cidreq($add_session_id = true, $add_group_id = true) { * particular course, not specially the current one. * @todo Same behaviour as api_get_user_info so that api_get_course_id becomes absolete too. */ -function api_get_course_info($course_code = null) { +function api_get_course_info($course_code = null, $add_extra_values = false) { if (!empty($course_code)) { $course_code = Database::escape_string($course_code); $course_table = Database::get_main_table(TABLE_MAIN_COURSE); @@ -1322,6 +1327,10 @@ function api_get_course_info($course_code = null) { $_course = array(); if (Database::num_rows($result) > 0) { $course_data = Database::fetch_array($result); + if ($add_extra_values) { + $extra_field_values = new ExtraField('course'); + $course_data['extra_fields'] = $extra_field_values->get_handler_extra_data($course_code); + } $_course = api_format_course_array($course_data); } return $_course; @@ -1337,7 +1346,7 @@ function api_get_course_info($course_code = null) { * Now if the course_code is given, the returned array gives info about that * particular course, not specially the current one. */ -function api_get_course_info_by_id($id = null) { +function api_get_course_info_by_id($id = null, $add_extra_values = false) { if (!empty($id)) { $id = intval($id); $course_table = Database::get_main_table(TABLE_MAIN_COURSE); @@ -1351,6 +1360,10 @@ function api_get_course_info_by_id($id = null) { $_course = array(); if (Database::num_rows($result) > 0) { $course_data = Database::fetch_array($result); + if ($add_extra_values) { + $extra_field_values = new ExtraField('course'); + $course_data['extra_fields'] = $extra_field_values->get_handler_extra_data($course_code); + } $_course = api_format_course_array($course_data); } return $_course; @@ -1880,7 +1893,7 @@ function api_get_session_name($session_id) { * @param int Session ID * @return array information of the session */ -function api_get_session_info($session_id) { +function api_get_session_info($session_id, $add_extra_values = false) { $data = array(); if (!empty($session_id)) { $session_id = intval($session_id); @@ -1890,6 +1903,10 @@ function api_get_session_info($session_id) { if (Database::num_rows($result)>0) { $data = Database::fetch_array($result, 'ASSOC'); + if ($add_extra_values) { + $extra_field_values = new ExtraField('session'); + $data['extra_fields'] = $extra_field_values->get_handler_extra_data($session_id); + } } } return $data; diff --git a/tests/migrate/migration.custom.class.php b/tests/migrate/migration.custom.class.php index 5a7d636d26..d0d57ad149 100644 --- a/tests/migrate/migration.custom.class.php +++ b/tests/migrate/migration.custom.class.php @@ -727,6 +727,7 @@ class MigrationCustom { if ($user_info['error'] == false) { global $api_failureList; $chamilo_user_info = UserManager::add($user_info); + $chamilo_user_info = api_get_user_info($chamilo_user_info['user_id'], true); if ($chamilo_user_info) { return array( 'entity' => 'user', @@ -752,9 +753,9 @@ class MigrationCustom { $uidIdPersonaId = $data['item_id']; $user_id = self::get_user_id_by_persona_id($uidIdPersonaId); if ($user_id) { - $chamilo_user_info_before = api_get_user_info($user_id); + $chamilo_user_info_before = api_get_user_info($user_id, true); $result = UserManager::delete_user($user_id); - $chamilo_user_info = api_get_user_info($user_id); + $chamilo_user_info = api_get_user_info($user_id, true); if ($result) { return array( 'entity' => 'user', @@ -787,9 +788,9 @@ class MigrationCustom { if ($user_info['error'] == false) { //Edit user $user_info['user_id'] = $user_id; - $chamilo_user_info_before = api_get_user_info($user_id); + $chamilo_user_info_before = api_get_user_info($user_id, true); UserManager::update($user_info); - $chamilo_user_info = api_get_user_info($user_id); + $chamilo_user_info = api_get_user_info($user_id, true); return array( 'entity' => 'user', 'before' => $chamilo_user_info_before, @@ -927,6 +928,7 @@ class MigrationCustom { $course_info = Migration::soap_call($web_service_details, 'cursoDetalles', array('uididcurso' => $uidCursoId)); if ($course_info['error'] == false) { $course_info = CourseManager::create_course($course_info); + $course_info = api_get_course_info($course_info['code'], true); if (!empty($course_info)) { return array( 'entity' => 'course', @@ -951,9 +953,9 @@ class MigrationCustom { static function transaction_6($data) { $course_code = self::get_real_course_code($data['item_id']); if (!empty($course_code)) { - $course_info_before = api_get_course_info($course_code); + $course_info_before = api_get_course_info($course_code, true); CourseManager::delete_course($course_code); - $course_info = api_get_course_info($course_code); + $course_info = api_get_course_info($course_code, true); return array( 'entity' => 'course', 'before' => $course_info_before, @@ -976,7 +978,7 @@ class MigrationCustom { $uidCursoId = $data['item_id']; $course_code = self::get_real_course_code($uidCursoId); if (!empty($course_code)) { - $course_info = api_get_course_info($course_code); + $course_info = api_get_course_info($course_code, true); $data_to_update = Migration::soap_call($web_service_details, 'cursoDetalles', array('uididcurso' => $uidCursoId)); if ($data_to_update['error'] == false) { @@ -984,7 +986,7 @@ class MigrationCustom { $data_to_update['code'] = $course_info['code']; unset($data_to_update['error']); CourseManager::update($data_to_update); - $course_info_after = api_get_course_info($course_code); + $course_info_after = api_get_course_info($course_code, true); return array( 'entity' => 'course', @@ -1047,7 +1049,7 @@ class MigrationCustom { if ($session_info['error'] == false) { unset($session_info['error']); $session_id = SessionManager::add($session_info); - $session_info = api_get_session_info($session_id); + $session_info = api_get_session_info($session_id, true); if ($session_id) { return array( 'entity' => 'session', @@ -1075,9 +1077,9 @@ class MigrationCustom { $uidIdPrograma = $data['item_id']; $session_id = self::get_session_id_by_programa_id($uidIdPrograma); if (!empty($session_id)) { - $session_info_before = api_get_session_info($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); + $session_info = api_get_session_info($session_id, true); return array( 'entity' => 'session', 'before' => $session_info_before, @@ -1103,9 +1105,9 @@ class MigrationCustom { if ($session_info['error'] == false) { $session_info['id'] = $session_id; unset($session_info['error']); - $session_info_before = api_get_session_info($session_id); + $session_info_before = api_get_session_info($session_id, true); SessionManager::update($session_info); - $session_info = api_get_session_info($session_id); + $session_info = api_get_session_info($session_id, true); return array( 'entity' => 'session', 'before' => $session_info_before,