|
|
|
|
@ -1798,30 +1798,24 @@ class learnpath { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
|
|
* Gets item_id for the next element |
|
|
|
|
|
|
|
|
|
* @return integer Previous item (DB) ID |
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
function get_previous_item_id() |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
function get_previous_item_id() |
|
|
|
|
{ |
|
|
|
|
$new_index = $this->get_previous_index(); |
|
|
|
|
|
|
|
|
|
return $this->ordered_items[$new_index]; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Gets the progress value from the progress_db attribute |
|
|
|
|
* @return integer Current progress value |
|
|
|
|
*/ |
|
|
|
|
function get_progress(){ |
|
|
|
|
function get_progress() |
|
|
|
|
{ |
|
|
|
|
if($this->debug>0){error_log('New LP - In learnpath::get_progress()',0);} |
|
|
|
|
if(!empty($this->progress_db)){ |
|
|
|
|
if(!empty($this->progress_db)) |
|
|
|
|
{ |
|
|
|
|
return $this->progress_db; |
|
|
|
|
} |
|
|
|
|
return 0; |
|
|
|
|
@ -1833,23 +1827,29 @@ class learnpath { |
|
|
|
|
* @param string Mode of display ('%','abs' or 'both') |
|
|
|
|
* @return integer Current progress value as found in the database |
|
|
|
|
*/ |
|
|
|
|
function get_db_progress($lp_id,$user_id,$mode='%', $course_db=''){ |
|
|
|
|
function get_db_progress($lp_id,$user_id,$mode='%', $course_db='') |
|
|
|
|
{ |
|
|
|
|
//if($this->debug>0){error_log('New LP - In learnpath::get_db_progress()',0);} |
|
|
|
|
$table = Database::get_course_table('lp_view', $course_db); |
|
|
|
|
$sql = "SELECT * FROM $table WHERE lp_id = $lp_id AND user_id = $user_id"; |
|
|
|
|
$res = api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
$view_id = 0; |
|
|
|
|
if(Database::num_rows($res)>0){ |
|
|
|
|
if(Database::num_rows($res)>0) |
|
|
|
|
{ |
|
|
|
|
$row = Database::fetch_array($res); |
|
|
|
|
$progress = $row['progress']; |
|
|
|
|
$view_id = $row['id']; |
|
|
|
|
} |
|
|
|
|
if(!$progress){ |
|
|
|
|
if(!$progress) |
|
|
|
|
{ |
|
|
|
|
$progress = '0'; |
|
|
|
|
} |
|
|
|
|
if($mode == '%'){ |
|
|
|
|
if($mode == '%') |
|
|
|
|
{ |
|
|
|
|
return $progress.'%'; |
|
|
|
|
}else{ |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
//get the number of items completed and the number of items total |
|
|
|
|
$tbl = Database::get_course_table('lp_item', $course_db); |
|
|
|
|
$sql = "SELECT count(*) FROM $tbl WHERE lp_id = ".$lp_id." |
|
|
|
|
@ -1872,12 +1872,14 @@ class learnpath { |
|
|
|
|
$res = api_sql_query($sql, __FILE__, __LINE__); |
|
|
|
|
$row = Database::fetch_array($res); |
|
|
|
|
$completed = $row[0]; |
|
|
|
|
if($mode == 'abs'){ |
|
|
|
|
if($mode == 'abs') |
|
|
|
|
{ |
|
|
|
|
return $completed.'/'.$total; |
|
|
|
|
} |
|
|
|
|
elseif($mode == 'both') |
|
|
|
|
{ |
|
|
|
|
if($progress<($completed/($total?$total:1))){ |
|
|
|
|
if($progress<($completed/($total?$total:1))) |
|
|
|
|
{ |
|
|
|
|
$progress = number_format(($completed/($total?$total:1))*100,0); |
|
|
|
|
} |
|
|
|
|
return $progress.'% ('.$completed.'/'.$total.')'; |
|
|
|
|
@ -1896,7 +1898,8 @@ class learnpath { |
|
|
|
|
function get_progress_bar($mode='',$percentage=-1,$text_add='') |
|
|
|
|
{ |
|
|
|
|
//if($this->debug>0){error_log('New LP - In learnpath::get_progress_bar()',0);} |
|
|
|
|
if(is_object($this) && ($percentage=='-1' OR $text_add=='')){ |
|
|
|
|
if(is_object($this) && ($percentage=='-1' OR $text_add=='')) |
|
|
|
|
{ |
|
|
|
|
list ($percentage, $text_add) = $this->get_progress_bar_text($mode); |
|
|
|
|
} |
|
|
|
|
$text = $percentage.$text_add; |
|
|
|
|
@ -1939,8 +1942,14 @@ class learnpath { |
|
|
|
|
$i = $total_items; |
|
|
|
|
} |
|
|
|
|
if($mode == '%'){ |
|
|
|
|
$percentage = ((float)$i/(float)$total_items)*100; |
|
|
|
|
$percentage = number_format($percentage,0); |
|
|
|
|
if($total_items>0){ |
|
|
|
|
$percentage = ((float)$i/(float)$total_items)*100; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
$percentage = 0; |
|
|
|
|
} |
|
|
|
|
$percentage = number_format($percentage,0); |
|
|
|
|
$text = '%'; |
|
|
|
|
}elseif($mode == 'abs'){ |
|
|
|
|
$percentage = $i; |
|
|
|
|
|