/** * Prepares extra fields before the import */ private function prepareImport() { // Create user extra field: extra_external_user_id UserManager::create_extra_field($this->extraFieldIdNameList['user'], 1, 'External user id', null); // Create course extra field: extra_external_course_id CourseManager::create_course_extra_field($this->extraFieldIdNameList['course'], 1, 'External course id'); // Create session extra field extra_external_session_id SessionManager::create_session_extra_field($this->extraFieldIdNameList['session'], 1, 'External session id'); // Create calendar_event extra field extra_external_session_id $extraField = new ExtraField('calendar_event'); $extraField->save(array('field_type' => ExtraField::FIELD_TYPE_TEXT, 'field_variable' => $this->extraFieldIdNameList['calendar_event'], 'field_display_text' => 'External calendar event id')); }
function WSCreateCourseByTitle($params) { global $firstExpirationDelay, $_configuration; if (!WSHelperVerifyKey($params)) { return return_error(WS_ERROR_SECRET_KEY); } $table_course = Database::get_main_table(TABLE_MAIN_COURSE); $courses_params = $params['courses']; $results = array(); $orig_course_id_value = array(); foreach ($courses_params as $course_param) { $title = $course_param['title']; $category_code = 'LANG'; // TODO: A hard-coded value. $wanted_code = ''; $tutor_firstname = api_get_setting('administratorName'); $tutor_lastname = api_get_setting('administratorSurname'); $course_language = 'spanish'; // TODO: Incorrect default value, it should 'english'. if (!empty($course_param['course_language'])) { $course_language = $course_param['course_language']; } $tutor_name = api_get_person_name($tutor_firstname, $tutor_lastname, null, null, $course_language); if (!empty($course_param['tutor_name'])) { $tutor_name = $course_param['tutor_name']; } $original_course_id_name = $course_param['original_course_id_name']; $original_course_id_value = $course_param['original_course_id_value']; $orig_course_id_value[] = $course_param['original_course_id_value']; $extra_list = $course_param['extra']; // Ensure the database prefix + database name do not get over 40 characters $maxlength = 40; if (empty($wanted_code)) { $wanted_code = CourseManager::generate_course_code(substr($title, 0, $maxlength)); } $courseInfo = CourseManager::getCourseInfoFromOriginalId($original_course_id_value, $original_course_id_name); if (!empty($courseInfo)) { if ($courseInfo['visibility'] != 0) { $sql = "UPDATE {$table_course} SET\n course_language='" . Database::escape_string($course_language) . "',\n title='" . Database::escape_string($title) . "',\n category_code='" . Database::escape_string($category_code) . "',\n tutor_name='" . Database::escape_string($tutor_name) . "',\n visual_code='" . Database::escape_string($wanted_code) . "',\n visibility = '3'\n WHERE id ='" . $courseInfo['real_id'] . "'"; Database::query($sql); $results[] = $courseInfo['real_id']; continue; } else { $results[] = 0; continue; } } // Set default values. if (isset($_user['language']) && $_user['language'] != '') { $values['course_language'] = $_user['language']; } else { $values['course_language'] = api_get_setting('platformLanguage'); } $values['tutor_name'] = api_get_person_name($_user['firstName'], $_user['lastName'], null, null, $values['course_language']); $keys = AddCourse::define_course_keys($wanted_code, '', $_configuration['db_prefix']); $sql_check = sprintf('SELECT * FROM ' . $table_course . ' WHERE visual_code = "%s"', Database::escape_string($wanted_code)); $result_check = Database::query($sql_check); // I don't know why this api function doesn't work... if (Database::num_rows($result_check) < 1) { $params = array(); $params['title'] = $title; $params['wanted_code'] = $wanted_code; $params['category_code'] = $category_code; $params['tutor_name'] = $tutor_name; $params['course_language'] = $course_language; $params['user_id'] = api_get_user_id(); //$params['visibility'] = $visibility; $course_info = CourseManager::create_course($params); if (!empty($course_info)) { $course_code = $course_info['code']; // Save new fieldlabel into course_field table. CourseManager::create_course_extra_field($original_course_id_name, 1, $original_course_id_name, ''); // Save the external system's id into user_field_value table. CourseManager::update_course_extra_field_value($course_code, $original_course_id_name, $original_course_id_value); if (is_array($extra_list) && count($extra_list) > 0) { foreach ($extra_list as $extra) { $extra_field_name = $extra['field_name']; $extra_field_value = $extra['field_value']; // Save new fieldlabel into course_field table. CourseManager::create_course_extra_field($extra_field_name, 1, $extra_field_name, ''); // Save the external system's id into course_field_value table. CourseManager::update_course_extra_field_value($course_code, $extra_field_name, $extra_field_value); } } } $results[] = $course_code; continue; } else { $results[] = 0; continue; } } // end principal foreach $count_results = count($results); $output = array(); for ($i = 0; $i < $count_results; $i++) { $output[] = array('original_course_id_value' => $orig_course_id_value[$i], 'result' => $results[$i]); } return $output; }
/** * Prepares extra fields before the import */ private function prepareImport() { // Create user extra field: extra_external_user_id UserManager::create_extra_field($this->extraFieldIdNameList['user'], 1, 'External user id', null); // Create course extra field: extra_external_course_id CourseManager::create_course_extra_field($this->extraFieldIdNameList['course'], 1, 'External course id'); // Create session extra field extra_external_session_id SessionManager::create_session_extra_field($this->extraFieldIdNameList['session'], 1, 'External session id'); }