, Ghent University
* @return HTML code: a table with all the courses in a given category (title, code, tutor) and a subscription icon if applicable)
*/
function browse_courses_in_category() {
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$category = Database::escape_string($_GET['category']);
echo "".get_lang('CoursesInCategory')."";
$my_category = (empty($category) ? " IS NULL" : "='".$category."'");
$sql = "SELECT * FROM $tbl_course WHERE category_code".$my_category.' ORDER BY title, visual_code';
//showing only the courses of the current Dokeos access_url_id
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id != -1) {
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT * FROM $tbl_course as course INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND category_code".$my_category.' ORDER BY title, visual_code';
}
}
$result = Database::query($sql, __FILE__, __LINE__);
while ($row = Database::fetch_array($result)) {
$row['registration_code'] = !empty($row['registration_code']);
$courses[] = array('code' => $row['code'], 'directory' => $row['directory'], 'db' => $row['db_name'], 'visual_code' => $row['visual_code'], 'title' => $row['title'], 'tutor' => $row['tutor_name'], 'subscribe' => $row['subscribe'], 'unsubscribe' => $row['unsubscribe'], 'registration_code' => $registration_code);
}
display_subscribe_to_courses($courses);
}
/**
* displays the form for searching for a course and the results if a query has been submitted.
* @author Patrick Cool , Ghent University
* @return HTML code: the form for searching for a course
*/
function display_search_courses() {
global $_user, $stok;
echo "".get_lang('SearchCourse')."
";
echo "
";
if (isset($_POST['search_course'])) {
echo "".get_lang('SearchResultsFor')." ".api_htmlentities($_POST['search_term'], ENT_QUOTES, api_get_system_encoding())."
";
$result_search_courses_array = search_courses($_POST['search_term']);
display_subscribe_to_courses($result_search_courses_array);
}
}
/**
* This function displays the list of course that can be subscribed to.
* This list can come from the search results or from the browsing of the platform course categories
*/
function display_subscribe_to_courses($courses) {
global $_user;
// getting all the courses to which the user is subscribed to
$user_courses = get_courses_of_user($_user['user_id']);
$user_coursecodes = array();
// we need only the course codes as these will be used to match against the courses of the category
if ($user_courses != '') {
foreach ($user_courses as $key => $value) {
$user_coursecodes[] = $value['code'];
}
}
if ($courses == 0) {
return false;
}
echo "
\n";
foreach ($courses as $key=>$course) {
// displaying the course title, visual code and teacher/teaching staff
echo "\t\n";
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
// block course description
echo "\t\t";
$icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
echo "".Display::return_icon('synthese_view.gif', $icon_title)."";
echo "\t\t | ";
}
echo "\t\t\n";
echo "".$course['title']." ";
if (api_get_setting('display_coursecode_in_courselist') == 'true') {
echo $course['visual_code'];
}
if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') {
echo " - ";
}
if (api_get_setting('display_teacher_in_courselist') == 'true') {
echo $course['tutor'];
}
echo "\t\t | \n";
echo "\t\t\n";
if ($course['registration_code']) {
Display::display_icon('passwordprotected.png', '', array('style' => 'float:left;'));
}
display_subscribe_icon($course, $user_coursecodes);
echo "\t\t | \n";
echo "
";
}
echo "
";
}
/**
* Search the courses database for a course that matches the search term.
* The search is done on the code, title and tutor field of the course table.
* @author Patrick Cool , Ghent University
* @param string $search_term: the string that the user submitted, what we are looking for
* @return array an array containing a list of all the courses (the code, directory, dabase, visual_code, title, ... )
* matching the the search term.
*/
function search_courses($search_term) {
$TABLECOURS = Database::get_main_table(TABLE_MAIN_COURSE);
$search_term_safe = Database::escape_string($search_term);
$sql_find = "SELECT * FROM $TABLECOURS WHERE code LIKE '%".$search_term_safe."%' OR title LIKE '%".$search_term_safe."%' OR tutor_name LIKE '%".$search_term_safe."%' ORDER BY title, visual_code ASC";
global $_configuration;
if ($_configuration['multiple_access_urls']) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id != -1) {
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql_find = "SELECT * FROM $TABLECOURS as course INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.course_code=course.code)
WHERE access_url_id = $url_access_id AND (code LIKE '%".$search_term_safe."%' OR title LIKE '%".$search_term_safe."%' OR tutor_name LIKE '%".$search_term_safe."%' ) ORDER BY title, visual_code ASC ";
}
}
$result_find = Database::query($sql_find, __FILE__, __LINE__);
while ($row = Database::fetch_array($result_find)) {
$courses[] = array('code' => $row['code'], 'directory' => $row['directory'], 'db' => $row['db_name'], 'visual_code' => $row['visual_code'], 'title' => $row['title'], 'tutor' => $row['tutor_name'], 'subscribe' => $row['subscribe'], 'unsubscribe' => $row['unsubscribe']);
}
return $courses;
}
/**
* deletes a course category and moves all the courses that were in this category to main category
* @author Patrick Cool , Ghent University
* @param int $id: the id of the user_course_category
* @return string a language variable saying that the deletion went OK.
*/
function delete_course_category($id) {
global $_user, $_configuration;
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$id = intval($id);
$sql_delete = "DELETE FROM $tucc WHERE id='".$id."' and user_id='".$_user['user_id']."'";
$sql_update = "UPDATE $TABLECOURSUSER SET user_course_cat='0' WHERE user_course_cat='".$id."' AND user_id='".$_user['user_id']."'";
Database::query($sql_delete, __FILE__, __LINE__);
Database::query($sql_update, __FILE__, __LINE__);
return get_lang('CourseCategoryDeleted');
}
/**
* stores the user course category in the dokeos_user database
* @author Patrick Cool , Ghent University
* @return string a language variable saying that the user course category was stored
*/
function store_course_category() {
global $_user, $_configuration;
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
// step 1: we determine the max value of the user defined course categories
$sql = "SELECT sort FROM $tucc WHERE user_id='".$_user['user_id']."' ORDER BY sort DESC";
$result = Database::query($sql, __FILE__, __LINE__);
$maxsort = Database::fetch_array($result);
$nextsort = $maxsort['sort'] + 1;
// step 2: we check if there is already a category with this name, if not we store it, else we give an error.
$sql = "SELECT * FROM $tucc WHERE user_id='".$_user['user_id']."' AND title='".Database::escape_string($_POST['title_course_category'])."'ORDER BY sort DESC";
$result = Database::query($sql, __FILE__, __LINE__);
if (Database::num_rows($result) == 0) {
$sql_insert = "INSERT INTO $tucc (user_id, title,sort) VALUES ('".$_user['user_id']."', '".api_htmlentities($_POST['title_course_category'], ENT_QUOTES, api_get_system_encoding())."', '".$nextsort."')";
Database::query($sql_insert, __FILE__, __LINE__);
Display::display_confirmation_message(get_lang("CourseCategoryStored"));
} else {
Display::display_error_message(get_lang('ACourseCategoryWithThisNameAlreadyExists'));
}
}
/**
* displays the form that is needed to create a course category.
* @author Patrick Cool , Ghent University
* @return HTML the form (input field + submit button) to create a user course category
*/
function display_create_course_category_form()
{
global $_user, $_configuration, $stok;
echo "\n";
echo get_lang('ExistingCourseCategories');
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql = "SELECT * FROM $tucc WHERE user_id='".$_user['user_id']."'";
$result = Database::query($sql, __LINE__, __FILE__);
if (Database::num_rows($result) > 0) {
echo "\n";
while ($row = Database::fetch_array($result)) {
echo "\t- ".$row['title']."
\n";
}
echo "
\n";
}
}
// ***************************************************************************
// this function stores the changes in a course category
//
// ***************************************************************************
/**
* stores the changes in a course category (moving a course to a different course category)
* @author Patrick Cool , Ghent University
* @param string $course_code : the course_code of the course we are moving
* int $newcategory : the id of the user course category we are moving the course to.
* @return string a language variable saying that the course was moved.
*/
function store_changecoursecategory($course_code, $newcategory) {
global $_user;
$course_code = Database::escape_string($course_code);
$newcategory = Database::escape_string($newcategory);
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$max_sort_value = api_max_sort_value($newcategory, $_user['user_id']); // max_sort_value($newcategory);
$sql = "UPDATE $TABLECOURSUSER SET user_course_cat='".$newcategory."', sort='".($max_sort_value + 1)."' WHERE course_code='".$course_code."' AND user_id='".$_user['user_id']."'";
$result = Database::query($sql, __FILE__, __LINE__);
return get_lang('EditCourseCategorySucces');
}
/**
* moves the course one place up or down
* @author Patrick Cool , Ghent University
* @param string $direction : the direction we are moving the course to (up or down)
* string $course2move : the course we are moving
* @return string a language variable saying that the course was moved.
*/
function move_course($direction, $course2move, $category) {
global $_user;
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$all_user_courses = get_courses_of_user($_user['user_id']);
// we need only the courses of the category we are moving in
$user_courses = array();
foreach ($all_user_courses as $key => $course) {
if ($course['user_course_category'] == $category) {
$user_courses[] = $course;
}
}
foreach ($user_courses as $key => $course) {
if ($course2move == $course['code']) {
// source_course is the course where we clicked the up or down icon
$source_course = $course;
// target_course is the course before/after the source_course (depending on the up/down icon)
if ($direction == 'up') {
$target_course = $user_courses[$key - 1];
} else {
$target_course = $user_courses[$key + 1];
}
} // if ($course2move == $course['code'])
}
if (count($target_course) > 0 && count($source_course) > 0) {
$sql_update1 = "UPDATE $TABLECOURSUSER SET sort='".$target_course['sort']."' WHERE course_code='".$source_course['code']."' AND user_id='".$_user['user_id']."'";
$sql_update2 = "UPDATE $TABLECOURSUSER SET sort='".$source_course['sort']."' WHERE course_code='".$target_course['code']."' AND user_id='".$_user['user_id']."'";
Database::query($sql_update2, __FILE__, __LINE__);
Database::query($sql_update1, __FILE__, __LINE__);
return get_lang('CourseSortingDone');
}
return '';
}
/**
* Moves the course one place up or down
* @author Patrick Cool , Ghent University
* @param string $direction : the direction we are moving the course to (up or down)
* string $course2move : the course we are moving
* @return string a language variable saying that the course was moved.
*/
function move_category($direction, $category2move) {
global $_user;
// the database definition of the table that stores the user defined course categories
$table_user_defined_category = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$user_coursecategories = get_user_course_categories();
$user_course_categories_info = get_user_course_categories_info();
foreach ($user_coursecategories as $key => $category_id) {
if ($category2move == $category_id) {
// source_course is the course where we clicked the up or down icon
//$source_category=get_user_course_category($category2move);
$source_category = $user_course_categories_info[$category2move];
// target_course is the course before/after the source_course (depending on the up/down icon)
if ($direction == 'up') {
$target_category = $user_course_categories_info[$user_coursecategories[$key - 1]];
} else {
$target_category = $user_course_categories_info[$user_coursecategories[$key + 1]];
}
} // if ($course2move == $course['code'])
} // foreach ($user_courses as $key => $course)
if (count($target_category) > 0 && count($source_category) > 0) {
$sql_update1="UPDATE $table_user_defined_category SET sort='".$target_category['sort']."' WHERE id='".$source_category['id']."' AND user_id='".$_user['user_id']."'";
$sql_update2="UPDATE $table_user_defined_category SET sort='".$source_category['sort']."' WHERE id='".$target_category['id']."' AND user_id='".$_user['user_id']."'";
Database::query($sql_update2, __FILE__, __LINE__);
Database::query($sql_update1, __FILE__, __LINE__);
return get_lang('CategorySortingDone');
}
return '';
}
/**
* displays everything that is needed when the user wants to manage his current courses (sorting, subscribing, unsubscribing, ...)
* @author Patrick Cool , Ghent University
* @param int $user_id: the user_id of the current user
* string $parameter: determines weither we are displaying for the sorting, subscribing or unsubscribin
array $user_courses: the courses to which the user is subscribed
* @return html a table containing courses and the appropriate icons (sub/unsub/move)
*/
function display_courses($user_id, $show_course_icons, $user_courses) {
global $_user, $_configuration;
echo "\n";
// building an array that contains all the id's of the user defined course categories
// initially this was inside the display_courses_in_category function but when we do it here we have fewer
// sql executions = performance increase.
$all_user_categories = get_user_course_categories();
// step 0: we display the course without a user category
display_courses_in_category(0, 'true');
// Step 1: We get all the categories of the user.
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql = "SELECT * FROM $tucc WHERE user_id='".$_user['user_id']."' ORDER BY sort ASC";
$result = Database::query($sql, __FILE__, __LINE__);
while ($row = Database::fetch_array($result)) {
if ($show_course_icons) {
// The edit link is clicked.
if (isset($_GET['categoryid']) && $_GET['categoryid'] == $row['id']) {
// We display the edit form for the category.
echo "";
echo ''; // display an internal anchor.
display_edit_course_category_form($row['id']);
} else {
// We simply display the title of the category.
echo " |
";
echo ''; // display an internal anchor.
echo $row['title'];
}
echo " | ";
display_category_icons($row['id'], $all_user_categories);
echo " |
";
}
// Step 2: Show the courses inside this category.
display_courses_in_category($row['id'], $show_course_icons);
}
echo "
\n";
}
/**
* This function displays all the courses in the particular user category;
* @author Patrick Cool , Ghent University
* @param int id: the id of the user defined course category
* @return string: the name of the user defined course category
*/
function display_courses_in_category($user_category_id, $showicons) {
global $_user;
// table definitions
$TABLECOURS=Database::get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER=Database::get_main_table(TABLE_MAIN_COURSE_USER);
$TABLE_USER_COURSE_CATEGORY = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql_select_courses = "SELECT course.code, course.visual_code, course.subscribe subscr, course.unsubscribe unsubscr,
course.title title, course.tutor_name tutor, course.db_name, course.directory, course_rel_user.status status,
course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat
FROM $TABLECOURS course,
$TABLECOURSUSER course_rel_user
WHERE course.code = course_rel_user.course_code
AND course_rel_user.user_id = '".$_user['user_id']."'
AND course_rel_user.user_course_cat='".$user_category_id."'
ORDER BY course_rel_user.user_course_cat, course_rel_user.sort ASC";
$result = Database::query($sql_select_courses,__FILE__,__LINE__);
$number_of_courses = Database::num_rows($result);
$key = 0;
while ($course = Database::fetch_array($result)) {
echo "\t\n";
if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
// block course description
echo "\t\t";
$icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
echo "".Display::return_icon('synthese_view.gif', $icon_title)."";
echo "\t\t | ";
}
echo "\t\t\n";
echo ''; // display an internal anchor.
echo "".$course['title']." ";
if (api_get_setting('display_coursecode_in_courselist') == 'true') {
echo $course['visual_code'];
}
if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') {
echo " - ";
}
if (api_get_setting('display_teacher_in_courselist') == 'true') {
echo $course['tutor'];
}
echo "\t\t | \n";
// displaying the up/down/edit icons when we are sorting courses
echo "\t\t\n";
//if ($parameter == 'sorting')
//{
display_course_icons($key, $number_of_courses, $course);
//}
// displaying the delete icon when we are unsubscribing from courses
//if($parameter == 'deleting')
//{
// display_unsubscribe_icons($course);
//}
// display the subscribing icon when we are to courses.
//if ($parameter == 'subscribing')
//{
// display_subscribe_icon($course);
//}
echo "\t\t | \n";
echo "\t
\n";
$key++;
}
}
/**
* gets the title of the user course category
* @author Patrick Cool , Ghent University
* @param int id: the id of the user defined course category
* @return string: the name of the user defined course category
*/
function get_user_course_category($id) {
global $_user, $_configuration;
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$id = intval($id);
return Database::fetch_array(Database::query("SELECT * FROM $tucc WHERE user_id='".$_user['user_id']."' AND id='$id'", __FILE__, __LINE__));
}
/**
* displays the subscribe icon if the subscribing is allowed and if the user is not yet
* subscribe to this course
* @author Patrick Cool , Ghent University
* @param string $current_course: the course code of the course we need to display the subscribe icon for
* @return string a subscribe icon or the text that subscribing is not allowed or the user is already subscribed
*/
function display_subscribe_icon($current_course, $user_coursecodes) {
global $stok;
// we display the icon to subscribe or the text already subscribed
if (in_array($current_course['code'], $user_coursecodes)) {
Display::display_icon('enroll_na.gif', get_lang('AlreadySubscribed'));
} else {
if ($current_course['subscribe'] == SUBSCRIBE_ALLOWED) {
echo "";
} else {
// echo get_lang('SubscribingNotAllowed');
Display::display_icon('enroll_na.gif', get_lang('SubscribingNotAllowed'));
}
}
}
/**
* Displays the subscribe icon if the subscribing is allowed and if the user is not yet
* subscribed to this course
* @author Patrick Cool , Ghent University
* @param $key:
* $number_of_courses
* $course
* $user_courses
* @return html a small table containing the up/down icons and the edit icon (for moving to a different user course category)
* @todo complete the comments on this function: the parameter section
*/
function display_course_icons($key, $number_of_courses, $course) {
global $safe, $stok;
echo "";
}
/**
* displays the relevant icons for the category (if applicable):move up, move down, edit, delete
* @author Patrick Cool , Ghent University
* @param $current_category the id of the current category
* $allcategories an associative array containing all the categories.
* @return html: a small table containing the up/down icons and the edit icon (for moving to a different user course category)
* @todo complete the comments on this function: the parameter section
*/
function display_category_icons($current_category, $all_user_categories) {
global $safe, $stok;
$max_category_key = count($all_user_categories);
if ($safe['action'] != 'unsubscribe') { // we are in the unsubscribe section then we do not show the icons.
echo "";
}
}
/**
* This function displays the form (dropdown list) to move a course to a
* different course_category (after the edit icon has been changed)
* @author Patrick Cool , Ghent University
* @param string $edit_course:
* @return html a dropdown list containing all the user defined course categories and a submit button
* @todo when editing (moving) a course inside a user defined course category to a different user defined category
* the dropdown list should have the current course category selected.
*/
function display_change_course_category_form($edit_course) {
global $_user, $_configuration, $safe, $stok;
$edit_course = Security::remove_XSS($edit_course);
$DATABASE_USER_TOOLS = $_configuration['user_personal_database'];
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql = "SELECT * FROM $tucc WHERE user_id='".$_user['user_id']."'";
$result = Database::query($sql, __FILE__, __LINE__);
$output = "";
return $output;
}
/**
* This function displays the unsubscribe part which can be
* 1. the unsubscribe link
* 2. text: you are course admin of this course (=> unsubscription is not possible
* 3. text: you are not allowed to unsubscribe from this course
* @author Patrick Cool , Ghent University
* @param array $course: the array with all the course & course_rel_user information
* @return html a delete icon or a text that unsubscribing is not possible (course admin) or not allowed.
*/
function display_unsubscribe_icons($course) {
global $stok;
if ($course['status'] != 1) {
if ($course['unsubscribe'] == 1) {
// Changed link to submit to avoid action by the search tool indexer.
echo "";
} else {
display_info_text(get_lang('UnsubscribeNotAllowed'));
}
} else {
display_info_text(get_lang('CourseAdminUnsubscribeNotAllowed'));
}
}
/**
* retrieves all the courses that the user has already subscribed to
* @author Patrick Cool , Ghent University
* @param int $user_id: the id of the user
* @return array an array containing all the information of the courses of the given user
*/
function get_courses_of_user($user_id) {
$TABLECOURS = Database::get_main_table(TABLE_MAIN_COURSE);
$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
// Secondly we select the courses that are in a category (user_course_cat<>0) and sort these according to the sort of the category
$user_id = intval($user_id);
$sql_select_courses = "SELECT course.code k, course.visual_code vc, course.subscribe subscr, course.unsubscribe unsubscr,
course.title i, course.tutor_name t, course.db_name db, course.directory dir, course_rel_user.status status,
course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat
FROM $TABLECOURS course,
$TABLECOURSUSER course_rel_user
WHERE course.code = course_rel_user.course_code
AND course_rel_user.user_id = '".$user_id."'
ORDER BY course_rel_user.sort ASC";
$result = Database::query($sql_select_courses,__FILE__,__LINE__);
while ($row = Database::fetch_array($result)) {
// we only need the database name of the course
$courses[] = array('db' => $row['db'], 'code' => $row['k'], 'visual_code' => $row['vc'], 'title' => $row['i'], 'directory' => $row['dir'], 'status' => $row['status'], 'tutor' => $row['t'], 'subscribe' => $row['subscr'], 'unsubscribe' => $row['unsubscr'], 'sort' => $row['sort'], 'user_course_category' => $row['user_course_cat']);
}
return $courses;
}
/**
* retrieves the user defined course categories
* @author Patrick Cool , Ghent University
* @return array containing all the IDs of the user defined courses categories, sorted by the "sort" field
*/
function get_user_course_categories() {
global $_user;
$table_category = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql = "SELECT * FROM ".$table_category." WHERE user_id='".$_user['user_id']."' ORDER BY sort ASC";
$result = Database::query($sql, __FILE__, __LINE__);
while ($row = Database::fetch_array($result)) {
$output[] = $row['id'];
}
return $output;
}
/**
* Retrieves the user defined course categories and all the info that goes with it
* @author Patrick Cool , Ghent University
* @return array containing all the info of the user defined courses categories with the id as key of the array
*/
function get_user_course_categories_info() {
global $_user;
$table_category = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql = "SELECT * FROM ".$table_category." WHERE user_id='".$_user['user_id']."' ORDER BY sort ASC";
$result = Database::query($sql, __FILE__, __LINE__);
while ($row = Database::fetch_array($result)) {
$output[$row['id']] = $row;
}
return $output;
}
/**
* @author unknown
* @param string $text: the text that has to be written in grey
* @return string: the text with the grey formatting
* @todo move this to a stylesheet
* Added id grey to CSS
*/
function display_info_text($text) {
//echo "" . $text . "\n";
echo $text;
}
/**
* @author Patrick Cool , Ghent University
* @param string $edit_course:
* @return html output: the form
*/
function display_edit_course_category_form($edit_course_category) {
global $safe, $stok;
echo "";
}
/**
* Updates the user course category in the dokeos_user database
* @author Patrick Cool , Ghent University
* @return string a language variable saying that the user course category was stored
*/
function store_edit_course_category() {
global $_user, $_configuration;
$tucc = Database::get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
$sql_update = "UPDATE $tucc SET title='".api_htmlentities($_POST['title_course_category'], ENT_QUOTES, api_get_system_encoding())."' WHERE id='".(int)$_POST['edit_course_category']."'";
Database::query($sql_update, __FILE__, __LINE__);
return get_lang('CourseCategoryEditStored');
}