|
|
|
|
@ -9,20 +9,11 @@ |
|
|
|
|
* Centro de Supercomputacion de Galicia (CESGA) |
|
|
|
|
* |
|
|
|
|
* @author Ivan Tcholakov <ivantcholakov@gmail.com> (technical adaptation for Chamilo 1.8.8), 2010 |
|
|
|
|
*/ |
|
|
|
|
/** |
|
|
|
|
* Code |
|
|
|
|
*/ |
|
|
|
|
define(COURSE_REQUEST_PENDING, 0); |
|
|
|
|
define(COURSE_REQUEST_ACCEPTED, 1); |
|
|
|
|
define(COURSE_REQUEST_REJECTED, 2); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Course request manager |
|
|
|
|
* |
|
|
|
|
* @package chamilo.library |
|
|
|
|
*/ |
|
|
|
|
class CourseRequestManager { |
|
|
|
|
|
|
|
|
|
class CourseRequestManager |
|
|
|
|
{ |
|
|
|
|
/** |
|
|
|
|
* Checks whether a given course code has been already occupied. |
|
|
|
|
* @param string $wanted_course_code The code to be checked. |
|
|
|
|
@ -32,7 +23,8 @@ class CourseRequestManager { |
|
|
|
|
* - a course request with the same code as the given one, or |
|
|
|
|
* Othewise returns FALSE. |
|
|
|
|
*/ |
|
|
|
|
public static function course_code_exists($wanted_course_code) { |
|
|
|
|
public static function course_code_exists($wanted_course_code) |
|
|
|
|
{ |
|
|
|
|
if ($code_exists = CourseManager::course_code_exists($wanted_course_code)) { |
|
|
|
|
return $code_exists; |
|
|
|
|
} |
|
|
|
|
@ -55,7 +47,17 @@ class CourseRequestManager { |
|
|
|
|
* @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, $user_id, $exemplary_content) { |
|
|
|
|
public static function create_course_request( |
|
|
|
|
$wanted_code, |
|
|
|
|
$title, |
|
|
|
|
$description, |
|
|
|
|
$category_code, |
|
|
|
|
$course_language, |
|
|
|
|
$objetives, |
|
|
|
|
$target_audience, |
|
|
|
|
$user_id, |
|
|
|
|
$exemplary_content |
|
|
|
|
) { |
|
|
|
|
global $_configuration; |
|
|
|
|
$wanted_code = trim($wanted_code); |
|
|
|
|
$user_id = (int)$user_id; |
|
|
|
|
@ -89,7 +91,7 @@ class CourseRequestManager { |
|
|
|
|
} |
|
|
|
|
$visual_code = $keys['currentCourseCode']; |
|
|
|
|
$code = $keys['currentCourseId']; |
|
|
|
|
$db_name = $keys['currentCourseDbName']; |
|
|
|
|
$db_name = isset($keys['currentCourseDbName']) ? $keys['currentCourseDbName'] : null; |
|
|
|
|
$directory = $keys['currentCourseRepository']; |
|
|
|
|
|
|
|
|
|
$sql = sprintf('INSERT INTO %s ( |
|
|
|
|
@ -102,10 +104,10 @@ class CourseRequestManager { |
|
|
|
|
"%s", "%s", "%s", "%s", |
|
|
|
|
"%s", "%s", "%s", |
|
|
|
|
"%s", "%s", "%s", "%s", "%s");', Database::get_main_table(TABLE_MAIN_COURSE_REQUEST), |
|
|
|
|
Database::escape_string($code), Database::escape_string($user_id), Database::escape_string($directory), Database::escape_string($db_name), |
|
|
|
|
Database::escape_string($course_language), Database::escape_string($title), Database::escape_string($description), Database::escape_string($category_code), |
|
|
|
|
Database::escape_string($tutor_name), Database::escape_string($visual_code), Database::escape_string($request_date), |
|
|
|
|
Database::escape_string($objetives), Database::escape_string($target_audience), Database::escape_string($status), Database::escape_string($info), Database::escape_string($exemplary_content)); |
|
|
|
|
Database::escape_string($code), Database::escape_string($user_id), Database::escape_string($directory), Database::escape_string($db_name), |
|
|
|
|
Database::escape_string($course_language), Database::escape_string($title), Database::escape_string($description), Database::escape_string($category_code), |
|
|
|
|
Database::escape_string($tutor_name), Database::escape_string($visual_code), Database::escape_string($request_date), |
|
|
|
|
Database::escape_string($objetives), Database::escape_string($target_audience), Database::escape_string($status), Database::escape_string($info), Database::escape_string($exemplary_content)); |
|
|
|
|
$result_sql = Database::query($sql); |
|
|
|
|
|
|
|
|
|
if (!$result_sql) { |
|
|
|
|
@ -296,22 +298,22 @@ class CourseRequestManager { |
|
|
|
|
tutor_name = "%s", visual_code = "%s", request_date = "%s", |
|
|
|
|
objetives = "%s", target_audience = "%s", status = "%s", info = "%s", exemplary_content = "%s" |
|
|
|
|
WHERE id = '.$id, Database::get_main_table(TABLE_MAIN_COURSE_REQUEST), |
|
|
|
|
Database::escape_string($code), |
|
|
|
|
Database::escape_string($user_id), |
|
|
|
|
Database::escape_string($directory), |
|
|
|
|
Database::escape_string($db_name), |
|
|
|
|
Database::escape_string($course_language), |
|
|
|
|
Database::escape_string($title), |
|
|
|
|
Database::escape_string($description), |
|
|
|
|
Database::escape_string($category_code), |
|
|
|
|
Database::escape_string($tutor_name), |
|
|
|
|
Database::escape_string($visual_code), |
|
|
|
|
Database::escape_string($request_date), |
|
|
|
|
Database::escape_string($objetives), |
|
|
|
|
Database::escape_string($target_audience), |
|
|
|
|
Database::escape_string($status), |
|
|
|
|
Database::escape_string($info), |
|
|
|
|
Database::escape_string($exemplary_content) |
|
|
|
|
Database::escape_string($code), |
|
|
|
|
Database::escape_string($user_id), |
|
|
|
|
Database::escape_string($directory), |
|
|
|
|
Database::escape_string($db_name), |
|
|
|
|
Database::escape_string($course_language), |
|
|
|
|
Database::escape_string($title), |
|
|
|
|
Database::escape_string($description), |
|
|
|
|
Database::escape_string($category_code), |
|
|
|
|
Database::escape_string($tutor_name), |
|
|
|
|
Database::escape_string($visual_code), |
|
|
|
|
Database::escape_string($request_date), |
|
|
|
|
Database::escape_string($objetives), |
|
|
|
|
Database::escape_string($target_audience), |
|
|
|
|
Database::escape_string($status), |
|
|
|
|
Database::escape_string($info), |
|
|
|
|
Database::escape_string($exemplary_content) |
|
|
|
|
); |
|
|
|
|
$result_sql = Database::query($sql); |
|
|
|
|
|
|
|
|
|
@ -324,14 +326,20 @@ class CourseRequestManager { |
|
|
|
|
* @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) { |
|
|
|
|
public static function delete_course_request($id) |
|
|
|
|
{ |
|
|
|
|
$id = (int)$id; |
|
|
|
|
$sql = "DELETE FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." WHERE id = ".$id; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
return $result !== false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static function count_course_requests($status = null) { |
|
|
|
|
/** |
|
|
|
|
* @param null $status |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public static function count_course_requests($status = null) |
|
|
|
|
{ |
|
|
|
|
$course_table = Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST); |
|
|
|
|
if (is_null($status)) { |
|
|
|
|
$sql = "SELECT COUNT(id) AS number FROM ".$course_table; |
|
|
|
|
@ -351,9 +359,12 @@ class CourseRequestManager { |
|
|
|
|
* @param int/string $id The id (an integer number) of the corresponding database record. |
|
|
|
|
* @return array/bool Returns the requested data as an array or FALSE on failure. |
|
|
|
|
*/ |
|
|
|
|
public static function get_course_request_info($id) { |
|
|
|
|
public static function get_course_request_info($id) |
|
|
|
|
{ |
|
|
|
|
$id = (int)$id; |
|
|
|
|
$sql = "SELECT * FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." WHERE id = ".$id; |
|
|
|
|
$sql = "SELECT * |
|
|
|
|
FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." |
|
|
|
|
WHERE id = ".$id; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if (Database::num_rows($result) > 0) { |
|
|
|
|
return Database::fetch_array($result); |
|
|
|
|
@ -366,9 +377,12 @@ class CourseRequestManager { |
|
|
|
|
* @param int/string $id The id (an integer number) of the corresponding database record. |
|
|
|
|
* @return string/bool Returns the requested requested code or FALSE on failure. |
|
|
|
|
*/ |
|
|
|
|
public static function get_course_request_code($id) { |
|
|
|
|
public static function get_course_request_code($id) |
|
|
|
|
{ |
|
|
|
|
$id = (int)$id; |
|
|
|
|
$sql = "SELECT code FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." WHERE id = ".$id; |
|
|
|
|
$sql = "SELECT code |
|
|
|
|
FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." |
|
|
|
|
WHERE id = ".$id; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
if (Database::num_rows($result) > 0) { |
|
|
|
|
$result_array = Database::fetch_array($result, 'NUM'); |
|
|
|
|
@ -386,7 +400,6 @@ class CourseRequestManager { |
|
|
|
|
*/ |
|
|
|
|
public static function accept_course_request($id) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
$id = (int)$id; |
|
|
|
|
|
|
|
|
|
// Retrieve request's data |
|
|
|
|
@ -425,7 +438,9 @@ class CourseRequestManager { |
|
|
|
|
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; |
|
|
|
|
$sql = "UPDATE ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." |
|
|
|
|
SET status = ".COURSE_REQUEST_ACCEPTED." |
|
|
|
|
WHERE id = ".$id; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
// E-mail notification. |
|
|
|
|
@ -509,8 +524,6 @@ class CourseRequestManager { |
|
|
|
|
// 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('CourseRequestRejectedEmailSubject', null, $email_language), '['.api_get_setting('siteName').']', $code); |
|
|
|
|
@ -558,8 +571,8 @@ class CourseRequestManager { |
|
|
|
|
* @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) { |
|
|
|
|
|
|
|
|
|
public static function ask_for_additional_info($id) |
|
|
|
|
{ |
|
|
|
|
$id = (int)$id; |
|
|
|
|
|
|
|
|
|
// Retrieve request's data |
|
|
|
|
@ -589,10 +602,7 @@ class CourseRequestManager { |
|
|
|
|
// 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('CourseRequestAskInfoEmailSubject', null, $email_language), '['.api_get_setting('siteName').']', $code); |
|
|
|
|
|
|
|
|
|
$email_body = get_lang('Dear', null, $email_language).' '; |
|
|
|
|
@ -646,11 +656,12 @@ class CourseRequestManager { |
|
|
|
|
* @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) { |
|
|
|
|
public static function additional_info_asked($id) |
|
|
|
|
{ |
|
|
|
|
$id = (int)$id; |
|
|
|
|
$sql = "SELECT id FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." WHERE (id = ".$id." AND info > 0)"; |
|
|
|
|
$sql = "SELECT id FROM ".Database :: get_main_table(TABLE_MAIN_COURSE_REQUEST)." |
|
|
|
|
WHERE (id = ".$id." AND info > 0)"; |
|
|
|
|
$result = Database::num_rows(Database::query($sql)); |
|
|
|
|
return !empty($result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|