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;
|
|
}
|
|
}
|
|
|