Trying to use only one function when creating a course CourseManager::create_course see #4068 (partial)

skala
Julio Montoya 14 years ago
parent 1e4979966c
commit 1ca37d0eb8
  1. 34
      main/admin/course_add.php
  2. 56
      main/create_course/add_course.php
  3. 270
      main/inc/lib/add_course.lib.inc.php
  4. 48
      main/inc/lib/course.lib.php
  5. 2
      main/inc/lib/main_api.lib.php

@ -146,38 +146,18 @@ if ($form->validate()) {
}
$title = $course['title'];
$category = $course['category_code'];
$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'];
if (stripos($department_url, 'http://') === false && stripos($department_url, 'https://') === false) {
$department_url = 'http://'.$department_url;
}
if (trim($code) == '') {
$code = generate_course_code(api_substr($title, 0, $maxlength));
}
$keys = define_course_keys($code, '', $_configuration['db_prefix']);
$disk_quota = $course['disk_quota'];
if (count($keys)) {
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
//@todo is not set $firstExpirationDelay
$expiration_date = time() + $firstExpirationDelay;
prepare_course_repository($current_course_repository, $current_course_id);
$pictures_array = fill_course_repository($current_course_repository, $exemplary_content);
$course_id = register_course($current_course_id, $current_course_code, $current_course_repository, '', $tutor_name, $category, $title, $course_language, $teacher_id, $expiration_date, $course_teachers);
fill_Db_course($course_id, $current_course_repository, $course_language, $pictures_array, $exemplary_content);
$sql = "UPDATE $table_course SET disk_quota = '".$disk_quota."', visibility = '".Database::escape_string($course['visibility'])."', subscribe = '".Database::escape_string($course['subscribe'])."', unsubscribe='".Database::escape_string($course['unsubscribe'])."' WHERE code = '".$current_course_id."'";
Database::query($sql);
header('Location: course_list.php');
exit;
}
$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);
header('Location: course_list.php');
exit;
}
// Display the form.

