Feature #2099 - Coding the page for editition training requests (6).

skala
Ivan Tcholakov 15 years ago
parent c193646006
commit 0180fb9e57
  1. 2
      main/create_course/add_course.php
  2. 131
      main/inc/lib/course_request.lib.php

@ -256,7 +256,7 @@ if ($form->validate()) {
// Create a request for a new course.
$request_id = CourseRequestManager::create_course_request($wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience);
$request_id = CourseRequestManager::create_course_request($wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience, api_get_user_id());
if ($request_id) {

@ -47,9 +47,10 @@ class CourseRequestManager {
* @param string $course_language
* @param string $objetives
* @param string $target_audience
* @param int/string $user_id
* @return int/bool The database id of the newly created course request or FALSE on failure.
*/
public static function create_course_request($wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience) {
public static function create_course_request($wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience, $user_id) {
$wanted_code = Database::escape_string($wanted_code);
$title = Database::escape_string($title);
@ -58,8 +59,12 @@ class CourseRequestManager {
$course_language = Database::escape_string($course_language);
$objetives = Database::escape_string($objetives);
$target_audience = Database::escape_string($target_audience);
$user_id = (int)$user_id;
if (self::course_code_exists($wanted_code)) {
return false;
}
$user_id = api_get_user_id();
if ($user_id <= 0) {
return false;
}
@ -72,6 +77,7 @@ class CourseRequestManager {
$request_date = api_get_utc_datetime();
$status = COURSE_REQUEST_PENDING;
$info = 0;
$keys = define_course_keys($wanted_code, '', $_configuration['db_prefix']);
if (!count($keys)) {
@ -86,16 +92,16 @@ class CourseRequestManager {
code, user_id, directory, db_name,
course_language, title, description, category_code,
tutor_name, visual_code, request_date,
objetives, target_audience, status)
objetives, target_audience, status, info)
VALUES (
"%s","%s","%s","%s",
"%s","%s","%s","%s",
"%s","%s","%s",
"%s","%s","%s");', Database::get_main_table(TABLE_MAIN_COURSE_REQUEST),
"%s", "%s", "%s", "%s",
"%s", "%s", "%s", "%s",
"%s", "%s", "%s",
"%s", "%s", "%s", "%s");', Database::get_main_table(TABLE_MAIN_COURSE_REQUEST),
$code, $user_id, $directory, $db_name,
$course_language, $title, $description, $category_code,
$tutor_name, $visual_code, $request_date,
$objetives, $target_audience, $status);
$objetives, $target_audience, $status, $info);
$result_sql = Database::query($sql);
if (!$result_sql) {
@ -160,10 +166,101 @@ class CourseRequestManager {
}
/**
* Updates a given course request in the database.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @param string $wanted_code The code for the created in the future course.
* @param string $title
* @param string $description
* @param string $category_code
* @param string $course_language
* @param string $objetives
* @param string $target_audience
* @param int/string $user_id
* @return bool Returns TRUE on success or FALSE on failure.
*/
public static function update_course_request($id, $wanted_code, $title, $description, $category_code, $course_language, $objetives, $target_audience, $user_id) {
$id = (int)$id;
$wanted_code = Database::escape_string($wanted_code);
$title = Database::escape_string($title);
$description = Database::escape_string($description);
$category_code = Database::escape_string($category_code);
$course_language = Database::escape_string($course_language);
$objetives = Database::escape_string($objetives);
$target_audience = Database::escape_string($target_audience);
$user_id = (int)$user_id;
if ($user_id <= 0) {
return false;
}
// Retrieve request's data
$course_request_info = self::get_course_request_info($id);
if (!is_array($course_request_info)) {
return false;
}
$code = $wanted_code;
$tutor_name = $course_request_info['tutor_name'];
$directory = $course_request_info['directory'];
$db_name = $course_request_info['db_name'];
$visual_code = $course_request_info['visual_code'];
$request_date = $course_request_info['request_date'];
$status = $course_request_info['status'];
$info = $course_request_info['info'];
if ($wanted_code != $course_request_info['code']) {
if (self::course_code_exists($wanted_code)) {
return false;
}
$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'];
} else {
return false;
}
}
if ($user_id != $course_request_info['code']) {
$user_info = api_get_user_info($user_id);
if (is_array($user_info)) {
$tutor_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $course_language);
} else {
$user_id = $course_request_info['code'];
}
}
if ($course_language != $course_request_info['course_language']) {
$user_info = api_get_user_info($user_id);
if (is_array($user_info)) {
$tutor_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, $course_language);
}
}
$sql = sprintf('UPDATE %s SET
code = %s, user_id = %s, directory = %s, db_name = %s,
course_language = %s, title = %s, description = %s, category_code = %s,
tutor_name = %s, visual_code = %s, request_date = %s,
objetives = %s, target_audience = %s, status = %s, info = %s
WHERE id = '.$id, Database::get_main_table(TABLE_MAIN_COURSE_REQUEST),
$code, $user_id, $directory, $db_name,
$course_language, $title, $description, $category_code,
$tutor_name, $visual_code, $request_date,
$objetives, $target_audience, $status, $info);
$result_sql = Database::query($sql);
return $result_sql !== false;
}
/**
* Deletes a given course request.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @return array/bool Returns TRUE on success or FALSE on failure.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @return bool Returns TRUE on success or FALSE on failure.
*/
public static function delete_course_request($id) {
$id = (int)$id;
@ -223,7 +320,7 @@ class CourseRequestManager {
/**
* Accepts a given by its id course request. The requested course gets created immediately after the request acceptance.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @return array/bool Returns the code of the newly created course or FALSE on failure.
* @return string/bool Returns the code of the newly created course or FALSE on failure.
*/
public static function accept_course_request($id) {
@ -309,8 +406,8 @@ class CourseRequestManager {
/**
* Rejects a given course request.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @return array/bool Returns TRUE on success or FALSE on failure.
* @param int/string $id The id (an integer number) of the corresponding database record.
* @return bool Returns TRUE on success or FALSE on failure.
*/
public static function reject_course_request($id) {
@ -371,8 +468,8 @@ class CourseRequestManager {
/**
* Asks the author (through e-mail) for additional information about the given course request.
* @param int/string $id The database primary id of the given request.
* @return array/bool Returns TRUE on success or FALSE on failure.
* @param int/string $id The database primary id of the given request.
* @return bool Returns TRUE on success or FALSE on failure.
*/
public static function ask_for_additional_info($id) {
@ -441,8 +538,8 @@ class CourseRequestManager {
/**
* Checks whether additional information about the given course request has been asked.
* @param int/string $id The database primary id of the given request.
* @return array/bool Returns TRUE if additional information has been asked or FALSE otherwise.
* @param int/string $id The database primary id of the given request.
* @return bool Returns TRUE if additional information has been asked or FALSE otherwise.
*/
public static function additional_info_asked($id) {
$id = (int)$id;

Loading…
Cancel
Save