Partial using $params instead variable per variable when creating a new course see #4068

skala
Julio Montoya 14 years ago
parent d813a5463f
commit bcd4619f28
  1. 40
      main/admin/course_add.php
  2. 11
      main/admin/course_edit.php
  3. 13
      main/admin/course_import.php
  4. 15
      main/create_course/add_course.php
  5. 77
      main/inc/lib/add_course.lib.inc.php
  6. 52
      main/inc/lib/course.lib.php
  7. 109
      main/inc/lib/course_request.lib.php
  8. 95
      main/webservices/registration.soap.php
  9. 5
      tests/main/inc/lib/add_course.lib.inc.test.php

@ -43,7 +43,7 @@ if ($_configuration['multiple_access_urls']) {
$res = Database::query($sql);
$teachers = array();
$teachers[0] = '-- '.get_lang('NoManager').' --';
//$teachers[0] = '-- '.get_lang('NoManager').' --';
while($obj = Database::fetch_object($res)) {
$teachers[$obj->user_id] = api_get_person_name($obj->firstname, $obj->lastname);
}
@ -68,10 +68,10 @@ $form->applyFilter('visual_code', 'api_strtoupper');
$form->applyFilter('visual_code', 'html_filter');
$form->addRule('visual_code', get_lang('Max'), 'maxlength', $maxlength);
$form->addElement('select', 'tutor_id', get_lang('CourseTitular'), $teachers, array('style' => 'width:350px', 'class'=>'chzn-select', 'id'=>'tutor_id'));
$form->applyFilter('tutor_id', 'html_filter');
//$form->addElement('select', 'tutor_id', get_lang('CourseTitular'), $teachers, array('style' => 'width:350px', 'class'=>'chzn-select', 'id'=>'tutor_id'));
//$form->applyFilter('tutor_id', 'html_filter');
$form->addElement('select', 'course_teachers', get_lang('CourseTeachers'), $teachers, ' id="course_teachers" style="width:350px" multiple="multiple" size="5"');
$form->addElement('select', 'course_teachers', get_lang('CourseTeachers'), $teachers, ' id="course_teachers" class="chzn-select" style="width:350px" multiple="multiple" size="5"');
$form->applyFilter('course_teachers', 'html_filter');
$categories_select = $form->addElement('select', 'category_code', get_lang('CourseFaculty'), $categories, array('style' => 'width:350px', 'class'=>'chzn-select', 'id'=>'category_code'));
@ -125,37 +125,25 @@ $values['visibility'] = COURSE_VISIBILITY_OPEN_PLATFORM;
$values['subscribe'] = 1;
$values['unsubscribe'] = 0;
reset($teachers);
$values['course_teachers'] = key($teachers);
//$values['course_teachers'] = key($teachers);
$form->setDefaults($values);
// Validate the form.
// Validate the form
if ($form->validate()) {
$course = $form->exportValues();
$code = $course['visual_code'];
$tutor_name = $teachers[$course['tutor_id']];
//$tutor_name = $teachers[$course['tutor_id']];
$teacher_id = $course['tutor_id'];
$course_teachers = $course['course_teachers'];
$test = false;
// The course tutor has been selected in the teachers list so we must remove him to avoid double records in the database.
foreach ($course_teachers as $key => $value){
if ($value == $teacher_id) {
unset($course_teachers[$key]);
break;
}
}
$title = $course['title'];
$category_code = $course['category_code'];
$department_name = $course['department_name'];
$department_url = $course['department_url'];
$course_language = $course['course_language'];
$exemplary_content = empty($course['exemplary_content']) ? false : true;
$disk_quota = $course['disk_quota'];
$course['exemplary_content'] = empty($course['exemplary_content']) ? false : true;
$course['teachers'] = $course_teachers;
//$course['tutor_name'] = $tutor_name;
$course['user_id'] = $teacher_id;
$course['wanted_code'] = $course['visual_code'];
$course_info = CourseManager::create_course($title, '', '', $exemplary_content,
$tutor_name, $category_code, $course_language, api_get_user_id(),
$department_name, $department_url, $disk_quota, $course['subscribe'], $course['unsubscribe'], $course['visibility'], $course_teachers);
$course_info = CourseManager::create_course($course);
header('Location: course_list.php');
exit;
}

@ -65,11 +65,11 @@ $teachers = array();
$platform_teachers[0] = '-- '.get_lang('NoManager').' --';
while ($obj = Database::fetch_object($res)) {
if (!array_key_exists($obj->user_id,$course_teachers)) {
$teachers[$obj->user_id] = api_get_person_name($obj->firstname, $obj->lastname);
}
if ($course['tutor_name']==$course_teachers[$obj->user_id]) {
$course['tutor_name']=$obj->user_id;
}
@ -98,15 +98,16 @@ $form->add_textfield('visual_code', array(get_lang('CourseCode'), get_lang('Only
$form->applyFilter('visual_code','strtoupper');
$form->applyFilter('visual_code','html_filter');
//$form->add_textfield('tutor_name', get_lang('CourseTitular'));
$form->addElement('select', 'tutor_name', get_lang('CourseTitular'), $platform_teachers, array('style'=>'width:350px','id'=>'tutor_name_id', 'class'=>'chzn-select'));
$form->applyFilter('tutor_name','html_filter');
//$form->addElement('select', 'tutor_name', get_lang('CourseTitular'), $platform_teachers, array('style'=>'width:350px','id'=>'tutor_name_id', 'class'=>'chzn-select'));
//$form->applyFilter('tutor_name','html_filter');
//$form->addElement('select', 'course_teachers', get_lang('CourseTeachers'), $teachers, 'multiple=multiple size="4" style="width: 150px;"');
$group=array();
$group[] = FormValidator::createElement('select', 'platform_teachers', '', $teachers, 'id="platform_teachers" multiple=multiple size="4" style="width:280px;"');
$group[] = FormValidator::createElement('select', 'course_teachers', '', $course_teachers, 'id="course_teachers" multiple=multiple size="4" style="width:280px;"');
$group[] = FormValidator::createElement('select', 'platform_teachers', '', $teachers, ' id="platform_teachers" multiple=multiple size="4" style="width:300px;"');
$group[] = FormValidator::createElement('select', 'course_teachers', '', $course_teachers, ' id="course_teachers" multiple=multiple size="4" style="width:300px;"');
$element_template = <<<EOT
<div class="row">

@ -120,8 +120,17 @@ function save_data($courses) {
$uidCreator = 1;
}
$course_info = CourseManager::create_course($course['Title'], $course['Code'], '', false,
$titular, $course['CourseCategory'], $course_language, $uidCreator);
$params = array();
$params['title'] = $course['Title'];
$params['wanted_code'] = $course['Code'];
$params['tutor_name'] = $titular;
$params['course_category'] = $course['CourseCategory'];
$params['course_category'] = $course['CourseCategory'];
$params['course_language'] = $course_language;
$params['user_id'] = $uidCreator;
$course_info = CourseManager::create_course($params);
if (!empty($course_info)) {
$msg .= '<a href="'.api_get_path(WEB_COURSE_PATH).$course_info['directory'].'/">'.$course_info['title'].'</a> '.get_lang('Created').'<br />';
}

@ -230,9 +230,18 @@ if ($form->validate()) {
}
if ($course_code_ok) {
if (!$course_validation_feature) {
$course_info = CourseManager::create_course($title, $wanted_code, '', $exemplary_content,
$tutor_name, $category_code, $course_language);
if (!$course_validation_feature) {
$params = array();
$params['title'] = $title;
$params['exemplary_content'] = $exemplary_content;
$params['wanted_code'] = $wanted_code;
$params['tutor_name'] = $tutor_name;
$params['category_code'] = $category_code;
$params['course_language'] = $course_language;
$course_info = CourseManager::create_course($params);
if (!empty($course_info)) {
$directory = $course_info['directory'];

@ -2600,11 +2600,31 @@ function string2binary($variable) {
* @param integer Expiration date in unix time representation
* @param array Optional array of teachers' user ID
* @return int 0
* @todo use an array called $params instead of lots of params
*/
function register_course($title, $course_sys_code, $course_screen_code, $course_repository,
$tutor_name, $category_code, $course_language, $user_id, $department_name, $department_url, $disk_quota, $subscribe, $unsubscribe, $visibility, $expiration_date, $teachers) {
function register_course($params) {
global $defaultVisibilityForANewCourse, $error_msg, $firstExpirationDelay;
$title = $params['title'];
$code = $params['code'];
$visual_code = $params['visual_code'];
$directory = $params['directory'];
$tutor_name = $params['tutor_name'];
$description = $params['description'];
$category_code = $params['category_code'];
$course_language = isset($params['course_language']) && !empty($params['course_language']) ? $params['course_language'] : api_get_setting('platformLanguage');
$user_id = empty($params['user_id']) ? api_get_user_id() : intval($params['user_id']);
$department_name = $params['department_name'];
$department_url = $params['department_url'];
$disk_quota = $params['disk_quota'];
$subscribe = isset($params['subscribe']) ? intval($params['subscribe']) : 0;
$unsubscribe = isset($params['unsubscribe']) ? intval($params['unsubscribe']) : 0;
$visibility = $params['visibility'];
$expiration_date = $params['expiration_date'];
$teachers = $params['teachers'];
$status = $params['status'];
$TABLECOURSE = Database :: get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -2612,11 +2632,11 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
$ok_to_register_course = true;
// Check whether all the needed parameters are present.
if (empty($course_sys_code)) {
if (empty($code)) {
$error_msg[] = 'courseSysCode is missing';
$ok_to_register_course = false;
}
if (empty($course_screen_code)) {
if (empty($visual_code)) {
$error_msg[] = 'courseScreenCode is missing';
$ok_to_register_course = false;
}
@ -2626,7 +2646,7 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
$error_msg[] = 'courseDbName is missing';
//$ok_to_register_course = false;
}*/
if (empty($course_repository)) {
if (empty($directory)) {
$error_msg[] = 'courseRepository is missing';
$ok_to_register_course = false;
}
@ -2636,9 +2656,6 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
$ok_to_register_course = false;
}
if (empty($course_language)) {
$course_language = api_get_setting('platformLanguage');
}
if (empty($expiration_date)) {
$expiration_date = api_get_utc_datetime(time() + $firstExpirationDelay);
@ -2661,34 +2678,21 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
$time = api_get_utc_datetime();
if ($subscribe != '') {
$subscribe = 1;
}
if ($unsubscribe != '') {
$unsubscribe = 0;
}
if (stripos($department_url, 'http://') === false && stripos($department_url, 'https://') === false) {
$department_url = 'http://'.$department_url;
}
//just in case
if ($department_url = 'http://') {
if ($department_url == 'http://') {
$department_url = '';
}
if (empty($user_id)) {
$user_id = api_get_user_id();
}
}
$course_id = 0;
if ($ok_to_register_course) {
// Here we must add 2 fields.
$sql = "INSERT INTO ".$TABLECOURSE . " SET
code = '".Database :: escape_string($course_sys_code) . "',
directory = '".Database :: escape_string($course_repository) . "',
$sql = "INSERT INTO ".$TABLECOURSE . " SET
code = '".Database :: escape_string($code) . "',
directory = '".Database :: escape_string($directory) . "',
course_language = '".Database :: escape_string($course_language) . "',
title = '".Database :: escape_string($title) . "',
description = '".lang2db(get_lang('CourseDescription')) . "',
@ -2705,7 +2709,7 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
department_url = '".Database :: escape_string($department_url) . "',
subscribe = '".intval($subscribe) . "',
unsubscribe = '".intval($unsubscribe) . "',
visual_code = '".Database :: escape_string($course_screen_code) . "'";
visual_code = '".Database :: escape_string($visual_code) . "'";
Database::query($sql);
$course_id = Database::get_last_insert_id();
@ -2714,10 +2718,10 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
$sort = api_max_sort_value('0', api_get_user_id());
$i_course_sort = CourseManager :: userCourseSort($user_id, $course_sys_code);
$i_course_sort = CourseManager :: userCourseSort($user_id, $code);
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".Database :: escape_string($course_sys_code). "',
course_code = '".Database :: escape_string($code). "',
user_id = '".intval($user_id) . "',
status = '1',
role = '".lang2db(get_lang('Professor')) . "',
@ -2726,10 +2730,13 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
user_course_cat = '0'";
Database::query($sql);
if (count($teachers) > 0) {
if (!empty($teachers)) {
foreach ($teachers as $key) {
if (empty($key)) {
continue;
}
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".Database::escape_string($course_sys_code) . "',
course_code = '".Database::escape_string($code) . "',
user_id = '".Database::escape_string($key) . "',
status = '1',
role = '',
@ -2748,14 +2755,14 @@ function register_course($title, $course_sys_code, $course_screen_code, $course_
if (api_get_current_access_url_id() != -1) {
$url_id = api_get_current_access_url_id();
}
UrlManager::add_course_to_url($course_sys_code, $url_id);
UrlManager::add_course_to_url($code, $url_id);
} else {
UrlManager::add_course_to_url($course_sys_code, 1);
UrlManager::add_course_to_url($code, 1);
}
// Add event to the system log.
$user_id = api_get_user_id();
event_system(LOG_COURSE_CREATE, LOG_COURSE_CODE, $course_sys_code, api_get_utc_datetime(), $user_id, $course_sys_code);
event_system(LOG_COURSE_CREATE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $code);
$send_mail_to_admin = api_get_setting('send_email_to_admin_when_create_course');

@ -116,55 +116,53 @@ $coursesRepositories = $_configuration['root_sys'];
*/
class CourseManager {
var $columns = array('code', 'directory', 'db_name', '');
/**
* Creates a course
* @param string course title
* @param bool add example content or not
* @param mixed false if the course was not created, array with the course info
*/
function create_course($title, $wanted_code = '', $description = '', $fill_with_exemplary_content = false,
$tutor_name = '', $category_code = '', $course_language = '', $user_id = '',
$department_name = '', $department_url = '', $disk_quota = '',
$subscribe = '', $unsubscribe = '', $visibility = '', $expiration_date = '', $teacher_list = array()
) {
function create_course($params) {
global $_configuration;
if (empty($title)) {
if (empty($params['title'])) {
return false;
}
if (empty($wanted_code)) {
$wanted_code = $title;
if (empty($params['wanted_code'])) {
$params['wanted_code'] = $params['title'];
// Check whether the requested course code has already been occupied.
$dbnamelength = strlen($_configuration['db_prefix']);
// Ensure the database prefix + database name do not get over 40 characters.
$maxlength = 40 - $dbnamelength;
$wanted_code = generate_course_code(api_substr($title, 0, $maxlength));
$params['wanted_code'] = generate_course_code(api_substr($params['title'], 0, $maxlength));
}
// Create the course immediately
$keys = define_course_keys($wanted_code);
$keys = define_course_keys($params['wanted_code']);
$params['exemplary_content'] = isset($params['exemplary_content']) ? $params['exemplary_content'] : false;
if (count($keys)) {
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
$course_info = api_get_course_info($current_course_code);
$params['code'] = $keys['currentCourseCode'];
$params['visual_code'] = $keys['currentCourseId'];
$params['directory'] = $keys['currentCourseRepository'];
$course_info = api_get_course_info($params['code']);
if (empty($course_info)) {
$course_id = register_course($title, $current_course_id, $current_course_code, $current_course_repository,
$tutor_name, $category_code, $course_language, $user_id, $department_name, $department_url, $disk_quota,
$subscribe, $unsubscribe, $visibility, $expiration_date, $teacher_list);
if (!empty($course_id)) {
prepare_course_repository($current_course_repository, $current_course_id);
$pictures_array = fill_course_repository($current_course_repository, $fill_with_exemplary_content);
fill_Db_course($course_id, $current_course_repository, $course_language, $pictures_array, $fill_with_exemplary_content);
$course_info = api_get_course_info_by_id($course_id);
$course_id = register_course($params);
$course_info = api_get_course_info_by_id($course_id);
if (!empty($course_info)) {
return $course_info;
}
if (!empty($course_info)) {
prepare_course_repository($course_info['directory'], $course_info['code']);
$pictures_array = fill_course_repository($course_info['directory'], $params['exemplary_content']);
fill_Db_course($course_id, $course_info['directory'], $course_info['course_language'], $pictures_array, $params['exemplary_content']);
return $course_info;
}
}
}

@ -77,13 +77,13 @@ class CourseRequestManager {
if (!is_array($user_info)) {
return false;
}
$tutor_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $course_language);
$request_date = api_get_utc_datetime();
$status = COURSE_REQUEST_PENDING;
$info = 0;
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
$keys = define_course_keys($wanted_code, '');
if (!count($keys)) {
return false;
}
@ -218,7 +218,7 @@ class CourseRequestManager {
if (self::course_code_exists($wanted_code)) {
return false;
}
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
$keys = define_course_keys($wanted_code, '');
if (count($keys)) {
$visual_code = $keys['currentCourseCode'];
$code = $keys['currentCourseId'];
@ -337,75 +337,64 @@ class CourseRequestManager {
}
// Make all the checks again before the new course creation.
$wanted_code = $course_request_info['code'];
if (CourseManager::course_code_exists($wanted_code)) {
return false;
}
$title = $course_request_info['title'];
$category_code = $course_request_info['category_code'];
$course_language = $course_request_info['course_language'];
$exemplary_content = intval($course_request_info['exemplary_content']) > 0;
$user_id = (int)$course_request_info['user_id'];
if ($user_id <= 0) {
return false;
}
$user_info = api_get_user_info($user_id);
if (!is_array($user_info)) {
return false;
}
$tutor_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $course_language);
// Create the requested course.
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
if (!count($keys)) {
return false;
// Create the requested course
$params = array();
$params['title'] = $course_request_info['title'];
$params['category_code'] = $course_request_info['category_code'];
$params['course_language'] = $course_request_info['course_language'];
$params['exemplary_content'] = intval($course_request_info['exemplary_content']) > 0;
$params['wanted_code'] = $course_request_info['code'];
$params['user_id'] = $course_request_info['user_id'];
$params['tutor_name'] = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $course_language);
$course_info = CourseManager::create_course($params);
if (!empty($course_info)) {
// Mark the request as accepted.
$sql = "UPDATE ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." SET status = ".COURSE_REQUEST_ACCEPTED." WHERE id = ".$id;
Database::query($sql);
// E-mail notification.
// E-mail language: The platform language seems to be the best choice
$email_language = api_get_setting('platformLanguage');
$email_subject = sprintf(get_lang('CourseRequestAcceptedEmailSubject', null, $email_language), '['.api_get_setting('siteName').']', $course_info['code']);
$email_body = get_lang('Dear', null, $email_language).' ';
$email_body .= api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $email_language).",\n\n";
$email_body .= sprintf(get_lang('CourseRequestAcceptedEmailText', null, $email_language), $wanted_code, $course_info['code'], api_get_path(WEB_COURSE_PATH).$course_info['directory'].'/')."\n";
$email_body .= "\n".get_lang('Formula', null, $email_language)."\n";
$email_body .= api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, null, $email_language)."\n";
$email_body .= get_lang('Manager', null, $email_language).' '.api_get_setting('siteName')."\n";
$email_body .= get_lang('Phone', null, $email_language).': '.api_get_setting('administratorTelephone')."\n";
$email_body .= get_lang('Email', null, $email_language).': '.api_get_setting('emailAdministrator', null, $email_language)."\n";
$email_body .= "\n".get_lang('CourseRequestLegalNote', null, $email_language)."\n";
$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
$sender_email = get_setting('emailAdministrator');
$recipient_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
$recipient_email = $user_info['mail'];
$extra_headers = 'Bcc: '.$sender_email;
@api_mail($recipient_name, $recipient_email, $email_subject, $email_body, $sender_name, $sender_email);
return $course_info['code'];
}
$visual_code = $keys['currentCourseCode'];
$code = $keys['currentCourseId'];
$db_name = $keys['currentCourseDbName'];
$directory = $keys['currentCourseRepository'];
prepare_course_repository($directory, $code);
update_Db_course($db_name);
$pictures_array = fill_course_repository($directory, $exemplary_content);
fill_Db_course($db_name, $directory, $course_language, $pictures_array, $exemplary_content);
register_course($code, $visual_code, $directory, $db_name, $tutor_name, $category_code, $title, $course_language, $user_id, null);
// Mark the request as accepted.
$sql = "UPDATE ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." SET status = ".COURSE_REQUEST_ACCEPTED." WHERE id = ".$id;
Database::query($sql);
// E-mail notification.
// E-mail language: The platform language seems to be the best choice.
//$email_language = $course_language;
//$email_language = api_get_interface_language();
$email_language = api_get_setting('platformLanguage');
$email_subject = sprintf(get_lang('CourseRequestAcceptedEmailSubject', null, $email_language), '['.api_get_setting('siteName').']', $wanted_code);
$email_body = get_lang('Dear', null, $email_language).' ';
$email_body .= api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $email_language).",\n\n";
$email_body .= sprintf(get_lang('CourseRequestAcceptedEmailText', null, $email_language), $wanted_code, $code, api_get_path(WEB_COURSE_PATH).$directory.'/')."\n";
$email_body .= "\n".get_lang('Formula', null, $email_language)."\n";
$email_body .= api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, null, $email_language)."\n";
$email_body .= get_lang('Manager', null, $email_language).' '.api_get_setting('siteName')."\n";
$email_body .= get_lang('Phone', null, $email_language).': '.api_get_setting('administratorTelephone')."\n";
$email_body .= get_lang('Email', null, $email_language).': '.api_get_setting('emailAdministrator', null, $email_language)."\n";
$email_body .= "\n".get_lang('CourseRequestLegalNote', null, $email_language)."\n";
$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
$sender_email = get_setting('emailAdministrator');
$recipient_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
$recipient_email = $user_info['mail'];
$extra_headers = 'Bcc: '.$sender_email;
@api_mail($recipient_name, $recipient_email, $email_subject, $email_body, $sender_name, $sender_email);
return $code;
return false;
}
/**

@ -1989,7 +1989,7 @@ $server->register('WSCreateCourse', // method name
// Define the method WSCreateCourse
function WSCreateCourse($params) {
global $firstExpirationDelay, $_configuration;
global $_configuration;
if(!WSHelperVerifyKey($params)) {
return -1;
@ -2006,15 +2006,16 @@ function WSCreateCourse($params) {
foreach ($courses_params as $course_param) {
$title = $course_param['title'];
$category_code = $course_param['category_code'];
$wanted_code = $course_param['wanted_code'];
$tutor_name = $course_param['tutor_name'];
$course_language = 'english'; // TODO: A hard-coded value.
$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'];
$visibility = null;
$title = $course_param['title'];
$category_code = $course_param['category_code'];
$wanted_code = $course_param['wanted_code'];
$tutor_name = $course_param['tutor_name'];
$course_language = 'english'; // TODO: A hard-coded value.
$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'];
$visibility = null;
if($course_param['visibility'] && $course_param['visibility'] >= 0 && $course_param['visibility'] <= 3) {
$visibility = $course_param['visibility'];
}
@ -2058,10 +2059,6 @@ function WSCreateCourse($params) {
$course_language = $course_param['course_language'];
}
$dbnamelength = strlen($_configuration['db_prefix']);
//Ensure the database prefix + database name do not get over 40 characters
$maxlength = 40 - $dbnamelength;
// Set default values
if (isset($_user['language']) && $_user['language'] != '') {
$values['course_language'] = $_user['language'];
@ -2070,51 +2067,43 @@ function WSCreateCourse($params) {
}
$values['tutor_name'] = api_get_person_name($_user['firstName'], $_user['lastName'], null, null, $values['course_language']);
$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
$field_id = CourseManager::create_course_extra_field($original_course_id_name, 1, $original_course_id_name);
if (trim($wanted_code) == '') {
$wanted_code = generate_course_code(substr($title, 0, $maxlength));
}
$keys = 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) {
if (sizeof($keys)) {
$visual_code = $keys['currentCourseCode'];
$code = $keys['currentCourseId'];
$db_name = $keys['currentCourseDbName'];
$directory = $keys['currentCourseRepository'];
$expiration_date = time() + $firstExpirationDelay;
prepare_course_repository($directory, $code);
update_Db_course($db_name);
$pictures_array = fill_course_repository($directory);
fill_Db_course($db_name, $directory, $course_language, $pictures_array);
$return = register_course($code, $visual_code, $directory, $db_name, $tutor_name, $category_code, $title, $course_language, api_get_user_id(), $expiration_date, array(), $visibility);
// Save new fieldlabel into course_field table.
$field_id = 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.
$res = CourseManager::update_course_extra_field_value($code, $original_course_id_name, $original_course_id_value);
// Save the external system's id into user_field_value table.
$res = 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.
$field_id = CourseManager::create_course_extra_field($extra_field_name, 1, $extra_field_name);
// Save the external system's id into course_field_value table.
$res = CourseManager::update_course_extra_field_value($code, $extra_field_name, $extra_field_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.
$field_id = CourseManager::create_course_extra_field($extra_field_name, 1, $extra_field_name);
// Save the external system's id into course_field_value table.
$res = CourseManager::update_course_extra_field_value($course_code, $extra_field_name, $extra_field_value);
}
}
$results[] = $code;
continue;
$results[] = $course_code;
} else {
$results[] = 0;
continue;
$results[] = 0;
}
continue;
}
} // end principal foreach

@ -9,8 +9,7 @@ class TestAddCourse extends UnitTestCase {
function TestAddCourse() {
$this->UnitTestCase('Courses creation - main/inc/lib/add_course.lib.inc.test.php');
}
/*
function TestCreateCourse(){
global $_configuration;
$course_datos = array(
@ -29,7 +28,7 @@ class TestAddCourse extends UnitTestCase {
$course_datos['db_prefix'], $course_datos['firstExpirationDelay']);
//should be code string if succeeded (false if failed)
$this->assertTrue(is_string($res));
}
}*/
function testRegisterCourse() {
global $_configuration;

Loading…
Cancel
Save