@ -144,7 +144,7 @@ if ($course_validation_feature) {
}
// Course language.
$form->addElement('select_language', 'course_language', get_lang('Ln'));
$form->addElement('select_language', 'course_language', get_lang('Ln'), null, null, array('id' => 'lang_id'));
$form->applyFilter('select_language', 'html_filter');
// Exemplary content checkbox.
@ -197,24 +197,24 @@ if (isset($_user['language']) && $_user['language'] != '') {
$values['course_language'] = api_get_setting('platformLanguage');
}
$values['tutor_name'] = api_get_person_name($_user['firstName'], $_user['lastName'], null, null, $values['course_language']);
$form->setDefaults($values);
$form->setDefaults($values);
// Validate the form.
if ($form->validate()) {
$course_values = $form->exportValues();
$wanted_code = trim(Security::remove_XSS(stripslashes($course_values['wanted_code'])));
$tutor_name = stripslashes($course_values['tutor_name']);
$category_code = $course_values['category_code'];
$title = Security::remove_XSS(stripslashes($course_values['title']));
$course_language = $course_values['course_language'];
$exemplary_content = !empty($course_values['exemplary_content']);
$wanted_code = $course_values['wanted_code'];
$tutor_name = $course_values['tutor_name'];
$category_code = $course_values['category_code'];
$title = $course_values['title'];
$course_language = $course_values['course_language'];
$exemplary_content = !empty($course_values['exemplary_content']);
if ($course_validation_feature) {
$description = Security::remove_XSS(stripslashes($course_values['description']));
$objetives = Security::remove_XSS(stripslashes($course_values['objetives']));
$target_audience = Security::remove_XSS(stripslashes($course_values['target_audience']));
$description = $course_values['description'];
$objetives = $course_values['objetives'];
$target_audience = $course_values['target_audience'];
$status = '0';
}
@ -230,30 +230,16 @@ if ($form->validate()) {
}
if ($course_code_ok) {
if (!$course_validation_feature) {
// Create the course immediately.
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
if (count($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, $exemplary_content);
$course_id = register_course($code, $visual_code, $directory, '', $tutor_name, $category_code, $title, $course_language, api_get_user_id(), $expiration_date);
fill_Db_course($course_id, $directory, $course_language, $pictures_array, $exemplary_content);
$course_info = CourseManager::create_course($title, $wanted_code, $exemplary_content, $tutor_name, $category_code, $course_language);
if (!empty($course_info)) {
$directory = $course_info['directory'];
$title = $course_info['title'];
// Preparing a confirmation message.
$link = api_get_path(WEB_COURSE_PATH).$directory.'/';
$message = get_lang('JustCreated');
$message .= ' <a href="'.$link.'">'.$title.'</a>';
$link = api_get_path(WEB_COURSE_PATH).$directory.'/';
$message .= get_lang('JustCreated').' '.Display::url($title, $link);
$message = Display :: return_message($message, 'confirmation', false);
$message .= '<div style="float: left; margin:0px; padding: 0px;">' .
@ -263,17 +249,12 @@ if ($form->validate()) {
$message = Display :: return_message(get_lang('CourseCreationFailed'), 'error', false);
// Display the form.
$content = $form->return_form();
}
} else {
// Create a request for a new course.
$request_id = CourseRequestManager::create_course_request($wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience, api_get_user_id(), $exemplary_content);
if ($request_id) {
$course_request_info = CourseRequestManager::get_course_request_info($request_id);
$message = (is_array($course_request_info) ? '<strong>'.$course_request_info['code'].'</strong> : ' : '').get_lang('CourseRequestCreated');
$message = Display :: return_message($message, 'confirmation', false);
@ -286,7 +267,6 @@ if ($form->validate()) {
$content = $form->return_form();
}
}
} else {
$message = Display :: return_message(get_lang('CourseCodeAlreadyExists'), 'error', false);
// Display the form.

@ -16,41 +16,6 @@ require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
/* FUNCTIONS */
/**
* Top-level function to create a course. Calls other functions to take care of
* the various parts of the course creation.
* @param string Course code requested (might be altered to match possible values)
* @param string Course title
* @param string Tutor name
* @param int Course category code
* @param string Course language
* @param int Course admin ID
* @param string DB prefix
* @param int Expiration delay in unix timestamp
* @param bool/null A boolean flag to enable filling the created course with exemplary content. If the flag is NULL, then the platform setting 'example_material_course_creation' is taken into account.
* @return mixed Course code if course was successfully created, false otherwise
*/
function create_course($wanted_code, $title, $tutor_name, $category_code, $course_language, $course_admin_id, $db_prefix, $first_expiration_delay, $fill_with_exemplary_content = null) {
$keys = define_course_keys($wanted_code, '', $db_prefix);
if (count($keys)) {
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
$expiration_date = time() + $first_expiration_delay;
prepare_course_repository($current_course_repository, $current_course_id);
$pictures_array = fill_course_repository($current_course_repository, $fill_with_exemplary_content);
$course_id = register_course($current_course_id, $current_course_code, $current_course_repository, '', $tutor_name, $category, $title, $course_language, $course_admin_id, $expiration_date);
fill_Db_course($course_id, $current_course_repository, $course_language, $pictures_array, $fill_with_exemplary_content);
return $course_id;
}
return false;
}
// TODO: Such a function might be useful in other places too. It might be moved in the CourseManager class.
// Also, the function might be upgraded for avoiding code duplications.
function generate_course_code($course_title, $encoding = null) {
@ -97,7 +62,7 @@ function define_course_keys($wanted_code, $prefix_for_all = '', $prefix_for_base
while (!$keys_are_unique) {
$keys_course_id = $prefix_for_all . $unique_prefix . $wanted_code . $final_suffix['CourseId'];
$keys_course_db_name = $prefix_for_base_name . $unique_prefix . strtoupper($keys_course_id) . $final_suffix['CourseDb'];
//$keys_course_db_name = $prefix_for_base_name . $unique_prefix . strtoupper($keys_course_id) . $final_suffix['CourseDb'];
$keys_course_repository = $prefix_for_path . $unique_prefix . $wanted_code . $final_suffix['CourseDir'];
$keys_are_unique = true;
@ -110,7 +75,7 @@ function define_course_keys($wanted_code, $prefix_for_all = '', $prefix_for_base
$try_new_fsc_id ++;
$final_suffix['CourseId'] = substr(md5(uniqid(rand())), 0, 4);
}
/*
if ($_configuration['single_database']) {
$query = "SHOW TABLES FROM ".$_configuration['main_database']." LIKE '".$_configuration['table_prefix'].$keys_course_db_name.$_configuration['db_glue']."%'";
$result = Database::query($query);
@ -123,7 +88,7 @@ function define_course_keys($wanted_code, $prefix_for_all = '', $prefix_for_base
$keys_are_unique = false;
$try_new_fsc_db ++;
$final_suffix['CourseDb'] = substr('_'.md5(uniqid(rand())), 0, 4);
}
}*/
if (file_exists(api_get_path(SYS_COURSE_PATH).$keys_course_repository)) {
$keys_are_unique = false;
@ -135,15 +100,15 @@ function define_course_keys($wanted_code, $prefix_for_all = '', $prefix_for_base
return $keys;
}
}
/*
// Db name can't begin with a number.
if (stripos('abcdefghijklmnopqrstuvwxyz', $keys_course_db_name[0]) === false) {
$keys_course_db_name = $prefixAntiNumber . $keys_course_db_name;
}
}*/
$keys['currentCourseCode'] = $keys_course_code;
$keys['currentCourseId'] = $keys_course_id;
$keys['currentCourseDbName'] = $keys_course_db_name;
//$keys['currentCourseDbName'] = $keys_course_db_name;
$keys['currentCourseRepository'] = $keys_course_repository;
return $keys;
@ -2484,9 +2449,7 @@ function fill_Db_course($course_id, $course_repository, $language, $default_docu
if ($fill_with_exemplary_content) {
/*
-----------------------------------------------------------
Agenda tool
-----------------------------------------------------------
*/
Database::query("INSERT INTO $TABLETOOLAGENDA VALUES ($course_id, NULL, '".lang2db(get_lang('AgendaCreationTitle')) . "', '".lang2db(get_lang('AgendaCreationContenu')) . "', now(), now(), NULL, 0, 0)");
@ -2496,9 +2459,7 @@ function fill_Db_course($course_id, $course_repository, $language, $default_docu
Database::query($sql);
/*
-----------------------------------------------------------
Links tool
-----------------------------------------------------------
*/
$add_google_link_sql = "INSERT INTO $TABLETOOLLINK (c_id, url, title, description, category_id, display_order, on_homepage, target)
@ -2535,9 +2496,7 @@ function fill_Db_course($course_id, $course_repository, $language, $default_docu
Database::query($sql);
/*
-----------------------------------------------------------
Introduction text
-----------------------------------------------------------
*/
$intro_text='<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td width="110" valign="middle" align="left"><img src="'.api_get_path(REL_CODE_PATH).'img/mascot.png" alt="Mr. Chamilo" title="Mr. Chamilo" /></td><td valign="middle" align="left">'.lang2db(get_lang('IntroductionText')).'</td></tr></table>';
@ -2549,9 +2508,7 @@ function fill_Db_course($course_id, $course_repository, $language, $default_docu
Database::query("INSERT INTO $TABLEINTROS VALUES ($course_id, '" . TOOL_WIKI . "','".$intro_wiki. "', 0)");
/*
-----------------------------------------------------------
Exercise tool
-----------------------------------------------------------
*/
Database::query("INSERT INTO $TABLEQUIZANSWERSLIST VALUES ($course_id, '1', '1', '".lang2db(get_lang('Ridiculise')) . "', '0', '".lang2db(get_lang('NoPsychology')) . "', '-5', '1','','','','')");
@ -2567,9 +2524,7 @@ function fill_Db_course($course_id, $course_repository, $language, $default_docu
Database::query("INSERT INTO $TABLEQUIZQUESTION (c_id, question_id, exercice_id, question_order) VALUES ('.$course_id.', 1,1,1)");
/*
-----------------------------------------------------------
Forum tool
-----------------------------------------------------------
*/
Database::query("INSERT INTO $TABLEFORUMCATEGORIES VALUES ($course_id, 1,'".lang2db(get_lang('ExampleForumCategory'))."', '', 1, 0, 0)");
@ -2646,8 +2601,10 @@ function string2binary($variable) {
* @param array Optional array of teachers' user ID
* @return int 0
*/
function register_course($course_sys_code, $course_screen_code, $course_repository, $course_db_name, $titular, $category, $title, $course_language, $uid_creator, $expiration_date = '', $teachers = array(), $visibility = null) {
global $defaultVisibilityForANewCourse, $error_msg;
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) {
global $defaultVisibilityForANewCourse, $error_msg, $firstExpirationDelay;
$TABLECOURSE = Database :: get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -2663,36 +2620,33 @@ function register_course($course_sys_code, $course_screen_code, $course_reposito
$error_msg[] = 'courseScreenCode is missing';
$ok_to_register_course = false;
}
/*
if (empty($course_db_name)) {
$error_msg[] = 'courseDbName is missing';
//$ok_to_register_course = false;
}
}*/
if (empty($course_repository)) {
$error_msg[] = 'courseRepository is missing';
$ok_to_register_course = false;
}
if (empty($titular)) {
//$error_msg[] = 'titular is missing';
//$ok_to_register_course = false;
}
if (empty($title)) {
$error_msg[] = 'title is missing';
$ok_to_register_course = false;
}
if (empty($course_language)) {
$error_msg[] = 'language is missing';
$ok_to_register_course = false;
$course_language = api_get_setting('platformLanguage');
}
if (empty($expiration_date)) {
$expiration_date = "NULL";
$expiration_date = api_get_utc_datetime(time() + $firstExpirationDelay);
} else {
$expiration_date = "FROM_UNIXTIME(".$expiration_date . ")";
$expiration_date = api_get_utc_datetime($expiration_date);
}
if ($visibility === null) {
if ($visibility == '') {
$visibility = $defaultVisibilityForANewCourse;
} else {
if ($visibility < 0 || $visibility > 3) {
@ -2700,98 +2654,130 @@ function register_course($course_sys_code, $course_screen_code, $course_reposito
$ok_to_register_course = false;
}
}
if (empty($disk_quota)) {
$disk_quota = api_get_setting('default_document_quotum');
}
$time = api_get_utc_datetime();
$course_id = 0;
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://') {
$department_url = '';
}
if (empty($user_id)) {
$user_id = api_get_user_id();
}
$course_id = 0;
if ($ok_to_register_course) {
$titular = addslashes($titular);
// Here we must add 2 fields.
$sql = "INSERT INTO ".$TABLECOURSE . " SET
code = '".Database :: escape_string($course_sys_code) . "',
db_name = '".Database :: escape_string($course_db_name) . "',
directory = '".Database :: escape_string($course_repository) . "',
code = '".Database :: escape_string($course_sys_code) . "',
directory = '".Database :: escape_string($course_repository) . "',
course_language = '".Database :: escape_string($course_language) . "',
title = '".Database :: escape_string($title) . "',
description = '".lang2db(get_lang('CourseDescription')) . "',
category_code = '".Database :: escape_string($category) . "',
visibility = '".$visibility . "',
show_score = '1',
disk_quota = '".api_get_setting('default_document_quotum') . "',
creation_date = now(),
expiration_date = ".$expiration_date . ",
last_edit = now(),
last_visit = NULL,
tutor_name = '".Database :: escape_string($titular) . "',
visual_code = '".Database :: escape_string($course_screen_code) . "'";
title = '".Database :: escape_string($title) . "',
description = '".lang2db(get_lang('CourseDescription')) . "',
category_code = '".Database :: escape_string($category_code) . "',
visibility = '".$visibility . "',
show_score = '1',
disk_quota = '".intval($disk_quota) . "',
creation_date = '$time',
expiration_date = '".$expiration_date . "',
last_edit = '$time',
last_visit = NULL,
tutor_name = '".Database :: escape_string($tutor_name) . "',
department_name = '".Database :: escape_string($department_name) . "',
department_url = '".Database :: escape_string($department_url) . "',
subscribe = '".intval($subscribe) . "',
unsubscribe = '".intval($unsubscribe) . "',
visual_code = '".Database :: escape_string($course_screen_code) . "'";
Database::query($sql);
$course_id = Database::get_last_insert_id();
$sort = api_max_sort_value('0', api_get_user_id());
$i_course_sort = CourseManager :: userCourseSort($uid_creator, $course_sys_code);
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".addslashes($course_sys_code) . "',
user_id = '".Database::escape_string($uid_creator) . "',
status = '1',
role = '".lang2db(get_lang('Professor')) . "',
tutor_id='0',
sort='". ($i_course_sort) . "',
user_course_cat='0'";
Database::query($sql);
if (count($teachers) > 0) {
foreach ($teachers as $key) {
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".Database::escape_string($course_sys_code) . "',
user_id = '".Database::escape_string($key) . "',
status = '1',
role = '',
tutor_id='0',
sort='". ($sort +1) . "',
user_course_cat='0'";
Database::query($sql);
if ($course_id) {
$sort = api_max_sort_value('0', api_get_user_id());
$i_course_sort = CourseManager :: userCourseSort($user_id, $course_sys_code);
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".Database :: escape_string($course_sys_code). "',
user_id = '".intval($user_id) . "',
status = '1',
role = '".lang2db(get_lang('Professor')) . "',
tutor_id = '0',
sort = '". ($i_course_sort) . "',
user_course_cat = '0'";
Database::query($sql);
if (count($teachers) > 0) {
foreach ($teachers as $key) {
$sql = "INSERT INTO ".$TABLECOURSUSER . " SET
course_code = '".Database::escape_string($course_sys_code) . "',
user_id = '".Database::escape_string($key) . "',
status = '1',
role = '',
tutor_id = '0',
sort = '". ($sort +1) . "',
user_course_cat = '0'";
Database::query($sql);
}
}
}
// Adding the course to an URL.
global $_configuration;
require_once api_get_path(LIBRARY_PATH).'urlmanager.lib.php';
if ($_configuration['multiple_access_urls']) {
$url_id = 1;
if (api_get_current_access_url_id() != -1) {
$url_id = api_get_current_access_url_id();
// Adding the course to an URL.
global $_configuration;
require_once api_get_path(LIBRARY_PATH).'urlmanager.lib.php';
if ($_configuration['multiple_access_urls']) {
$url_id = 1;
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);
} else {
UrlManager::add_course_to_url($course_sys_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);
$send_mail_to_admin = api_get_setting('send_email_to_admin_when_create_course');
// @todo Improve code to send to all current portal administrators.
if ($send_mail_to_admin == 'true') {
$siteName = api_get_setting('siteName');
$recipient_email = api_get_setting('emailAdministrator');
$recipient_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'));
$urlsite = api_get_path(WEB_PATH);
$iname = api_get_setting('Institution');
$subject = get_lang('NewCourseCreatedIn').' '.$siteName.' - '.$iname;
$message = get_lang('Dear').' '.$recipient_name.",\n\n".get_lang('MessageOfNewCourseToAdmin').' '.$siteName.' - '.$iname."\n";
$message .= get_lang('CourseName').' '.$title."\n";
$message .= get_lang('Category').' '.$category."\n";
$message .= get_lang('Tutor').' '.$tutor_name."\n";
$message .= get_lang('Language').' '.$course_language;
@api_mail($recipient_name, $recipient_email, $subject, $message, $siteName, $recipient_email);
}
UrlManager::add_course_to_url($course_sys_code, $url_id);
} else {
UrlManager::add_course_to_url($course_sys_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);
$send_mail_to_admin = api_get_setting('send_email_to_admin_when_create_course');
// @todo Improve code to send to all current portal administrators.
if ($send_mail_to_admin == 'true') {
$siteName = api_get_setting('siteName');
$recipient_email = api_get_setting('emailAdministrator');
$recipient_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'));
$urlsite = api_get_path(WEB_PATH);
$iname = api_get_setting('Institution');
$subject = get_lang('NewCourseCreatedIn').' '.$siteName.' - '.$iname;
$message = get_lang('Dear').' '.$recipient_name.",\n\n".get_lang('MessageOfNewCourseToAdmin').' '.$siteName.' - '.$iname."\n";
$message .= get_lang('CourseName').' '.$title."\n";
$message .= get_lang('Category').' '.$category."\n";
$message .= get_lang('Tutor').' '.$titular."\n";
$message .= get_lang('Language').' '.$course_language;
@api_mail($recipient_name, $recipient_email, $subject, $message, $siteName, $recipient_email);
}
}
return $course_id;
}

@ -3339,12 +3339,18 @@ class CourseManager {
* @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 = '', $exemplary_content = false) {
function create_course($title, $wanted_code = '', $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()
) {
require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php';
global $_configuration, $firstExpirationDelay, $language_interface;
global $_configuration;
if (empty($title)) {
return false;
}
if (empty($wanted_code)) {
$wanted_code = $title;
// Check whether the requested course code has already been occupied.
@ -3353,27 +3359,29 @@ class CourseManager {
$maxlength = 40 - $dbnamelength;
$wanted_code = generate_course_code(api_substr($title, 0, $maxlength));
}
// Create the course immediately
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
// Create the course immediately
$keys = define_course_keys($wanted_code);
if (count($keys)) {
$visual_code = $keys['currentCourseCode'];
$code = $keys['currentCourseId'];
$db_name = $keys['currentCourseDbName'];
$directory = $keys['currentCourseRepository'];
$current_course_code = $keys['currentCourseCode'];
$current_course_id = $keys['currentCourseId'];
$current_course_repository = $keys['currentCourseRepository'];
$course_info = api_get_course_info($current_course_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);
$code_info = api_get_course_info($code);
if (empty($code_info)) {
$expiration_date = time() + $firstExpirationDelay;
prepare_course_repository($directory, $code);
update_Db_course($db_name);
$pictures_array = fill_course_repository($directory, $exemplary_content);
fill_Db_course($db_name, $directory, $language_interface, $pictures_array, $exemplary_content);
$result = register_course($code, $visual_code, $directory, $db_name, '', '', $title, $language_interface, api_get_user_id(), $expiration_date);
$course_info = api_get_course_info($code);
if (!empty($course_info)) {
return $course_info;
if (!empty($course_info)) {
return $course_info;
}
}
}
}

@ -1126,6 +1126,7 @@ function api_get_course_info($course_code = null) {
$_course['official_code'] = $course_data['visual_code' ]; // Use in echo statements.
$_course['sysCode' ] = $course_data['code' ]; // Use as key in db.
$_course['path' ] = $course_data['directory' ]; // Use as key in path.
$_course['directory' ] = $course_data['directory' ];
$_course['dbName' ] = $course_data['db_name' ]; // Use as key in db list.
$_course['db_name' ] = $course_data['db_name']; //
$_course['dbNameGlu' ] = $_configuration['table_prefix'] . $course_data['db_name'] . $_configuration['db_glue']; // Use in all queries.
@ -1181,6 +1182,7 @@ function api_get_course_info_by_id($id = null) {
$_course['official_code'] = $course_data['visual_code' ]; // Use in echo statements.
$_course['sysCode' ] = $course_data['code' ]; // Use as key in db.
$_course['path' ] = $course_data['directory' ]; // Use as key in path.
$_course['directory' ] = $course_data['directory' ];
$_course['dbName' ] = $course_data['db_name' ]; // Use as key in db list.
$_course['db_name' ] = $course_data['db_name' ];
$_course['dbNameGlu' ] = $_configuration['table_prefix'] . $course_data['db_name'] . $_configuration['db_glue']; // Use in all queries.

Loading…
Cancel
Save