|
|
|
|
@ -6680,8 +6680,15 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '') |
|
|
|
|
} |
|
|
|
|
closedir($handle); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$zip_files = $zip_files_abs = $zip_files_dist = array(); |
|
|
|
|
if(is_dir($current_course_path.'/scorm/'.$this->path) && is_file($current_course_path.'/scorm/'.$this->path.'/imsmanifest.xml')) |
|
|
|
|
{ |
|
|
|
|
// remove the possible . at the end of the path |
|
|
|
|
$dest_path_to_lp = substr($this->path, -1) == '.' ? substr($this->path, 0, -1) : $this->path; |
|
|
|
|
$dest_path_to_scorm_folder = str_replace('//','/',$temp_zip_dir.'/scorm/'.$dest_path_to_lp); |
|
|
|
|
mkdir ($dest_path_to_scorm_folder, 0777, true); |
|
|
|
|
$zip_files_dist = copyr($current_course_path.'/scorm/'.$this->path, $dest_path_to_scorm_folder, array('imsmanifest'), $zip_files); |
|
|
|
|
} |
|
|
|
|
//Build a dummy imsmanifest structure. Do not add to the zip yet (we still need it) |
|
|
|
|
//This structure is developed following regulations for SCORM 1.2 packaging in the SCORM 1.2 Content |
|
|
|
|
//Aggregation Model official document, secion "2.3 Content Packaging" |
|
|
|
|
@ -6717,8 +6724,6 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '') |
|
|
|
|
//For each element, add it to the imsmanifest structure, then add it to the zip. |
|
|
|
|
//Always call the learnpathItem->scorm_export() method to change it to the SCORM |
|
|
|
|
//format |
|
|
|
|
$zip_files = array(); |
|
|
|
|
$zip_files_abs = array(); |
|
|
|
|
$link_updates = array(); |
|
|
|
|
foreach($this->items as $index => $item){ |
|
|
|
|
|
|
|
|
|
@ -7026,7 +7031,6 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '') |
|
|
|
|
} |
|
|
|
|
file_put_contents($dest_file,$string); |
|
|
|
|
} |
|
|
|
|
$zip_folder->add($dest_file,PCLZIP_OPT_REMOVE_PATH, $garbage_path); |
|
|
|
|
} |
|
|
|
|
foreach($zip_files_abs as $file_path) |
|
|
|
|
{ |
|
|
|
|
@ -7049,19 +7053,15 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '') |
|
|
|
|
} |
|
|
|
|
file_put_contents($dest_file,$string); |
|
|
|
|
} |
|
|
|
|
$zip_folder->add($dest_file,PCLZIP_OPT_REMOVE_PATH, $garbage_path); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(is_array($links_to_create)) |
|
|
|
|
{ |
|
|
|
|
foreach($links_to_create as $file=>$link) |
|
|
|
|
{ |
|
|
|
|
$file_content = '<html><body><div style="text-align:center"><a href="'.$link['url'].'">'.$link['title'].'</a></div></body></html>'; |
|
|
|
|
file_put_contents($garbage_path.$temp_dir_short.'/'.$file, $file_content); |
|
|
|
|
$zip_folder->add($garbage_path.$temp_dir_short.'/'.$file,PCLZIP_OPT_REMOVE_PATH, $garbage_path); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// add non exportable message explanation |
|
|
|
|
$lang_not_exportable = get_lang('ThisItemIsNotExportable'); |
|
|
|
|
$file_content = |
|
|
|
|
@ -7092,11 +7092,14 @@ function display_thread_form($action = 'add', $id = 0, $extra_info = '') |
|
|
|
|
</html> |
|
|
|
|
EOD; |
|
|
|
|
file_put_contents($garbage_path.$temp_dir_short.'/document/non_exportable.html', $file_content); |
|
|
|
|
$zip_folder->add($garbage_path.$temp_dir_short.'/document/non_exportable.html',PCLZIP_OPT_REMOVE_PATH, $garbage_path); |
|
|
|
|
|
|
|
|
|
//Finalize the imsmanifest structure, add to the zip, then return the zip |
|
|
|
|
|
|
|
|
|
$xmldoc->save($garbage_path.'/'.$temp_dir_short.'/imsmanifest.xml'); |
|
|
|
|
$zip_folder->add($garbage_path.'/'.$temp_dir_short.'/imsmanifest.xml',PCLZIP_OPT_REMOVE_PATH, $garbage_path.'/'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$zip_folder->add($garbage_path.'/'.$temp_dir_short, PCLZIP_OPT_REMOVE_PATH, $garbage_path); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Send file to client |
|
|
|
|
$name = 'scorm_export_'.$this->lp_id.'.zip'; |
|
|
|
|
|