[svn r10260] Forced status_is() to get status in database

Added very important save-to-db when an object is restarted, in order to make a new attempt fully available
skala
Yannick Warnier 19 years ago
parent d7ce8716eb
commit f8d8465825
  1. 13
      main/newscorm/learnpathItem.class.php

@ -926,6 +926,7 @@ class learnpathItem{
$this->interactions_count = 0;
$this->interactions = array();
$this->lesson_location = '';
$this->write_to_db();
}else{
//restart current element is allowed (because it's not finished yet),
// reinit current
@ -1260,20 +1261,21 @@ class learnpathItem{
function status_is($list=array())
{
if($this->debug>1){error_log('New LP - In learnpathItem::status_is('.print_r($list,true).')',0);}
if(empty($this->status)){
$mystatus = $this->get_status(true);
if(empty($mystatus)){
return false;
}
$found = false;
foreach($list as $status)
{
if(preg_match('/^'.$status.'$/i',$this->status))
if(preg_match('/^'.$status.'$/i',$mystatus))
{
if($this->debug>2){error_log('New LP - learnpathItem::status_is() - Found status '.$status.' corresponding to current status',0);}
$found = true;
return $found;
}
}
if($this->debug>2){error_log('New LP - learnpathItem::status_is() - Status '.$this->status.' did not match request',0);}
if($this->debug>2){error_log('New LP - learnpathItem::status_is() - Status '.$mystatus.' did not match request',0);}
return $found;
}
/**
@ -1338,6 +1340,7 @@ class learnpathItem{
$check_res = api_sql_query($check);
//depending on what we want (really), we'll update or insert a new row
//now save into DB
$res = 0;
if(Database::num_rows($check_res)<1){
$sql = "INSERT INTO $item_view_table " .
"(total_time, " .
@ -1360,6 +1363,8 @@ class learnpathItem{
"'".$this->current_data."'," .
"'".$this->lesson_location."')";
if($this->debug>2){error_log('New LP - In learnpathItem::write_to_db() - Inserting into item_view: '.$sql,0);}
$res = api_sql_query($sql,__FILE__,__LINE__);
$this->db_item_view_id = Database::get_last_insert_id();
}else{
$sql = "UPDATE $item_view_table " .
"SET total_time = ".$this->get_total_time().", " .
@ -1372,8 +1377,8 @@ class learnpathItem{
"AND lp_view_id = ".$this->view_id." " .
"AND view_count = ".$this->attempt_id;
if($this->debug>2){error_log('New LP - In learnpathItem::write_to_db() - Updating item_view: '.$sql,0);}
$res = api_sql_query($sql,__FILE__,__LINE__);
}
$res = api_sql_query($sql,__FILE__,__LINE__);
if(!$res)
{
$this->error = 'Could not update item_view table...'.mysql_error();

Loading…
Cancel
Save