You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							1.6 KiB
						
					
					
				<?php
 | 
						|
/* For licensing terms, see /license.txt */
 | 
						|
 | 
						|
/**
 | 
						|
 * This script try to fix the lp items path for missing files
 | 
						|
 * It's useful when the path field in c_lp_item table has a value like 'document/item_file.html'
 | 
						|
 * Then this values is updated to 'document/learning_path/LP_DIRECTORY/item_file.html
 | 
						|
 */
 | 
						|
die('Remove the "die()" statement on line '.__LINE__.' to execute this script'.PHP_EOL);
 | 
						|
require_once __DIR__.'/../../public/main/inc/global.inc.php';
 | 
						|
 | 
						|
/** @var The course id $courseId */
 | 
						|
$courseId = 0;
 | 
						|
/** @var The LP id $lpId */
 | 
						|
$lpId = 0;
 | 
						|
 | 
						|
$tblCLp = Database::get_course_table(TABLE_LP_MAIN);
 | 
						|
$tblCLpItem = Database::get_course_table(TABLE_LP_ITEM);
 | 
						|
 | 
						|
$course = api_get_course_info_by_id($courseId);
 | 
						|
$lp = Database::fetch_assoc(
 | 
						|
    Database::query("SELECT path FROM $tblCLp WHERE c_id = $courseId AND id = $lpId")
 | 
						|
);
 | 
						|
$items = Database::store_result(
 | 
						|
    Database::query("SELECT id, c_id, lp_id, path FROM $tblCLpItem WHERE c_id = $courseId AND lp_id = $lpId"),
 | 
						|
    'ASSOC'
 | 
						|
);
 | 
						|
 | 
						|
$scormDir = api_get_path(SYS_COURSE_PATH) . $course['path'] . '/scorm/' . $lp['path'] . '/';
 | 
						|
 | 
						|
/** @var array $item */
 | 
						|
foreach ($items as $item) {
 | 
						|
    $fixedDirectory = "document/learning_path/{$lp['path']}/";
 | 
						|
 | 
						|
    $oldPath = $scormDir . $item['path'];
 | 
						|
    $newPath = $scormDir . str_replace('document/', $fixedDirectory, $item['path']);
 | 
						|
 | 
						|
    if (!file_exists($oldPath) && file_exists($newPath)) {
 | 
						|
        $sql = "
 | 
						|
            UPDATE $tblCLpItem
 | 
						|
            SET path = REPLACE(path, 'document/', '$fixedDirectory')
 | 
						|
            WHERE c_id = {$item['c_id']} AND lp_id = {$item['lp_id']} AND id = {$item['id']}
 | 
						|
        ";
 | 
						|
 | 
						|
        Database::query($sql);
 | 
						|
        echo "Executing: $sql" . PHP_EOL;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |