|
|
|
@ -9,7 +9,8 @@ |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Class CourseDescription Lanage course descriptions |
|
|
|
|
* Class CourseDescription course descriptions |
|
|
|
|
* |
|
|
|
|
* @package chamilo.course_description |
|
|
|
|
*/ |
|
|
|
|
class CourseDescription |
|
|
|
@ -34,7 +35,8 @@ class CourseDescription |
|
|
|
|
* Returns an array of objects of type CourseDescription corresponding to |
|
|
|
|
* a specific course, without session ids (session id = 0) |
|
|
|
|
* |
|
|
|
|
* @param int Course id |
|
|
|
|
* @param int $course_id |
|
|
|
|
* |
|
|
|
|
* @return array Array of CourseDescriptions |
|
|
|
|
*/ |
|
|
|
|
public static function get_descriptions($course_id) |
|
|
|
@ -61,6 +63,7 @@ class CourseDescription |
|
|
|
|
$desc_tmp->set_progress($row['progress']); |
|
|
|
|
$results[] = $desc_tmp; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $results; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -82,9 +85,8 @@ class CourseDescription |
|
|
|
|
$data = array(); |
|
|
|
|
while ($description = Database::fetch_array($rs)) { |
|
|
|
|
$data['descriptions'][$description['id']] = Security::remove_XSS($description, STUDENT); |
|
|
|
|
//reload titles to ensure we have the last version (after edition) |
|
|
|
|
//$data['default_description_titles'][$description['id']] = Security::remove_XSS($description['title'], STUDENT); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $data; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -122,6 +124,7 @@ class CourseDescription |
|
|
|
|
$data['description_content'] = $description['content']; |
|
|
|
|
$data['progress'] = $description['progress']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $data; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -129,6 +132,7 @@ class CourseDescription |
|
|
|
|
* @param int $id |
|
|
|
|
* @param string $course_code |
|
|
|
|
* @param int $session_id |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function get_data_by_id($id, $course_code = '', $session_id = null) |
|
|
|
@ -170,7 +174,8 @@ class CourseDescription |
|
|
|
|
$tbl_course_description = Database::get_course_table(TABLE_COURSE_DESCRIPTION); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT MAX(description_type) as MAX FROM $tbl_course_description |
|
|
|
|
$sql = "SELECT MAX(description_type) as MAX |
|
|
|
|
FROM $tbl_course_description |
|
|
|
|
WHERE c_id = $course_id AND session_id='" . $this->session_id . "'"; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
$max = Database::fetch_array($rs); |
|
|
|
@ -178,6 +183,7 @@ class CourseDescription |
|
|
|
|
if ($description_type < ADD_BLOCK) { |
|
|
|
|
$description_type = ADD_BLOCK; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $description_type; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -194,8 +200,8 @@ class CourseDescription |
|
|
|
|
} else { |
|
|
|
|
$course_id = $this->course_id; |
|
|
|
|
} |
|
|
|
|
$tbl_course_description = Database::get_course_table(TABLE_COURSE_DESCRIPTION); |
|
|
|
|
$sql = "INSERT IGNORE INTO $tbl_course_description SET |
|
|
|
|
$table = Database::get_course_table(TABLE_COURSE_DESCRIPTION); |
|
|
|
|
$sql = "INSERT IGNORE INTO $table SET |
|
|
|
|
c_id = $course_id, |
|
|
|
|
description_type = '" . intval($this->description_type) . "', |
|
|
|
|
title = '" . Database::escape_string($this->title) . "', |
|
|
|
@ -205,11 +211,12 @@ class CourseDescription |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
$last_id = Database::insert_id(); |
|
|
|
|
$affected_rows = Database::affected_rows($result); |
|
|
|
|
|
|
|
|
|
if ($last_id > 0) { |
|
|
|
|
$sql = "UPDATE $tbl_course_description SET id = iid WHERE iid = $last_id"; |
|
|
|
|
$sql = "UPDATE $table SET id = iid WHERE iid = $last_id"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
//insert into item_property |
|
|
|
|
// insert into item_property |
|
|
|
|
api_item_property_update( |
|
|
|
|
api_get_course_info(), |
|
|
|
|
TOOL_COURSE_DESCRIPTION, |
|
|
|
@ -235,8 +242,11 @@ class CourseDescription |
|
|
|
|
$description_id = $this->get_id_by_description_type($description_type); |
|
|
|
|
$course_id = api_get_real_course_id(); |
|
|
|
|
$course_code = api_get_course_id(); |
|
|
|
|
$item_property_id = api_get_item_property_id($course_code, |
|
|
|
|
TOOL_COURSE_DESCRIPTION, $description_id); |
|
|
|
|
$item_property_id = api_get_item_property_id( |
|
|
|
|
$course_code, |
|
|
|
|
TOOL_COURSE_DESCRIPTION, |
|
|
|
|
$description_id |
|
|
|
|
); |
|
|
|
|
$sql = "INSERT IGNORE INTO $tbl_stats_item_property SET |
|
|
|
|
c_id = " . api_get_course_int_id() . ", |
|
|
|
|
course_id = '$course_id', |
|
|
|
@ -244,7 +254,7 @@ class CourseDescription |
|
|
|
|
title = '" . Database::escape_string($this->title) . "', |
|
|
|
|
content = '" . Database::escape_string($this->content) . "', |
|
|
|
|
progress = '" . intval($this->progress) . "', |
|
|
|
|
lastedit_date = '" . date('Y-m-d H:i:s') . "', |
|
|
|
|
lastedit_date = '" . api_get_utc_datetime(). "', |
|
|
|
|
lastedit_user_id = '" . api_get_user_id() . "', |
|
|
|
|
session_id = '" . intval($this->session_id) . "'"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
@ -282,6 +292,7 @@ class CourseDescription |
|
|
|
|
api_get_user_id() |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $affected_rows; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -333,44 +344,6 @@ class CourseDescription |
|
|
|
|
return $description_id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get thematic progress in porcent for a course, |
|
|
|
|
* first you must set session_id property with the object CourseDescription |
|
|
|
|
* @param bool true for showing a icon about the progress, false otherwise (optional) |
|
|
|
|
* @param int Description type (optional) |
|
|
|
|
* @return string img html |
|
|
|
|
*/ |
|
|
|
|
public function get_progress_porcent( |
|
|
|
|
$with_icon = false, |
|
|
|
|
$description_type = THEMATIC_ADVANCE |
|
|
|
|
) { |
|
|
|
|
$tbl_course_description = Database::get_course_table(TABLE_COURSE_DESCRIPTION); |
|
|
|
|
$session_id = api_get_session_id(); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT progress FROM $tbl_course_description |
|
|
|
|
WHERE |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
description_type = '" . intval($description_type) . "' AND |
|
|
|
|
session_id = '" . intval($this->session_id) . "' "; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
$progress = ''; |
|
|
|
|
$img = ''; |
|
|
|
|
$title = '0%'; |
|
|
|
|
$image = 'level_0.png'; |
|
|
|
|
if (Database::num_rows($rs) > 0) { |
|
|
|
|
$row = Database::fetch_array($rs); |
|
|
|
|
$progress = $row['progress'] . '%'; |
|
|
|
|
$image = 'level_' . $row['progress'] . '.png'; |
|
|
|
|
} |
|
|
|
|
if ($with_icon) { |
|
|
|
|
$img = Display::return_icon($image, get_lang('ThematicAdvance'), |
|
|
|
|
array('style' => 'vertical-align:middle')); |
|
|
|
|
} |
|
|
|
|
$progress = $img . $progress; |
|
|
|
|
return $progress; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get description titles by default |
|
|
|
|
* @return array |
|
|
|
|