|
|
|
@ -1,5 +1,5 @@ |
|
|
|
|
<?php |
|
|
|
|
// $Id: CourseRecycler.class.php 10197 2006-11-26 18:45:33Z pcool $ |
|
|
|
|
// $Id: CourseRecycler.class.php 11356 2007-03-02 23:42:15Z yannoo $ |
|
|
|
|
/* |
|
|
|
|
============================================================================== |
|
|
|
|
Dokeos - elearning and course management software |
|
|
|
@ -216,33 +216,45 @@ class CourseRecycler |
|
|
|
|
{ |
|
|
|
|
if ($this->course->has_resources(RESOURCE_LEARNPATH)) |
|
|
|
|
{ |
|
|
|
|
$table_main = Database :: get_course_table(TABLE_LEARNPATH_MAIN); |
|
|
|
|
$table_chapter = Database :: get_course_table(TABLE_LEARNPATH_CHAPTER); |
|
|
|
|
$table_item = Database :: get_course_table(TABLE_LEARNPATH_ITEM); |
|
|
|
|
$table_main = Database :: get_course_table(TABLE_LP_MAIN); |
|
|
|
|
$table_item = Database :: get_course_table(TABLE_LP_ITEM); |
|
|
|
|
$table_view = Database :: get_course_table(TABLE_LP_VIEW); |
|
|
|
|
$table_iv = Database :: get_course_table(TABLE_LP_ITEM_VIEW); |
|
|
|
|
$table_iv_int = Database :: get_course_table(TABLE_LP_IV_INTERACTION); |
|
|
|
|
$table_tool = Database::get_course_table(TABLE_TOOL_LIST); |
|
|
|
|
foreach($this->course->resources[RESOURCE_LEARNPATH] as $id => $learnpath) |
|
|
|
|
{ |
|
|
|
|
$sql = "DELETE FROM $table_tool WHERE link='".mysql_real_escape_string('learnpath/learnpath_handler.php?learnpath_id='.$id)."'"; |
|
|
|
|
//remove links from course homepage |
|
|
|
|
$sql = "DELETE FROM $table_tool WHERE link LIKE '%lp_controller.php%lp_id=$id%' AND image='scormbuilder.gif'"; |
|
|
|
|
api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
//remove elements from lp_* tables (from bottom-up) by removing interactions, then item_view, then views and items, then paths |
|
|
|
|
$sql_items = "SELECT id FROM $table_item WHERE lp_id=$id"; |
|
|
|
|
$res_items = api_sql_query($sql_items,__FILE__,__LINE__); |
|
|
|
|
while ($row_item = Database::fetch_array($res_items)) |
|
|
|
|
{ |
|
|
|
|
//get item views |
|
|
|
|
$sql_iv = "SELECT id FROM $table_iv WHERE lp_item_id=".$row_item['id']; |
|
|
|
|
$res_iv = api_sql_query($sql_iv,__FILE__,__LINE__); |
|
|
|
|
while ($row_iv = Database::fetch_array($res_iv)) |
|
|
|
|
{ |
|
|
|
|
//delete interactions |
|
|
|
|
$sql_iv_int_del = "DELETE FROM $table_iv_int WHERE lp_iv_id = ".$row_iv['id']; |
|
|
|
|
$res_iv_int_del = api_sql_query($sql_iv_int_del,__FILE__,__LINE__); |
|
|
|
|
} |
|
|
|
|
//delete item views |
|
|
|
|
$sql_iv_del = "DELETE FROM $table_iv WHERE lp_item_id=".$row_item['id']; |
|
|
|
|
$res_iv_del = api_sql_query($sql_iv_del,__FILE__,__LINE__); |
|
|
|
|
} |
|
|
|
|
//delete items |
|
|
|
|
$sql_items_del = "DELETE FROM $table_item WHERE lp_id=$id"; |
|
|
|
|
$res_items_del = api_sql_query($sql_items_del,__FILE__,__LINE__); |
|
|
|
|
//delete views |
|
|
|
|
$sql_views_del = "DELETE FROM $table_view WHERE lp_id=$id"; |
|
|
|
|
$res_views_del = api_sql_query($sql_views_del,__FILE__,__LINE__); |
|
|
|
|
//delete lps |
|
|
|
|
$sql_del = "DELETE FROM $table_main WHERE id = $id"; |
|
|
|
|
$res_del = api_sql_query($sql_del,__FILE__,__LINE__); |
|
|
|
|
} |
|
|
|
|
$ids = implode(',', (array_keys($this->course->resources[RESOURCE_LEARNPATH]))); |
|
|
|
|
$sql = "SELECT id FROM ".$table_chapter." WHERE learnpath_id IN (".$ids.")"; |
|
|
|
|
$db_result = api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
$chapter_ids = array (); |
|
|
|
|
while ($chap = mysql_fetch_object($db_result)) |
|
|
|
|
{ |
|
|
|
|
$chapter_ids[] = $chap->id; |
|
|
|
|
} |
|
|
|
|
if( count($chapter_ids) > 0 ) |
|
|
|
|
{ |
|
|
|
|
$chap_ids = implode(',', $chapter_ids); |
|
|
|
|
$sql = "DELETE FROM ".$table_item." WHERE chapter_id IN (".$chap_ids.")"; |
|
|
|
|
api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
$sql = "DELETE FROM ".$table_chapter." WHERE id IN (".$chap_ids.")"; |
|
|
|
|
api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
} |
|
|
|
|
$sql = "DELETE FROM ".$table_main." WHERE learnpath_id IN(".$ids.")"; |
|
|
|
|
api_sql_query($sql,__FILE__,__LINE__); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|